New release process

This commit is contained in:
Jakob Borg
2015-08-30 20:59:14 +02:00
parent 565322be5d
commit 8f74785064
+10 -16
View File
@@ -6,16 +6,7 @@ Prerequisites
- Push access to the ``syncthing`` repo, for pushing a new tag. - Push access to the ``syncthing`` repo, for pushing a new tag.
- SSH account on build server, member of the ``jenkins`` group, for - SSH account on the signing server.
accessing and signing the releases.
- The release signing key on your GPG keyring on your own computer (for
signing the tag) and your account on the build server (for signing
the release). In a pinch, having it just on the build server will do
since you can run git there to create, sign and push the tag.
- Your Github token in the ``GITHUB_TOKEN`` environment variable on the
build server, for uploading the release.
Process Process
------- -------
@@ -36,22 +27,25 @@ push it:
.. code-block:: bash .. code-block:: bash
$ git tag -a -s -u release@syncthing.net -m v0.10.15 v0.10.15 $ git tag -a -s -m v0.10.15 v0.10.15
$ git push --tags $ git push --tags
(The tag is signed with your personal key. The binary releases will be signed
by the Syncthing Release key later.)
Trigger the ``syncthing-release`` job for the newly created Trigger the ``syncthing-release`` job for the newly created
tag and wait for it to complete successfully before moving on. tag and wait for it to complete successfully before moving on.
Run ``go run changelog.go`` (in the repo) to create the changelog comparison Run ``go run script/changelog.go`` (in the repo) to create the changelog
from the previous release. Copy to clipboard. comparison from the previous release. Copy to clipboard.
On the Github releases page, select the newly pushed tag and hit "Edit On the Github releases page, select the newly pushed tag and hit "Edit
Tag". Set the "Release title" to the same version as the tag, paste in Tag". Set the "Release title" to the same version as the tag, paste in
the changelog from above, and publish the release. the changelog from above, and publish the release.
On the build server, logged in via ssh, run On the signing server, logged in via ssh, run ``sign-upload-release``. This
``/usr/local/bin/upload-release``. This will create the md5sum and will create download the build artefacts from Jenkins, sign all the binaries,
sha1sum files, sign them (gpg will prompt for key passphrase twice) and create the sha1sum and sha256sum files, sign them with the release GPG key and
upload the whole shebang to Github. upload the whole shebang to Github.
Verify it looks sane on the releases page. Verify it looks sane on the releases page.