Table of contents

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 exe 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.

  1. HMRC submit a ticket via Zendesk (example)
  2. Download all zip files and XML file in the ticket
  3. 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
    
  4. 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]
    
  5. Purge the cache for the test file.

  6. Reply to the Zendesk ticket, providing the test-*.xml URL of:

    https://www.gov.uk/government/uploads/uploaded/hmrc/test-realtimepayetools-update-vXX.xml
    
  7. 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.

  8. 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
    sudo -udeploy govuk_setenv bundle exec rake govuk_assets:create_hmrc_paye_asset[/tmp/hmrc-paye/realtimepayetools-update-vXX.xml]
    

    You will have to copy the file to she server again if it has been deleted since it was first uploaded.

  9. Publish the content items.

  10. 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
    
  11. Update and resolve the Zendesk ticket

This page was last reviewed . It needs to be reviewed again by the page owner #govuk-2ndline.