infra-docs-fpo/modules/release_guide/pages/sop_mass_rebuild_modules.adoc
Tomas Hrcka 14c92455cb Initial import
Add missing pages

Fix the nav for release guide

Cleanup branching sop

Add release version substitutions

Signed-off-by: Tomas Hrcka <thrcka@redhat.com>
2023-02-28 12:32:13 +01:00

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