Release process - IntegratedBreedingPlatform/Documentation GitHub Wiki

Release process

Step 1. Bumping the version

  • Go to Jenkins.
  • Search for the build named BMS-BUMP-VERSION-NUMBER.
  • Select Build with Parameters and input the newVersion parameter. For example, 8.4
  • Run the build.
  • Go to git and check that the version was changed in pom files and committed to master.

Step 2. Tagging the version

  • Go to Jenkins.
  • Search for the build named BMS-TAG-RELEASE.
  • Select Build with Parameters and input the version which you want to tag (version released to the client). For example, 4.0.0.BETA.12.
  • Run the build.
  • Go to git and check that the tag was created.

Step 3. Build Docker Image

  • Go to Jenkins.
  • Search for the build named BMS-BuildDockerImage.
  • Enter the name of the tag (version) to build docker image for and run the build. The Docker Image is automatically uploaded to DockerHub (ibpbms/bmsapp).

Step 4. Deploying to IBP test servers

  • Go to Jenkins.
  • Search for the build named BMS-DeployDockerImage.
  • Specify the version of BMS Docker Image and the server test instance to deploy to. Run the build.
  • Once the build has passed, open the link to the application on the IBP UAT/BrAPI server, login, check that everything is ok.
    • If the version contains a new mandatory property in a property file that is being injected (see Troubleshooting section), edit this file and add the property.

Step 5. Delivering zip files

  • Go to Jenkins.
  • Search for the build named BMS-CREATE-ZIP.
  • Build with parameters (e.g. profile=release, branch=19.4.1, buildByTagName=true)
  • Go to the ran build -> Pipeline Steps -> Allocate node: Start -> Workspace
  • Download the zip file (e.g. 19.4.1-release.zip)
  • Unpack the zip locally as well as key WAR files inside. Open MANIFEST.MF and compare the git revision number against what is expected.
  • For sprint-internal releases, we upload to Google Drive.
  • For public releases, we upload to Amazon S3 server:
    1. Open CyberDuck to access amazon server. Connect to Amazon S3 server (more info here).
    2. Go to the folder Leafnode/installerdata/[version_number]. Copy https links to the zips with right click.
    3. Update the confluence page. Add the info about the new version as per template. Add the https links to the files.

Step 6. Update SwaggerHub API documentation

Upload new version to https://app.swaggerhub.com/apis/ibp_bms/BMSAPI

Troubleshooting

Problem Solution
Some files can be cached in TOMCAT\work\Catalina\localhost, causing problems (See BMS-4835) If this happens, some people suggest to delete the work folder.
Fieldbook module fail to start, error messages in log about missing properties. fieldbook.properties is usually injected with custom properties. If fieldbook.properties is present in files.txt, then new properties must be manually added to it: e.g in UAT, go to multi/custom/fieldbook.properties and edit accordingly
When deploying docker to a server via BMS-DeployDockerImage, this error will occur if the server doesn't have credentials to pull the BMS docker image from the docker repo Pulling bmsapp... unauthorized: incorrect username or password Connect to the target server via SSH using ec2-user account, then execute docker login command. And then specify the docker username and password.