New release process
This commit is contained in:
+11
-17
@@ -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
|
||||||
-------
|
-------
|
||||||
@@ -23,7 +14,7 @@ Process
|
|||||||
Make sure the build seems sane. I.e. the build is clean on the build
|
Make sure the build seems sane. I.e. the build is clean on the build
|
||||||
server, the integration tests pass without complaints.
|
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
|
.. code-block:: bash
|
||||||
|
|
||||||
@@ -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.
|
||||||
|
|||||||
Reference in New Issue
Block a user