Skip to content
Draft
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 19 additions & 12 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -108,21 +108,36 @@ jobs:
echo "enabled=false" >> "$GITHUB_OUTPUT"
fi

- name: Discover Operating System bases
id: os-discovery
run: |
set -euo pipefail
# Discover Fedora latest stable version dynamically
fedora_latest=$(skopeo inspect --no-tags docker://quay.io/fedora/fedora:latest | \
jq -r '.Labels."org.opencontainers.image.version"')
echo "fedora_latest=fedora-${fedora_latest}" >> "$GITHUB_OUTPUT"

# Emit a warning if the discovered version diverges from expectations

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nah right now it's intentional that we are defaulting to the latest.

Hmm you know if we wanted to do anything else, what we should really do is have renovate bump it, though that quickly escalates into "bump our pinned mirrored images" anyways

And argh we are going to emit this warning because latest is 44 not 45 so fix that

if [[ "fedora-${fedora_latest}" != "fedora-45" ]]; then
echo "::warning::Fedora latest is now ${fedora_latest}, but CI is expecting 45. Update CI configuration."
fi

- name: Compute OS matrices
id: matrix
run: |
LABELS='${{ toJson(github.event.pull_request.labels.*.name) }}'
EVENT='${{ github.event_name }}'
MERGE_QUEUE_ENABLED='${{ steps.merge-queue.outputs.enabled }}'
DOCS_ONLY='${{ steps.docs-check.outputs.docs_only }}'
FEDORA_LATEST='${{ steps.os-discovery.outputs.fedora_latest }}'

if [[ "$DOCS_ONLY" != "true" ]] && { [[ "$EVENT" == "merge_group" || "$EVENT" == "workflow_dispatch" ]] \
|| [[ "$EVENT" == "pull_request" && "$MERGE_QUEUE_ENABLED" != "true" ]] \
|| echo "$LABELS" | jq -e 'index("ci/merge")' > /dev/null; }; then
# Full suite: all OSes
echo 'package_os_matrix=["fedora-44","fedora-45","fedora-46","centos-9","centos-10"]' >> "$GITHUB_OUTPUT"
echo 'integration_os_matrix=["fedora-44","centos-9","centos-10"]' >> "$GITHUB_OUTPUT"
echo 'upgrade_os_matrix=["fedora-44","centos-10"]' >> "$GITHUB_OUTPUT"
echo "package_os_matrix=[\"${FEDORA_LATEST}\",\"centos-9\",\"centos-10\"]" >> "$GITHUB_OUTPUT"
echo "integration_os_matrix=[\"${FEDORA_LATEST}\",\"centos-9\",\"centos-10\"]" >> "$GITHUB_OUTPUT"
echo "upgrade_os_matrix=[\"${FEDORA_LATEST}\",\"centos-10\"]" >> "$GITHUB_OUTPUT"
echo 'run_heavy=true' >> "$GITHUB_OUTPUT"
elif [[ "$DOCS_ONLY" != "true" ]] && echo "$LABELS" | jq -e 'index("ci/tier-1")' > /dev/null; then
# Tier-1 only: centos-10
Expand Down Expand Up @@ -255,8 +270,6 @@ jobs:
test_os: ${{ fromJson(needs.compute-ci-level.outputs.package_os_matrix) }}

runs-on: ubuntu-26.04
# Rawhide is best-effort; don't let it block merges
continue-on-error: ${{ matrix.test_os == 'fedora-46' }}

steps:
- uses: actions/checkout@v7
Expand Down Expand Up @@ -335,9 +348,7 @@ jobs:
- variant: ostree
bootloader: systemd

# For now only have grub-cc tests in F44
- test_os: fedora-45
bootloader: grub-cc
# For now only have grub-cc tests in Fedora (latest stable, discovered dynamically)
- test_os: centos-9
bootloader: grub-cc
- test_os: centos-10
Expand Down Expand Up @@ -445,10 +456,6 @@ jobs:
matrix:
test_os: ${{ fromJson(needs.compute-ci-level.outputs.upgrade_os_matrix) }}
variant: [ostree, composefs]
# TODO: Re-enable this after 1.16.8 is released
exclude:
- test_os: fedora-44
variant: composefs

runs-on: ubuntu-26.04

Expand Down
Loading