Upload HMRC PAYE files
HMRC have a desktop application to submit PAYE. This is available on Windows, Linux, and OS X.
As part of the initial tranche of ministerial department migration their
upload site was switched off. However, we don’t currently allow
files or other executable binary types to be uploaded to GOV.UK.
Therefore we determined the quickest course of action to meet the user
need of keeping their desktop software up to date was to manually upload
and host the files ourselves.
This document describes the process by which this is actioned.
The way the updates work:
- Binaries are provided for Windows, OS X and Linux
- Deltas of the binaries are also provided for partial updates
- The software hits a manifest file
realtimepayetools-update-vXX.xml) to determine which files to download. This manifest contains the version number and partial paths to each of the available binaries. This manifest URL is hard-coded in the desktop software and only changes with each major version.
- The software downloads the relevant binaries from our asset host and updates itself
- There is also a mainstream content item and a Welsh translation which should be updated to link to the full downloads of the new versions
Where are the files?
The files are stored in S3, along with the rest of our uploaded assets.
The process for uploading new versions of the app
The manifest file version vXX is given as an example. You should confirm the version number to use with HMRC because it must match the URL hard-coded into the previous version of the software.
- HMRC submit a ticket via Zendesk (example)
- Download all zip files and XML file in the ticket
Upload the new files:
ssh backend-1.production "mkdir -p /tmp/hmrc-paye && rm -rf /tmp/hmrc-paye/*" scp *.zip backend-1.production:/tmp/hmrc-paye scp *.xml backend-1.production:/tmp/hmrc-paye
Load the files into the Asset Manager, with “test-” at the start of the manifest file’s name:
ssh backend-1.production cd /var/apps/asset-manager sudo -udeploy govuk_setenv asset-manager bundle exec rake govuk_assets:create_hmrc_paye_zips[/tmp/hmrc-paye] sudo -udeploy govuk_setenv asset-manager bundle exec rake govuk_assets:create_hmrc_paye_asset[/tmp/hmrc-paye/realtimepayetools-update-vXX.xml,test-realtimepayetools-update-vXX.xml]
Purge the cache for the test file.
Reply to the Zendesk ticket, providing the
When Aspire or one of the other suppliers replies that the file works fine, the new edition of the mainstream content item and Welsh translation can be prepped by the content team with the new links, file sizes and version number, ready to publish at the launch time.
When the launch time comes (which should be specified in the Zendesk ticket), re-load the test file to the production path:
ssh backend-1.production cd /var/apps/asset-manager sudo -udeploy govuk_setenv asset-manager bundle exec rake govuk_assets:create_hmrc_paye_asset[/tmp/hmrc-paye/realtimepayetools-update-vXX.xml]
You will have to copy the file to the server again if it has been deleted since it was first uploaded.
Publish the content items.
Purge the cache, which will otherwise take up to 12 hours to expire:
fab $environment class:cache cdn.purge_all:/government/uploads/uploaded/hmrc/realtimepayetools-update-vXX.xml
Update and resolve the Zendesk ticket