daml/release/RELEASE.md
Gary Verhaegen 6110d4be3a
push releases to github (#413)
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
2019-04-12 11:30:13 +01:00

1.4 KiB

Making a Release

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

  2. Make a PR that only bumps the version number in the VERSION file. It is important that the PR only changes the VERSION file.

  3. Squash the PR.

  4. Once CI has passed for the corresponding master build, the release should be available on bintray and GitHub, as well as properly tagged.

  5. Activate the new version with da use VERSION. Note that it will not be picked up by da upgrade at this point.

  6. Run through the manual test plan described in https://docs.google.com/document/d/16amcy7bQodXSHjEmKhAUiaPf6O92gUbch1OyixDEvSM/edit?ts=5ca5be00.

  7. If it passes, the release should be made public. This currently consists of two steps:

    1. 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 by da upgrade.

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