Azure Pipelines has direct integration with GitHub, so we're just using that. Releases on GitHub have to target a tag, so we also need to push the tag as an intermediate step; we also need to include the platform name in the artifact to avoid overwriting from different builds. The two "GitHub release" steps depend on two Azure variables that are not defined in the pipeline script. This may look like it should not work, but in fact it does, because these variables are set by the release script. In Azure Pipelines, any build step can set variables for the next build steps by outputting specially-formatted text to stdout. This text will not appear in the build output displayed by Azure Pipelines, e.g.: ``` echo '##vso[task.setvariable variable=sauce]tomatoes' ``` would define the Azure variable `sauce` to have the string `tomatoes` as its value for the next build steps. See [0] for details. [0]: https://docs.microsoft.com/en-us/azure/devops/pipelines/process/variables?view=azure-devops&tabs=yaml%2Cbatch#set-in-script
1.4 KiB
Making a Release
-
Update https://github.com/digital-asset/daml/docs/support/release-notes.rst by adding a new header for the new version above any changes since the last version.
-
Make a PR that only bumps the version number in the VERSION file. It is important that the PR only changes the VERSION file.
-
Squash the PR.
-
Once CI has passed for the corresponding master build, the release should be available on bintray and GitHub, as well as properly tagged.
-
Activate the new version with
da use VERSION
. Note that it will not be picked up byda upgrade
at this point. -
Run through the manual test plan described in https://docs.google.com/document/d/16amcy7bQodXSHjEmKhAUiaPf6O92gUbch1OyixDEvSM/edit?ts=5ca5be00.
-
If it passes, the release should be made public. This currently consists of two steps:
-
Tag the release as
visible-external
on Bintray. This step can only be done by someone with permissions to set tags on Bintray. After this step the release will be picked up byda upgrade
. -
Trigger the CircleCI jobs to create the Docker images. To do so, go to https://circleci.com/gh/DACH-NY/workflows/damlc-docker/tree/master and click "rerun" on "master / Main Variant" and on "master / CircleCI Variant". Once the jobs have passed, you should see two new images on https://hub.docker.com/r/digitalasset/daml-sdk/tags.
-