[releng] Update Beta compose SOP

Signed-off-by: Tomas Hrcka <thrcka@redhat.com>
This commit is contained in:
Tomáš Hrčka 2023-03-08 07:30:37 +01:00
parent 30f63dfe25
commit dfad773825

View file

@ -24,7 +24,7 @@ Create fedora-beta.conf on the branched release branch, For inspiration look at
. List any pre-existing builds in the current compose tag
+
....
$ koji list-tagged f[release_version]-compose
$ koji list-tagged f{branched}-compose
....
. Verify pre-existing builds are in compose tags
+
@ -41,8 +41,8 @@ builds from the compose tag when moving between the Beta and RC
composes. Verify that these builds were removed.
....
$ koji list-tagged f[release_version]-compose
$ koji untag-build --all f[release_version]-compose [build1 build2 ...]
$ koji list-tagged f{branched}-compose
$ koji untag-build --all f{branched}-compose [build1 build2 ...]
....
====
+
@ -50,14 +50,14 @@ $ koji untag-build --all f[release_version]-compose [build1 build2 ...]
.Note
====
The order in which packages are added into the
f[release_version]-compose tag matter. If the builds are untagged
f{branched}-compose tag matter. If the builds are untagged
erroneously then special attention should be given to adding them back
correctly.
====
. Add builds specified by QE to the current compose tag
+
....
$ koji tag-build f[release_version]-compose [build1 build2 ...]
$ koji tag-build f{branched}-compose [build1 build2 ...]
....
+
[NOTE]
@ -73,8 +73,8 @@ appropriate permissions in the koji tool.
to construct the compose. Each compose uses its own configuration. The
`global_release` variable should start from 1.1 and the second number
should increment each time a new compose is created.
* Beta - `fedora-beta.conf`
* RC - `fedora-final.conf`
. Log into the compose backend
+
....
@ -106,13 +106,13 @@ repository checkout from pagure.
+
....
$ git fetch origin
$ git checkout f[release_version]
$ git pull origin f[release_version]
$ git checkout f{branched}
$ git pull origin f{branched}
....
. Run the compose
+
....
$ sudo ./release-candidate.sh [Beta|RC]-#.#
$ sudo ./release-candidate.sh Beta-#.#
....
+
The numbering scheme begins with 1.1 and the second number is
@ -130,5 +130,89 @@ number is incremented with each compose.
.Note
====
If the compose fails with a directory missing error, then create the
compose directory with `mkdir /mnt/koji/compose/[release_version]`
compose directory with `mkdir /mnt/koji/compose/{branched}`
====
==== Syncing the Compose
We sync the compose to `/pub/alt/stage` to enable faster access to new
content for QA and the larger Fedora community.
. Log into the compose backend
+
....
$ ssh compose-x86-01.iad2.fedoraproject.org
....
. Open a screen session
+
....
$ screen
....
. Check the status of the compose
+
....
$ cat /mnt/koji/compose/{branched}/[compose_id]/STATUS
....
+
Do not continue with any further steps if the output above is `DOOMED`.
. Create the directory targeted for the copy :
+
....
$ sudo -u ftpsync mkdir -m 750 -p /pub/alt/stage/{branched}_[release_label]-[#.#]
....
. Locate the compose directory that will be the copy source :
+
....
$ ls /mnt/koji/compose/{branched}/[compose_id]
....
+
[NOTE]
.Note
====
Take care executing the synchronization if the next compose is already
running. Be sure to grab the correct directory.
If in doubt, check
/mnt/koji/compose/{branched}/[compose_id]/STATUS to be sure it is
finished.
====
. Run the synchronization one-liner
+
The synchronization of the completed compose to the public domain is
currently a one-liner shell script. Pay close attention to what needs
replaced in the example below.
+
....
$ sudo -u ftpsync sh -c 'for dir in Everything Cloud Container Kinoite Labs Modular Server Silverblue Spins Workstation metadata; do rsync -avhH /mnt/koji/compose/31/Fedora-31-20190911.0/compose/$dir/ /pub/alt/stage/31_Beta-1.1/$dir/ --link-dest=/pub/fedora/linux/development/31/Everything/ --link-dest=/pub/alt/stage/31_Beta-1.1/Everything/; done'
....
+
[NOTE]
.Note
====
If multiple composes are run like 1.2, 1.3, add multiple --link-dest
arguments above with multiple composes
====
. Set the permissions of the synced compose :
+
....
$ sudo -u ftpsync chmod 755 /pub/alt/stage/{branched}_[release_label]-[#.#]
....
. Update the issue in the releng pagure repository
+
Once the compose and sync is complete the issue in pagure should be
updated and closed.
+
Standard Ticket Verbage
Compose is done and available from
https://kojipkgs.fedoraproject.org/compose/26/Fedora-26-20170328.0/compose/
it has been synced to
http://dl.fedoraproject.org/pub/alt/stage/26_Alpha-1.4/ rpms have all be
hardlinked to /pub/fedora/linux/development/26/
===== Verification
The method for verifying a compose has completed is checking
`/mnt/koji/compose/{branched}/[compose_dir]/STATUS`. Any status
other than DOOMED is OK.