michel-slm / bulk-rebuild

Created 3 years ago
Maintained by salimma
Scripts for doing bulk rebuilds of packages
Members 1
Michel Alexandre Salim committed 2 years ago

bulk-rebuild

Scripts for doing bulk rebuilds of packages

How to use

bump-stack.sh

This script is currently specific to bumping the FB packages that depend on Folly. It can be generalized but probably doesn't make much sense unless the packages have matching version numbers.

src/fedora/fb-pkgs
❯ ./bulk-rebuild/bump-stack.sh 2020.12.28.00
/home/michel/src/fedora/fb-pkgs/folly
~/src/fedora/fb-pkgs/folly ~/src/fedora/fb-pkgs
Switched to branch 'master'
Current branch master is up to date.
Downloading: https://github.com/facebook/folly/archive/v2020.12.28.00/folly-2020.12.28.00.tar.gz
|   3.1 MiB Elapsed Time: -1 day, 16:00:01
Downloaded: folly-2020.12.28.00.tar.gz
Could not execute new_sources: Request is unauthorized.
Password for salimma@FEDORAPROJECT.ORG:
Uploading: folly-2020.12.28.00.tar.gz
######################################################################## 100.0%
Source upload succeeded. Don't forget to commit the sources file
Done updating folly. Make any manual adjustments now then press ENTER

[master 91ba7c3] Update to 2020.12.28.00
 3 files changed, 6 insertions(+), 3 deletions(-)
Enumerating objects: 9, done.
Counting objects: 100% (9/9), done.
Delta compression using up to 4 threads
Compressing objects: 100% (4/4), done.
Writing objects: 100% (5/5), 614 bytes | 204.00 KiB/s, done.
Total 5 (delta 2), reused 0 (delta 0), pack-reused 0
remote: Emitting a message to the fedora-messaging message bus.
remote: * Publishing information for 1 commits
remote: Sending to redis to log activity and send commit notification emails
remote: * Publishing information for 1 commits
remote:   - to fedora-message
To ssh://pkgs.fedoraproject.org/rpms/folly
   1c2166c..91ba7c3  master -> master
# other packages being updated ...

build-stack.sh

Wraps around fedpkg request-side-tag and fedpkg chain-build. If the release requested is not Rawhide, it will rebase from it first.

If a side tag is passed as the second argument, it skips requesting and waiting for one, and assumes the side tag is ready to use. wait-repo without specifying a build would always wait for the next repo build so it doesn't make sense to wait.

The list of packages is currently hardcoded too, but it's easy to fix.

src/fedora/fb-pkgs
❯ ./bulk-rebuild/build-stack.sh f32
Waiting for side tag: f32-build-side-35423
Successfully waited 3:18 for a new f32-build-side-35423 repo
# repos being rebased to master
Chain building watchman-2020.12.28.00-1.fc32 + [['git+https://src.fedoraproject.org/rpms/folly.git#d77413a204d813852e15a203e9298596db4e9cb9'], ['git+https://src.fedoraproject.org/rpms/fizz.git#489e3fad9c84b2ad9c4e0ac5a1999707fd615c7d'], ['git+https://src.fedoraproject.org/rpms/wangle.git#556764f3fffc18e862de5ca59fb6df7ddd325c4a'], ['git+https://src.fedoraproject.org/rpms/fbthrift.git#f526a69f4d0c24fa28097d32b45984e9c62d83da']] for f32-build-side-35423
Created task: 58576348
Task info: https://koji.fedoraproject.org/koji/taskinfo?taskID=58576348
Watching tasks (this may be safely interrupted)...
58576348 chainbuild (f32-build-side-35423): free

At the end of execution the user is prompted to create the Bodhi update. Once these made it to updates-testing the side tag is automatically retired.

58576348 chainbuild (f32-build-side-35423) completed successfully
Done! Run this to create your update:
bodhi updates new --type enhancement --severity low --stable-karma 1 --from-tag f32-build-side-35423 --notes "Updating FB packages to ..."