Skip to content
Closed
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
32 changes: 19 additions & 13 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -108,6 +108,19 @@ jobs:
echo "enabled=false" >> "$GITHUB_OUTPUT"
fi

- name: Verify Fedora latest version
run: |
# Dynamically verify what Fedora version is "latest" from the container image
LATEST_VERSION=$(skopeo inspect --no-tags docker://quay.io/fedora/fedora:latest | jq -r '.Labels."org.opencontainers.image.version" // .Labels.version')
echo "Fedora latest container version: $LATEST_VERSION"

# Verify it matches our hard-coded version (45)

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.

What? I don't think we need to hard code this... that's the point let's save the version as a variable and inject it dynamically into the matrix.

BTW let's proactively make this step named "Discover Operating System bases" as in the future we may want to do the same for centos (rhel 11 will come) plus other OSes

if [[ "$LATEST_VERSION" != "45" ]]; then
echo "::warning::Fedora latest is now version $LATEST_VERSION, but CI is configured for fedora-45. Consider updating the matrix."
else
echo "✓ Fedora latest version matches CI configuration (45)"
fi

- name: Compute OS matrices
id: matrix
run: |
Expand All @@ -119,10 +132,11 @@ jobs:
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"
# Full suite: fedora-latest-stable + CentOS
# Using fedora-45 as latest stable (matching Packit's fedora-latest-stable)

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.

Well but what I really wanted was deeper research on this - there's a JSON file of some kind which defines what Fedora is "latest" but what I think is better here let's do a

skopeo inspect -n quay.io/fedora/fedora:latest | jq .labels.version == rg.opencontainers.image.version or so test that out

echo 'package_os_matrix=["fedora-45","centos-9","centos-10"]' >> "$GITHUB_OUTPUT"
echo 'integration_os_matrix=["fedora-45","centos-9","centos-10"]' >> "$GITHUB_OUTPUT"
echo 'upgrade_os_matrix=["fedora-45","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 +269,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 +347,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 F45
- test_os: centos-9
bootloader: grub-cc
- test_os: centos-10
Expand Down Expand Up @@ -445,10 +455,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