[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 . 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 . 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. composes. Verify that these builds were removed.
.... ....
$ koji list-tagged f[release_version]-compose $ koji list-tagged f{branched}-compose
$ koji untag-build --all f[release_version]-compose [build1 build2 ...] $ koji untag-build --all f{branched}-compose [build1 build2 ...]
.... ....
==== ====
+ +
@ -50,14 +50,14 @@ $ koji untag-build --all f[release_version]-compose [build1 build2 ...]
.Note .Note
==== ====
The order in which packages are added into the 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 erroneously then special attention should be given to adding them back
correctly. correctly.
==== ====
. Add builds specified by QE to the current compose tag . 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] [NOTE]
@ -73,8 +73,8 @@ appropriate permissions in the koji tool.
to construct the compose. Each compose uses its own configuration. The to construct the compose. Each compose uses its own configuration. The
`global_release` variable should start from 1.1 and the second number `global_release` variable should start from 1.1 and the second number
should increment each time a new compose is created. should increment each time a new compose is created.
* Beta - `fedora-beta.conf` * Beta - `fedora-beta.conf`
* RC - `fedora-final.conf`
. Log into the compose backend . Log into the compose backend
+ +
.... ....
@ -106,13 +106,13 @@ repository checkout from pagure.
+ +
.... ....
$ git fetch origin $ git fetch origin
$ git checkout f[release_version] $ git checkout f{branched}
$ git pull origin f[release_version] $ git pull origin f{branched}
.... ....
. Run the compose . 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 The numbering scheme begins with 1.1 and the second number is
@ -130,5 +130,89 @@ number is incremented with each compose.
.Note .Note
==== ====
If the compose fails with a directory missing error, then create the 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.