Add missing pages Fix the nav for release guide Cleanup branching sop Add release version substitutions Signed-off-by: Tomas Hrcka <thrcka@redhat.com>
122 lines
3.2 KiB
Text
122 lines
3.2 KiB
Text
== Mass Rebuild of Modules
|
|
|
|
=== Description
|
|
|
|
Periodically we do mass rebuilds of modules in rawhide during the
|
|
development cycle. This SOP will outline the steps necessary to do this.
|
|
|
|
=== Assumptions
|
|
|
|
This assumes that the mass rebuild has already been approved and
|
|
scheduled via release engineering and FESCo. Coordinate with
|
|
infrastructure as well for any needed updates.
|
|
|
|
=== Considerations
|
|
|
|
* The most important thing to keep in mind while doing a mass rebuild is
|
|
to communicate clearly what actions are being performed and the status
|
|
of the rebuild.
|
|
* Check in on scripts frequently to avoid a long stalled command from
|
|
adding significant delays in completing the rebuild.
|
|
|
|
=== Actions
|
|
|
|
==== Preparatory Steps
|
|
|
|
The following steps should be completed after the
|
|
https://docs.pagure.org/releng/sop_mass_rebuild_packages.html[mass
|
|
rebuild of packages] is done.
|
|
|
|
. Update Scripts
|
|
|
|
The mass rebuild depends on two main scripts from the
|
|
https://pagure.io/releng[releng git repository]. Each one requires some
|
|
changes in variables for each new mass rebuild cycle.
|
|
|
|
____
|
|
* {blank}
|
|
+
|
|
_mass-rebuild-modules.py_::
|
|
** rebuildid
|
|
* {blank}
|
|
+
|
|
_massrebuildsinfo.py_::
|
|
** module_mass_rebuild_epoch
|
|
** module_mass_rebuild_platform
|
|
____
|
|
|
|
Change the following items:
|
|
|
|
* the `rebuildid` to match the release for which you are mass rebuilding
|
|
modules as per in massrebuildsinfo.py
|
|
* `module_mass_rebuild_epoch` mostly will be the epoch of mass rebuild
|
|
of packages
|
|
* `module_mass_rebuild_platform` should be the rawhide module platform
|
|
|
|
==== Starting the Mass Rebuild of Modules
|
|
|
|
The `mass-rebuild-modules.py` script takes care of:
|
|
|
|
* Discovering available available modules from PDC
|
|
* Find the module info from mbs and check if a module build is submitted
|
|
after the epoch date
|
|
* Checking out modules from dist-git
|
|
* Switching to appropriate stream
|
|
* Find modulemd file
|
|
* Use libmodulemd to determine if this module stream applies to this
|
|
platform version
|
|
* If needs rebuilding, committing the change
|
|
* Push the commit
|
|
* Submitting the build request through mbs
|
|
|
|
. Connect to the mass-rebuild Machine
|
|
+
|
|
____
|
|
....
|
|
$ ssh compose-branched01.iad2.fedoraproject.org
|
|
....
|
|
____
|
|
. Start a terminal multiplexer
|
|
+
|
|
____
|
|
....
|
|
$ tmux
|
|
....
|
|
____
|
|
. Clone or checkout the latest copy of the
|
|
https://pagure.io/releng[releng git repository].
|
|
. Run the [.title-ref]#mass-rebuild-modules.py# script from
|
|
_releng/scripts_
|
|
+
|
|
____
|
|
....
|
|
$ cd path/to/releng_repo/scripts
|
|
$ ./mass-rebuild-modules.py <path_to_token_file> build --wait 2>&1 | tee ~/massbuildmodules.out
|
|
....
|
|
____
|
|
|
|
[NOTE]
|
|
.Note
|
|
====
|
|
The token file should be located in infra's private ansible repo, or ask
|
|
infra to get it to you using this
|
|
https://pagure.io/fedora-infrastructure/issue/8048#comment-587789[process].
|
|
====
|
|
|
|
[NOTE]
|
|
.Note
|
|
====
|
|
The [.title-ref]#build# option is really important to pay attention,
|
|
since the mass branching of modules will also use the same script, just
|
|
changing the option to [.title-ref]#branch# and
|
|
[.title-ref]#module_mass_branching_platform# in
|
|
[.title-ref]#massrebuildsinfo.py#
|
|
====
|
|
|
|
==== Post Mass Rebuild Tasks
|
|
|
|
Once the module mass rebuild is done, send an email to the
|
|
devel-announce@ list
|
|
|
|
. Send the final notification to the
|
|
_devel-announce@lists.fedoraproject.org_ list
|