Update SOPs for creation of release candidate composes
This commit is contained in:
parent
5aab077dbd
commit
b8dbc37a97
2 changed files with 31 additions and 175 deletions
|
@ -15,13 +15,14 @@ candidate composes are not currently automated.
|
||||||
|
|
||||||
== Action
|
== Action
|
||||||
|
|
||||||
=== Make pungi config changes
|
=== Create the fedora-beta.conf configuration file using the script
|
||||||
|
The script can be found https://pagure.io/pungi-fedora/blob/main/f/create-candidate-configs.py[here].
|
||||||
|
|
||||||
Create fedora-beta.conf on the branched release branch, For inspiration look at https://pagure.io/pungi-fedora/pull-request/1148[This PR]
|
There is a mandatory argument to specify the milestone to generate (beta or final)
|
||||||
|
and optional arguments for the major and minor versions for the label.
|
||||||
|
|
||||||
make sure to set runroot_tag in general.conf to current branched
|
Example usage:
|
||||||
make sure all ostree releases have config_branch set to the branched release
|
`./create-candidate-configs.py --minor=5 beta`
|
||||||
use grep to find any references to rawhide.
|
|
||||||
|
|
||||||
=== Review Compose Tags
|
=== Review Compose Tags
|
||||||
|
|
||||||
|
@ -31,7 +32,7 @@ use grep to find any references to rawhide.
|
||||||
....
|
....
|
||||||
$ koji list-tagged f{branched}-compose
|
$ koji list-tagged f{branched}-compose
|
||||||
....
|
....
|
||||||
. Verify pre-existing builds are in compose tags
|
. Verify preexisting builds are in compose tags
|
||||||
+
|
+
|
||||||
The tagged builds from the previous composes should all be present in
|
The tagged builds from the previous composes should all be present in
|
||||||
the output from the previous step. Consult the request ticket for the
|
the output from the previous step. Consult the request ticket for the
|
||||||
|
@ -39,8 +40,8 @@ list of builds expected in this output.
|
||||||
+
|
+
|
||||||
[NOTE]
|
[NOTE]
|
||||||
====
|
====
|
||||||
The very first run of an Beta, or GA compose should have no builds
|
The very first run of a Beta or GA compose should have no builds
|
||||||
listed under the compose tag. It is important to clear pre-existing
|
listed under the compose tag. It is important to clear preexisting
|
||||||
builds from the compose tag when moving between the Beta and RC
|
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.
|
||||||
|
|
||||||
|
@ -73,9 +74,9 @@ appropriate permissions in the koji tool.
|
||||||
|
|
||||||
=== Running the Compose
|
=== Running the Compose
|
||||||
|
|
||||||
. Update the pungi-fedora config file Composes use a configuration file
|
. Composes use a configuration file to construct the compose.
|
||||||
to construct the compose. Each compose uses its own configuration. The
|
Each compose uses its own configuration.
|
||||||
`global_release` variable should start from 1.1 and the second number
|
The `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`
|
||||||
|
@ -117,7 +118,7 @@ $ git pull origin f{branched}
|
||||||
. Run the compose
|
. Run the compose
|
||||||
+
|
+
|
||||||
....
|
....
|
||||||
$ sudo ./release-candidate.sh Beta-#.#
|
$ sudo ./release-candidate.sh 41_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
|
||||||
|
@ -125,8 +126,8 @@ incremented after each compose.
|
||||||
+
|
+
|
||||||
[NOTE]
|
[NOTE]
|
||||||
====
|
====
|
||||||
Pungi requires numbers in the format #.# as an argument. It is because
|
Pungi requires numbers in the format `major.minor` as an argument (e.g. `1.4`).
|
||||||
of this that composes always start with the number 1 and the second
|
It is because of this that composes always start with the number 1 and the second
|
||||||
number is incremented with each compose.
|
number is incremented with each compose.
|
||||||
====
|
====
|
||||||
+
|
+
|
||||||
|
@ -136,79 +137,6 @@ If the compose fails with a directory missing error, then create the
|
||||||
compose directory with `mkdir /mnt/koji/compose/{branched}`
|
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
|
|
||||||
+
|
|
||||||
[source,subs="attributes+"]
|
|
||||||
....
|
|
||||||
$ 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 :
|
|
||||||
+
|
|
||||||
[source,subs="attributes+"]
|
|
||||||
....
|
|
||||||
$ sudo -u ftpsync mkdir -m 750 -p /pub/alt/stage/{branched}_[release_label]-[#.#]
|
|
||||||
....
|
|
||||||
. Locate the compose directory that will be the copy source :
|
|
||||||
+
|
|
||||||
[source,subs="attributes+"]
|
|
||||||
....
|
|
||||||
$ ls /mnt/koji/compose/{branched}/[compose_id]
|
|
||||||
....
|
|
||||||
+
|
|
||||||
[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.
|
|
||||||
+
|
|
||||||
[source,subs="attributes+"]
|
|
||||||
....
|
|
||||||
$ 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/{branched}/Fedora-{branched}-20190911.0/compose/$dir/ /pub/alt/stage/{branched}_Beta-1.1/$dir/ --link-dest=/pub/fedora/linux/development/{branched}/Everything/ --link-dest=/pub/alt/stage/{branched}_Beta-1.1/Everything/; done'
|
|
||||||
....
|
|
||||||
+
|
|
||||||
[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 :
|
|
||||||
+
|
|
||||||
[source,subs="attributes+"]
|
|
||||||
....
|
|
||||||
$ 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.
|
|
||||||
|
|
||||||
=== Verification
|
=== Verification
|
||||||
|
|
||||||
The method for verifying a compose has completed is checking
|
The method for verifying a compose has completed is checking
|
||||||
|
|
|
@ -14,14 +14,15 @@ candidate composes are not currently automated.
|
||||||
|
|
||||||
== Action
|
== Action
|
||||||
|
|
||||||
=== Make pungi config changes
|
=== Create the fedora-final.conf configuration file using the script
|
||||||
|
|
||||||
Create fedora-final.conf on the branched release branch, For inspiration look at https://pagure.io/pungi-fedora/pull-request/1148[This PR]
|
The script can be found https://pagure.io/pungi-fedora/blob/main/f/create-candidate-configs.py[here].
|
||||||
|
|
||||||
make sure to set runroot_tag in general.conf to current branched
|
There is a mandatory argument to specify the milestone to generate (beta or final)
|
||||||
make sure all ostree releases have config_branch set to the branched release
|
and optional arguments for the major and minor versions for the label.
|
||||||
make sure that if new artifacts are introduced in the release, they are part of the final config.
|
|
||||||
use grep to find any references to rawhide.
|
Example usage:
|
||||||
|
`./create-candidate-configs.py --minor=5 final`
|
||||||
|
|
||||||
=== Review Compose Tags
|
=== Review Compose Tags
|
||||||
|
|
||||||
|
@ -31,7 +32,7 @@ use grep to find any references to rawhide.
|
||||||
....
|
....
|
||||||
$ koji list-tagged f{branched}-compose
|
$ koji list-tagged f{branched}-compose
|
||||||
....
|
....
|
||||||
. Verify pre-existing builds are in compose tags
|
. Verify preexisting builds are in compose tags
|
||||||
+
|
+
|
||||||
The tagged builds from the previous composes should all be present in
|
The tagged builds from the previous composes should all be present in
|
||||||
the output from the previous step. Consult the request ticket for the
|
the output from the previous step. Consult the request ticket for the
|
||||||
|
@ -39,8 +40,8 @@ list of builds expected in this output.
|
||||||
+
|
+
|
||||||
[NOTE]
|
[NOTE]
|
||||||
====
|
====
|
||||||
The very first run of an GA compose should have no builds
|
The very first run of a GA compose should have no builds
|
||||||
listed under the compose tag. It is important to clear pre-existing
|
listed under the compose tag. It is important to clear preexisting
|
||||||
builds from the compose tag when moving between the Beta and RC
|
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.
|
||||||
|
|
||||||
|
@ -73,9 +74,9 @@ appropriate permissions in the koji tool.
|
||||||
|
|
||||||
=== Running the Compose
|
=== Running the Compose
|
||||||
|
|
||||||
. Update the pungi-fedora config file Composes use a configuration file
|
. Composes use a configuration file to construct the compose.
|
||||||
to construct the compose. Each compose uses its own configuration. The
|
Each compose uses its own configuration.
|
||||||
`global_release` variable should start from 1.1 and the second number
|
The `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.
|
||||||
|
|
||||||
* GA - `fedora-final.conf`
|
* GA - `fedora-final.conf`
|
||||||
|
@ -117,7 +118,7 @@ $ git pull origin f{branched}
|
||||||
. Run the compose
|
. Run the compose
|
||||||
+
|
+
|
||||||
....
|
....
|
||||||
$ sudo ./release-candidate.sh RC-#.#
|
$ sudo ./release-candidate.sh 41_RC-#.#
|
||||||
....
|
....
|
||||||
+
|
+
|
||||||
The numbering scheme begins with 1.1 and the second number is
|
The numbering scheme begins with 1.1 and the second number is
|
||||||
|
@ -125,8 +126,8 @@ incremented after each compose.
|
||||||
+
|
+
|
||||||
[NOTE]
|
[NOTE]
|
||||||
====
|
====
|
||||||
Pungi requires numbers in the format #.# as an argument. It is because
|
Pungi requires numbers in the format `major.minor` as an argument (e.g. `1.4`).
|
||||||
of this that composes always start with the number 1 and the second
|
It is because of this that composes always start with the number 1 and the second
|
||||||
number is incremented with each compose.
|
number is incremented with each compose.
|
||||||
====
|
====
|
||||||
+
|
+
|
||||||
|
@ -136,79 +137,6 @@ If the compose fails with a directory missing error, then create the
|
||||||
compose directory with `mkdir /mnt/koji/compose/{branched}`
|
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
|
|
||||||
+
|
|
||||||
[source,subs="attributes+"]
|
|
||||||
....
|
|
||||||
$ 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 :
|
|
||||||
+
|
|
||||||
[source,subs="attributes+"]
|
|
||||||
....
|
|
||||||
$ sudo -u ftpsync mkdir -m 750 -p /pub/alt/stage/{branched}_RC-[#.#]
|
|
||||||
....
|
|
||||||
. Locate the compose directory that will be the copy source :
|
|
||||||
+
|
|
||||||
[source,subs="attributes+"]
|
|
||||||
....
|
|
||||||
$ ls /mnt/koji/compose/{branched}/[compose_id]
|
|
||||||
....
|
|
||||||
+
|
|
||||||
[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.
|
|
||||||
+
|
|
||||||
[source,subs="attributes+"]
|
|
||||||
....
|
|
||||||
$ 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/{branched}/Fedora-{branched}-20190911.0/compose/$dir/ /pub/alt/stage/{branched}_RC-1.1/$dir/ --link-dest=/pub/fedora/linux/development/{branched}/Everything/ --link-dest=/pub/alt/stage/{branched}_RC-1.1/Everything/; done'
|
|
||||||
....
|
|
||||||
+
|
|
||||||
[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 :
|
|
||||||
+
|
|
||||||
[source,subs="attributes+"]
|
|
||||||
....
|
|
||||||
$ sudo -u ftpsync chmod 755 /pub/alt/stage/{branched}_RC-[#.#]
|
|
||||||
....
|
|
||||||
. Update the issue in the releng pagure repository
|
|
||||||
+
|
|
||||||
Once the compose and sync is complete the issue in pagure should be
|
|
||||||
updated and closed.
|
|
||||||
|
|
||||||
=== Verification
|
=== Verification
|
||||||
|
|
||||||
The method for verifying a compose has completed is checking
|
The method for verifying a compose has completed is checking
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue