Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
e239a19
chore(deps): update github artifact actions (major) (#1134)
ubot-7274[bot] Mar 1, 2026
f7e94f5
chore(deps): update ghcr.io/projectbluefin/common:latest docker diges…
ubot-7274[bot] Mar 1, 2026
0ba1ede
chore(deps): update anchore/sbom-action digest to 17ae174 (#1132)
ubot-7274[bot] Mar 1, 2026
b228dab
chore(deps): update quay.io/centos-bootc/centos-bootc:c10s docker dig…
ubot-7274[bot] Mar 1, 2026
16aa2b3
fix(ci): restrict SBOM generation to lts branch only (#1140)
castrojo Mar 2, 2026
fcfbbec
revert: restore SBOM generation on main branch (#1141)
castrojo Mar 2, 2026
c4c9427
fix(ci): restrict SBOM generation to lts branch only (#1142)
castrojo Mar 2, 2026
a3e9a6a
feat: switch lts builds to cron-only schedule (#1138)
castrojo Mar 2, 2026
d34e80a
chore(deps): update quay.io/centos-bootc/centos-bootc:c10s docker dig…
ubot-7274[bot] Mar 2, 2026
d91a54e
chore(deps): update ghcr.io/ublue-os/brew:latest docker digest to ca9…
ubot-7274[bot] Mar 2, 2026
ffa30fe
Merge branch 'lts' into main
castrojo Mar 2, 2026
ed26f96
chore(deps): update quay.io/centos-bootc/centos-bootc:c10s docker dig…
ubot-7274[bot] Mar 2, 2026
943d949
chore(deps): update ghcr.io/projectbluefin/common:latest docker diges…
ubot-7274[bot] Mar 2, 2026
8ed6d20
fix(ci): prevent accidental LTS tag publishing from pull bot PRs (#1147)
castrojo Mar 2, 2026
0b6baa9
fix(ci): prevent branch pollution by replacing pull app with manual w…
castrojo Mar 3, 2026
aa2af52
chore(deps): update cgr.dev/chainguard/wolfi-base:latest docker diges…
ubot-7274[bot] Mar 3, 2026
39cc90c
chore(deps): update system_files/usr/share/gnome-shell/extensions/tmp…
ubot-7274[bot] Mar 3, 2026
550e8de
fix(ci): prevent production LTS tag pollution from main branch merges…
castrojo Mar 3, 2026
6bb5b77
Delete docs/plans directory
castrojo Mar 3, 2026
6ec7dd5
fix(ci): fix LTS promotion workflow failures (#1157)
castrojo Mar 3, 2026
2ea26d1
Merge remote-tracking branch 'origin/main' into fix/resolve-lts-confl…
castrojo Mar 3, 2026
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
3 changes: 0 additions & 3 deletions .github/workflows/build-dx-hwe.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,6 @@ on:
branches:
- main
- lts
schedule:
- cron: '0 2 * * 0' # Weekly on Sunday at 2 AM UTC
merge_group:
workflow_dispatch:

Expand All @@ -35,6 +33,5 @@ jobs:
flavor: dx
kernel-pin: 6.17.12-200.fc42
rechunk: ${{ github.event_name != 'pull_request' }}
sbom: ${{ (github.event_name == 'workflow_dispatch' && (github.ref == 'refs/heads/lts' || github.ref == 'refs/heads/main')) || (github.event_name == 'push' && github.ref == 'refs/heads/main') }}
publish: ${{ (github.event_name == 'workflow_dispatch' && (github.ref == 'refs/heads/lts' || github.ref == 'refs/heads/main')) || (github.event_name == 'push' && github.ref == 'refs/heads/main') }}
hwe: true
3 changes: 0 additions & 3 deletions .github/workflows/build-dx.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,6 @@ on:
branches:
- main
- lts
schedule:
- cron: '0 2 * * 0' # Weekly on Sunday at 2 AM UTC
merge_group:
workflow_dispatch:

Expand All @@ -30,5 +28,4 @@ jobs:
image-name: bluefin-dx
flavor: dx
rechunk: ${{ github.event_name != 'pull_request' }}
sbom: ${{ (github.event_name == 'workflow_dispatch' && (github.ref == 'refs/heads/lts' || github.ref == 'refs/heads/main')) || (github.event_name == 'push' && github.ref == 'refs/heads/main') }}
publish: ${{ (github.event_name == 'workflow_dispatch' && (github.ref == 'refs/heads/lts' || github.ref == 'refs/heads/main')) || (github.event_name == 'push' && github.ref == 'refs/heads/main') }}
3 changes: 0 additions & 3 deletions .github/workflows/build-gdx.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,6 @@ on:
branches:
- main
- lts
schedule:
- cron: '0 2 * * 0' # Weekly on Sunday at 2 AM UTC
merge_group:
workflow_dispatch:

Expand All @@ -31,5 +29,4 @@ jobs:
flavor: gdx
kernel-pin: 6.17.12-200.fc42
rechunk: ${{ github.event_name != 'pull_request' }}
sbom: ${{ (github.event_name == 'workflow_dispatch' && (github.ref == 'refs/heads/lts' || github.ref == 'refs/heads/main')) || (github.event_name == 'push' && github.ref == 'refs/heads/main') }}
publish: ${{ (github.event_name == 'workflow_dispatch' && (github.ref == 'refs/heads/lts' || github.ref == 'refs/heads/main')) || (github.event_name == 'push' && github.ref == 'refs/heads/main') }}
3 changes: 0 additions & 3 deletions .github/workflows/build-regular-hwe.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,6 @@ on:
branches:
- main
- lts
schedule:
- cron: '0 2 * * 0' # Weekly on Sunday at 2 AM UTC
merge_group:
workflow_dispatch:

Expand All @@ -34,7 +32,6 @@ jobs:
image-name: bluefin
kernel-pin: 6.17.12-200.fc42
rechunk: ${{ github.event_name != 'pull_request' }}
sbom: ${{ (github.event_name == 'workflow_dispatch' && (github.ref == 'refs/heads/lts' || github.ref == 'refs/heads/main')) || (github.event_name == 'push' && github.ref == 'refs/heads/main') }}
publish: ${{ (github.event_name == 'workflow_dispatch' && (github.ref == 'refs/heads/lts' || github.ref == 'refs/heads/main')) || (github.event_name == 'push' && github.ref == 'refs/heads/main') }}
hwe: true

3 changes: 0 additions & 3 deletions .github/workflows/build-regular.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,6 @@ on:
branches:
- main
- lts
schedule:
- cron: '0 2 * * 0' # Weekly on Sunday at 2 AM UTC
merge_group:
workflow_dispatch:

Expand All @@ -29,5 +27,4 @@ jobs:
with:
image-name: bluefin
rechunk: ${{ github.event_name != 'pull_request' }}
sbom: ${{ (github.event_name == 'workflow_dispatch' && (github.ref == 'refs/heads/lts' || github.ref == 'refs/heads/main')) || (github.event_name == 'push' && github.ref == 'refs/heads/main') }}
publish: ${{ (github.event_name == 'workflow_dispatch' && (github.ref == 'refs/heads/lts' || github.ref == 'refs/heads/main')) || (github.event_name == 'push' && github.ref == 'refs/heads/main') }}
12 changes: 8 additions & 4 deletions .github/workflows/generate-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,11 +25,15 @@ on:
jobs:
generate-release:
runs-on: ubuntu-latest
# Only run if the workflow was successful and on lts branch
# Only run if the workflow was successful, on lts branch, and triggered by
# workflow_dispatch (meaning scheduled-lts-release.yml fired it — images were published).
# Push-to-lts validation builds complete successfully too but publish nothing,
# so we must not create a release for those.
if: |
github.event_name == 'workflow_dispatch' ||
(github.event.workflow_run.conclusion == 'success' &&
github.event.workflow_run.head_branch == 'lts')
(github.event.workflow_run.conclusion == 'success' &&
github.event.workflow_run.head_branch == 'lts' &&
github.event.workflow_run.event == 'workflow_dispatch')

steps:
- name: Checkout repository
Expand Down Expand Up @@ -63,7 +67,7 @@ jobs:
fi

- name: Generate changelog
uses: hanthor/changelog-action@master
uses: hanthor/changelog-action@2d212cd35f65cfe33954dd79013887e7bee76580 # master
with:
stream: ${{ steps.target.outputs.target }}
family: bluefin-lts
Expand Down
31 changes: 3 additions & 28 deletions .github/workflows/promote-to-lts.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,46 +17,21 @@ on:
**IMPORTANT**: This PR should ONLY contain commits from `main` → `lts`. Never merge in the opposite direction.

permissions:
contents: write
pull-requests: write
issues: write

jobs:
create-promotion-pr:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
ref: lts
fetch-depth: 0

- name: Configure Git
run: |
git config user.name "github-actions[bot]"
git config user.email "github-actions[bot]@users.noreply.github.com"

- name: Create promotion branch
id: create-branch
run: |
BRANCH_NAME="promote-main-to-lts-$(date +%Y%m%d-%H%M%S)"
echo "branch_name=$BRANCH_NAME" >> $GITHUB_OUTPUT
git checkout -b "$BRANCH_NAME"

- name: Merge main into promotion branch
run: |
git merge origin/main --no-edit -m "Merge main into lts"

- name: Push promotion branch
run: |
git push origin ${{ steps.create-branch.outputs.branch_name }}

- name: Create Pull Request
env:
GH_TOKEN: ${{ github.token }}
run: |
gh pr create \
--repo ${{ github.repository }} \
--base lts \
--head ${{ steps.create-branch.outputs.branch_name }} \
--head main \
--title "${{ inputs.pr_title }}" \
--body "${{ inputs.pr_body }}" \
--label "promotion"
25 changes: 12 additions & 13 deletions .github/workflows/reusable-build-image.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,11 +32,6 @@ on:
required: false
type: boolean
default: true
sbom:
description: "Generate/publish SBOMs for the artifacts"
required: false
type: boolean
default: true
cleanup_runner:
description: "Use the ublue cleanup action to clean up the runner before running the build"
required: false
Expand All @@ -52,7 +47,7 @@ on:
required: false
type: boolean
# default: ${{ github.event_name != 'pull_request' }}
default: true
default: false
tag-suffix:
description: "The suffix to append to the image tag"
required: false
Expand Down Expand Up @@ -176,12 +171,14 @@ jobs:

- name: Setup Syft
id: setup-syft
if: ${{ inputs.sbom && inputs.publish }}
if: ${{ github.ref == 'refs/heads/lts' && inputs.publish }}
continue-on-error: true
uses: anchore/sbom-action/download-syft@17ae1740179002c89186b61233e0f892c3118b11 # v0

- name: Generate SBOM
id: generate-sbom
if: ${{ inputs.sbom && inputs.publish }}
if: ${{ github.ref == 'refs/heads/lts' && inputs.publish }}
continue-on-error: true
env:
IMAGE: ${{ env.IMAGE_NAME }}
DEFAULT_TAG: ${{ env.DEFAULT_TAG }}
Expand Down Expand Up @@ -267,7 +264,8 @@ jobs:
COSIGN_PRIVATE_KEY: ${{ secrets.SIGNING_SECRET }}

- name: Add SBOM Attestation
if: ${{ inputs.sbom }}
if: ${{ github.ref == 'refs/heads/lts' && inputs.publish }}
continue-on-error: true
env:
IMAGE: ${{ env.IMAGE_REGISTRY }}/${{ env.IMAGE_NAME }}
DIGEST: ${{ steps.push.outputs.remote_image_digest }}
Expand Down Expand Up @@ -369,10 +367,10 @@ jobs:
export DEFAULT_TAG="${DEFAULT_TAG}-hwe"
export CENTOS_VERSION_SUFFIX="-hwe"
fi
if [ "${REF_NAME}" != "${PRODUCTION_BRANCH}" ] && [ "$EVENT_NAME" == "pull_request" ] || [ "${EVENT_NAME}" == "merge_group" ] ; then
if [ "${REF_NAME}" != "${PRODUCTION_BRANCH}" ]; then
export TAG_SUFFIX="testing"
export DEFAULT_TAG="${DEFAULT_TAG}-${TAG_SUFFIX}"
export CENTOS_VERSION_SUFFIX="-${TAG_SUFFIX}"
export CENTOS_VERSION_SUFFIX="${CENTOS_VERSION_SUFFIX}-${TAG_SUFFIX}"
fi
echo "DEFAULT_TAG=${DEFAULT_TAG}" >> "${GITHUB_ENV}"
echo "CENTOS_VERSION_SUFFIX=${CENTOS_VERSION_SUFFIX}" >> "${GITHUB_ENV}"
Expand Down Expand Up @@ -492,7 +490,7 @@ jobs:
echo "${{ secrets.GITHUB_TOKEN }}" | podman login -u "${{ github.actor }}" --password-stdin "${REGISTRY}"

- name: Push Manifest
if: github.event_name != 'pull_request'
if: ${{ inputs.publish }}
id: push_manifest
env:
MANIFEST: ${{ steps.create-manifest.outputs.MANIFEST }}
Expand All @@ -512,7 +510,7 @@ jobs:
# so we move this to another step in order to run on Ubuntu
sign:
needs: manifest
if: github.event_name != 'pull_request'
if: ${{ inputs.publish }}
runs-on: ubuntu-latest
permissions:
contents: read
Expand All @@ -531,6 +529,7 @@ jobs:
uses: sigstore/cosign-installer@7e8b541eb2e61bf99390e1afd4be13a184e9ebc5 # v3.10.1

- name: Sign Manifest
if: ${{ inputs.publish }}
env:
DIGEST: ${{ needs.manifest.outputs.digest }}
IMAGE: ${{ needs.manifest.outputs.image }}
Expand Down
Loading