Releases

How to do a release:

  • While in the TIS-DEVOPS folder, do a pull to make sure your local is up to date (i.e. git pull) then create a new branch via the terminal (i.e. git checkout -b NewBranchName)
  • Compare the versions of every microservice/etl in TIS-DEVOPS/ansible/vars/stage/platform.yml  with the versions of their corresponding pom.xml or package.json files in the GItHub repository https://github.com/Health-Education-England. Update the platform.yml file accordingly to ensure that it is up to date with the GitHub repository and make a note of all the updated microservices/etls.

          Remember the following:

          For repositories that have services within them (i.e. TIS-PROFILE, TIS-TCS e.t.c),  the pom version required for release is the one in the service folder (i.e. TIS-TCS/tcs-service)

          For TIS-ADMINS-UI, there is no pom.xml file as it is a front end piece. However there is a package.json file which would have a version number. Use that version number for the release.

  • Finalise the artefacts you want to deploy using jenkins

          Navigate to  https://build.tis.nhs.uk/jenkins/ 

          For all updated microservice/etl, build using the 'Final Tag' as a parameter,    

  • Create a main.yml file for the release in TIS-DEVOPS/ansible/releases/TIS-XX/main.yml  (where XX is the release number)
  • import the .yml files for all the updated microservice/etl. (Hint: use previous releases as a guide if in doubt)
  • Commit your changes and push (i.e. git add -A >> git commit -m "TIS-XX deployed to Stage" >> git push -u origin NewBranchName)
  • Create a PR to get your changes approved and merged
  • Once merged, check to https://build.tis.nhs.uk/jenkins/job/devops/  verify that it has run.
  • Release to stage → https://build.tis.nhs.uk/jenkins/job/release-stage-pipeline/ - Click on 'Build with Parameters' and in the 'RELEASE_NUMBER' section, type in TIS-XX where XX is the release number
  • Ask everyone to check their stuff in stage once the job finishes by skipping to the 'Release Documentation' section
  • Once Stage is verified by the productowners and they give a Prod release the go-ahead, move to next steps
  • Update your TIS-DEVOPS master branch and create a new branch
  • Modify TIS-DEVOPS/ansible/vars/prod/platform.yml with all the changes done in TIS-DEVOPS/ansible/vars/stage/platform.yml
  • Commit your changes and push (i.e. git add -A >> git commit -m "TIS-XX deployed to Prod" >> git push -u origin NewBranchName)
  • Create a PR to get your changes approved and merged
  • Once merged, check to https://build.tis.nhs.uk/jenkins/job/devops/  verify that it has run.
  • Release to prod → https://build.tis.nhs.uk/jenkins/job/release-prod-pipeline/   - Click on 'Build with Parameters' and in the 'RELEASE_NUMBER' section, type in TIS-XX where XX is the release number
  • Notify the slack channel

Release Documentation

  • Create the release documentation like below → Jira query to add tasks: status in ("Ready for release") AND status changed to ("Ready for release") after 2016-12-07 before now() AND fixVersion is EMPTY ORDER BY assignee ASC, status DESC, updated ASC

          Click on Search >> Search all issues >> Enter Query     OR    Search >> View all issues >> Advanced >> Enter Query

  1. In Jira, go to the Releases Page and add a new release name with start date and description.
  2. Move any issues that have been resolved, or that are planned to be resolved, to this release. The easiest way to do this is to filter down to the results you want and bulk edit them to change the 'Fix Version/s' field to match the release name. Try this filter - Done in current sprint, no fixversion
  3. Create a new page using the JIRA Report Blueprint by clicking the white elipsis in the page header. Go to "New release" and fill out the details for this release. The JIRA report on that page defaults to beta-002 so that needs to change.
  4. Add the link to Slack's #general channel and mention @channel so all users are notified, e.g. 

    @channel new release https://hee-tis.atlassian.net/wiki/display/TISDEV/beta-001

Previous Releases