summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCyril Brulebois <ckb@riseup.net>2020-03-24 11:25:56 +0100
committerCyril Brulebois <ckb@riseup.net>2020-04-26 13:52:34 +0200
commit8a5d6e4981444b681a205589fd1102799797a223 (patch)
treec7dfbd135e2a7254cf4b719db76a938d22bb3809
parent17973cc452ae76823d27a54de7c247e3b21ff94a (diff)
[WIP] Release process: enable parallelism for IUK builds in Jenkinsfeature/17658-allow-building-iuks-in-parallel-on-jenkins
NOTES: - This proof-of-concept relies on temporary names for some Jenkins jobs. - There might be better ways to deal with IUK_SOURCE_VERSIONS when submitting the build.
-rwxr-xr-xbin/copy-iuks-to-rsync-server-and-verify2
-rw-r--r--wiki/src/contribute/release_process.mdwn21
2 files changed, 15 insertions, 8 deletions
diff --git a/bin/copy-iuks-to-rsync-server-and-verify b/bin/copy-iuks-to-rsync-server-and-verify
index cb74d60..bc995fd 100755
--- a/bin/copy-iuks-to-rsync-server-and-verify
+++ b/bin/copy-iuks-to-rsync-server-and-verify
@@ -8,7 +8,7 @@ import sys
from typing import List
from pathlib import Path
-JENKINS_IUKS_BASE_URL = "https://nightly.tails.boum.org/build_IUKs/builds"
+JENKINS_IUKS_BASE_URL = "https://nightly.tails.boum.org/kibi_collect_IUKs/builds"
RSYNC_SERVER_HOSTNAME = "rsync.lizard"
LOG_FORMAT = "%(asctime)-15s %(levelname)s %(message)s"
log = logging.getLogger()
diff --git a/wiki/src/contribute/release_process.mdwn b/wiki/src/contribute/release_process.mdwn
index 9fef2b8..fed28d6 100644
--- a/wiki/src/contribute/release_process.mdwn
+++ b/wiki/src/contribute/release_process.mdwn
@@ -885,7 +885,7 @@ Push the released ISO and USB images and their artifacts (`.buildlog`,
`.build-manifest`, and `.packages` files) to our Tails ISO history git-annex
repo, so that:
- - The Jenkins `build_IUKs` job can fetch them.
+ - The Jenkins `kibi_build_IUKs` job can fetch them.
- Our isotesters can fetch them from there for their testing.
How to do so is described in the `ISO_history.mdwn` document in the RM team's
@@ -899,14 +899,16 @@ on <https://iso-history.tails.boum.org/>.
Build the Incremental Upgrade Kits on Jenkins
------------------------------------------
-1. On <https://jenkins.tails.boum.org/job/build_IUKs/build?delay=0sec>,
+1. On <https://jenkins.tails.boum.org/job/kibi_build_IUKs/configure>, adjust
+ the `SOURCE_VERSION` axis to list all versions in `$IUK_SOURCE_VERSIONS`,
+ and save the updated configuration.
+
+1. On <https://jenkins.tails.boum.org/job/kibi_build_IUKs/build?delay=0sec>,
fill the form with these values:
- `TAILS_GIT_COMMIT`: the value of `$TAG` in your release environment
- `SOURCE_DATE_EPOCH`: the value of `$SOURCE_DATE_EPOCH` in your
release environment
- - `SOURCE_VERSIONS`: the value of `$IUK_SOURCE_VERSIONS` in your
- release environment
- `NEW_VERSION`: the value of `$VERSION` in your release environment
- `EXTRA_ARGS`: leave it blank
@@ -915,12 +917,15 @@ Build the Incremental Upgrade Kits on Jenkins
3. After a few seconds, a new build appears on top of the _Build
History_ sidebar. Click on the progress bar of this new build.
+3. **Verify:** A downstream `kibi_collect_IUKs` job should appear,
+ to be triggered once the `kibi_build_IUKs` has completed successfully.
+
4. Set the `$CANDIDATE_JENKINS_IUKS_BUILD_ID` environment variable
- to the ID of this job (an integer).
+ to the ID of that downstream job (an integer).
-5. Wait until this *build_IUKs* job completes successfully.
+5. Wait until both `kibi_build_IUKs` and `kibi_collect_IUKs` jobs complete successfully.
It should take about 10-15 minutes for each member of
- the `$IUK_SOURCE_VERSIONS` list.
+ the `$IUK_SOURCE_VERSIONS` list, distributed across `isobuilderN` workers.
<a id="reproducibility-sanity-check-iuk"></a>
@@ -938,6 +943,8 @@ Else, if this verification fails, then:
1. Visit the web page whose URL is printed by the following command:
+ **XXX: Made obsolete if we keep two jobs (build then collect)**
+
echo "https://jenkins.tails.boum.org/job/build_IUKs/${CANDIDATE_JENKINS_IUKS_BUILD_ID:?}/parameters/"
It tells you which parameters you've passed to the Jenkins job.