feat(ci): implement testing stream workflows (#2250)

* feat(ci): testing stream

* feat(ci): workaround for scheduled stable build on non-default branch

* feat(renovate): initial config for testing stream

We want to get builds that are triggered by kinoite updates from
renovate but promote changes like get-aurora-dev/common and
ublue-os/brew from main to the stable branch, while still receiving
updates for things like github actions.
This commit is contained in:
renner 2026-06-06 14:31:30 +02:00 committed by GitHub
parent 261ebbfe5a
commit 42868580f1
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
6 changed files with 64 additions and 23 deletions

View file

@ -4,7 +4,7 @@
"config:best-practices" "config:best-practices"
], ],
"baseBranchPatterns": ["main"], "baseBranchPatterns": ["main", "stable-f44"],
// Do not rebase when the default branch is updated // Do not rebase when the default branch is updated
"rebaseWhen": "never", "rebaseWhen": "never",
@ -32,23 +32,35 @@
"matchUpdateTypes": ["digest"] "matchUpdateTypes": ["digest"]
}, },
{ {
"matchUpdateTypes": ["pin", "digest", "pinDigest"], // We always want to trigger a fresh build when we have a new base image on every branch
"matchPackageNames": ["ghcr.io/jasonn3/build-container-installer"], // so we get package and security updates
"automerge": false "matchDepNames": ["quay.io/fedora-ostree-desktops/kinoite"],
},
{
"automerge": true, "automerge": true,
"matchUpdateTypes": ["digest"], "matchUpdateTypes": ["digest"]
"matchDepNames": [
"quay.io/fedora-ostree-desktops/kinoite",
"ghcr.io/ublue-os/brew",
"ghcr.io/get-aurora-dev/common"
]
}, },
{ {
"matchDepNames": ["quay.io/fedora-ostree-desktops/kinoite"], "matchDepNames": ["quay.io/fedora-ostree-desktops/kinoite"],
"matchUpdateTypes": ["major"], "matchUpdateTypes": ["major"],
"enabled": false "enabled": false
},
{
"matchDepNames": [
"ghcr.io/ublue-os/brew",
"ghcr.io/get-aurora-dev/common"
],
"matchBaseBranches": ["main"],
"automerge": true,
"matchUpdateTypes": ["digest"]
},
{
"matchDepNames": [
"ghcr.io/ublue-os/brew",
"ghcr.io/get-aurora-dev/common"
],
// Brew and common are not "security updates", they have to go through :testing/main first
// to reach a stable release
"matchBaseBranches": ["stable-f44"],
"enabled": false
} }
] ]
} }

View file

@ -3,7 +3,7 @@ on:
merge_group: merge_group:
pull_request: pull_request:
branches: branches:
- main - stable-f44
paths-ignore: paths-ignore:
- "**.md" - "**.md"
- ".github/workflows/moderator.yml" - ".github/workflows/moderator.yml"

View file

@ -1,15 +1,16 @@
name: Stable Images name: Stable Images
on: on:
# We do not want this to run after PR merges
# we are only publishing weekly :stable images
# We still want to know if things are broken
pull_request: pull_request:
branches: branches:
- main - stable-f44
- testing
paths-ignore: paths-ignore:
- "**.md" - "**.md"
- ".github/workflows/moderator.yml" - ".github/workflows/moderator.yml"
- ".github/workflows/scorecard.yml" - ".github/workflows/scorecard.yml"
schedule:
- cron: "0 1 * * TUE" # Every Tuesday at 1:15 AM
workflow_call: workflow_call:
workflow_dispatch: workflow_dispatch:
inputs: inputs:

View file

@ -1,9 +1,9 @@
name: Beta Images name: Testing Images
on: on:
#merge_group: merge_group:
pull_request: pull_request:
branches: branches:
- beta - main
paths-ignore: paths-ignore:
- "**.md" - "**.md"
- ".github/workflows/moderator.yml" - ".github/workflows/moderator.yml"
@ -27,8 +27,8 @@ permissions:
artifact-metadata: write artifact-metadata: write
jobs: jobs:
build-image-beta: build-image-testing:
name: Build Beta Images name: Build Testing Images
uses: ./.github/workflows/reusable-build.yml uses: ./.github/workflows/reusable-build.yml
secrets: inherit secrets: inherit
strategy: strategy:
@ -38,7 +38,7 @@ jobs:
with: with:
image_flavors: '["main", "nvidia-open"]' image_flavors: '["main", "nvidia-open"]'
brand_name: ${{ matrix.brand_name }} brand_name: ${{ matrix.brand_name }}
stream_name: beta stream_name: testing
previous_build: ${{ inputs.previous_build }} previous_build: ${{ inputs.previous_build }}
# FIXME: MAIN has no arm builds in ublue-os/akmods yet # FIXME: MAIN has no arm builds in ublue-os/akmods yet
# https://github.com/ublue-os/akmods/pull/440 # https://github.com/ublue-os/akmods/pull/440

View file

@ -34,6 +34,7 @@ jobs:
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6 uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
with: with:
fetch-depth: 500 fetch-depth: 500
ref: stable-f44
- name: Install Just - name: Install Just
run: | run: |

View file

@ -0,0 +1,27 @@
# We have this because we can't schedule builds on non-default branches
name: Trigger Stable Image Build
on:
schedule:
- cron: "0 1 * * TUE" # Every Tuesday at 1:15 AM
workflow_dispatch:
permissions: {}
jobs:
trigger-stable-build:
runs-on: ubuntu-slim
permissions:
contents: read
actions: write
steps:
- name: Checkout repository
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
- name: Trigger Stable Image Build
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
BRANCH: stable-f44
run: |
gh workflow run \
build-image-stable.yml \
--ref "${BRANCH}"