-
Notifications
You must be signed in to change notification settings - Fork 0
Release
The release of code can be performed via Circle CI. Using Circle CI's API we trigger a job and pass information to the job about the release. The Circle CI job configuration handles the release based on the parameters passed.
We have three types of Releases,
- Shared Java Components - Shelf, Adapters are released to maven central and used by Activator and Library applications.
- KGrid Applications Activator and Library are applications the are deployed to servers and released as GitHub Releases.
- Knowledge Objects - we release KO collections in the same way we release other components. We create tags and releases in GitHub. Example Collection, IPP Collection/, CPIC Collection, etc
This CLI will help you trigger a Release of the KGrid components.
This Release CLI will help you trigger a Release of the KGrid components. The CLI handles Shared Components, KGrid Applications, Knowledge Objects.
Release CLI uses the CircleCI API to trigger a job with some added build parameters
- Triggers CircleCI job (each component has a special release step in their CircleCI script)
- build test
- create github release
- if Shared Component deploy to maven
- if KGrid Application create docker image
Currently we release our objects as a zip of all of the KOs. Each ko project should have a package script zips up the ko objects into a zip file. Heroku and ITS Demo/Test servers have scripts that pull all of the ko zip files from the projects and uses them to create a shelf. See KGrid Instance Lion create shelf or the script used for the heroku create shelf exeucted during the circleci builds.
Timing
After you successfully release (CircleCi Job completes), the component will be published to Central repo, typically within 10 minutes, though updates to search.maven.org can take up to two hours.
Settings file
In this repo a settings.xml file exists that could be used to run a maven release locally. You can use this setting.xml simple to get the snapshot repository included in your dependency scan.
Test out Release withDry Run
To make sure everything is ready to be released (no snapshots etc), you can run the release locally using the dry run switch. You can have any local changes, run the following, -B is for a batch mode not interaction.
mvn release:clean release:prepare -B -DdryRun=true
Run mvn release:clean after to tidy up the mess prepare makes