Skip to content

foreman-packaging: Bootstrap foreman-build and tiered EL10 build execution #8

Description

@zjhuntin

Summary

Execute the full EL10 build in dependency order using a deliberate, PR-based approach. Instead of bulk build triggers, create PRs to foreman-packaging for each batch of packages, keeping ~10 PRs open at a time.

Use scripts/el10_rebuild_tracker.py to manage the pipeline.

Prerequisites

Approach

For each phase in the build order, attempt scratch builds for batches of ~10 packages. Fix any failures, then create PRs to theforeman/foreman-packaging (branch: rpm/develop) with the spec fixes. Keep ~10 PRs in flight to balance CI load.

Workflow per batch:

  1. ./scripts/el10_rebuild_tracker.py next — see next packages to attempt
  2. cd workspace/foreman-packaging && obal scratch <packages> --scm none — attempt builds
  3. Fix any spec failures (library paths, Ruby 3.3 compat, macro changes, etc.)
  4. Create a PR to theforeman/foreman-packaging with the fixes
  5. ./scripts/el10_rebuild_tracker.py pr foreman-packaging#NNNN <packages> — record the PR
  6. After merge: ./scripts/el10_rebuild_tracker.py merged foreman-packaging#NNNN

Build Phases (in dependency order)

Phase 0: Bootstrap
  foreman-build subpackage (one-time, manual bootstrap)

Phase 1: ruby-tier1 (176 packages)
Phase 2: ruby-tier2 (4 packages)
Phase 3: frameworks — rails + hammer + other (19 packages, parallel)
Phase 4: nodejs (118 packages)
Phase 5: core-apps — foreman + installer + proxy (26 packages)
Phase 6: plugins-tier1 (93 packages)
Phase 7: plugins-tier2 (110 packages)
Phase 8: katello (32 packages)

Notes

  • Installer ordering: foreman-installer is in the same manifest group as its build deps (rubygem-kafo, etc.). Build the deps first, then foreman-installer. Two prior PRs to fix this at the manifest level were closed without merging (#8814, #9564).
  • rubygem-grpc: Fails on both EL9 and EL10. Used by foreman_google plugin, not on the critical path.
  • Many packages will build fine without changes — mark them as ok in the tracker and only create PRs for packages that need spec fixes.
  • ekohl's Copr at https://copr.fedorainfracloud.org/coprs/ekohl/foreman-nightly-staging/ has successful EL10 builds of foreman core — confirms the path works.

Metadata

Metadata

Assignees

No one assigned

    Labels

    build-waveTiered/wave package build tracking issueforeman-packagingScoped to theforeman/foreman-packaging EL10 work

    Type

    No type

    Fields

    Red Hat Jira

    None yet

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions