From 8f747850647212418498446edb992b5c078b0529 Mon Sep 17 00:00:00 2001 From: Jakob Borg Date: Sun, 30 Aug 2015 20:59:14 +0200 Subject: [PATCH] New release process --- dev/release.rst | 28 +++++++++++----------------- 1 file changed, 11 insertions(+), 17 deletions(-) diff --git a/dev/release.rst b/dev/release.rst index 64eb148e5..a28aad861 100644 --- a/dev/release.rst +++ b/dev/release.rst @@ -6,16 +6,7 @@ Prerequisites - Push access to the ``syncthing`` repo, for pushing a new tag. -- SSH account on build server, member of the ``jenkins`` group, for - 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. +- SSH account on the signing server. Process ------- @@ -23,7 +14,7 @@ Process Make sure the build seems sane. I.e. the build is clean on the build server, the integration tests pass without complaints. -Update the documentation and translations, and commit the result. +Update the documentation and translations, and commit the result. .. code-block:: bash @@ -36,22 +27,25 @@ push it: .. 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 +(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 tag and wait for it to complete successfully before moving on. -Run ``go run changelog.go`` (in the repo) to create the changelog comparison -from the previous release. Copy to clipboard. +Run ``go run script/changelog.go`` (in the repo) to create the changelog +comparison from the previous release. Copy to clipboard. 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 the changelog from above, and publish the release. -On the build server, logged in via ssh, run -``/usr/local/bin/upload-release``. This will create the md5sum and -sha1sum files, sign them (gpg will prompt for key passphrase twice) and +On the signing server, logged in via ssh, run ``sign-upload-release``. This +will create download the build artefacts from Jenkins, sign all the binaries, +create the sha1sum and sha256sum files, sign them with the release GPG key and upload the whole shebang to Github. Verify it looks sane on the releases page.