Fix scheduled CI upgrade job: extract versions from uv.lock + Slack alerts#65211
Merged
potiuk merged 1 commit intoapache:mainfrom Apr 14, 2026
Merged
Conversation
…lerts Removes all hard-coded uv/prek version strings from GitHub Actions workflows and composite actions and derives them at runtime from 'uv.lock' via a small sed snippet. Also adds Slack success and failure notifications to the scheduled CI upgrade workflow. Why: the scheduled '[v3-2-test] Scheduled CI upgrade check' job was failing because 'breeze ci upgrade' kept rewriting version strings in '.github/workflows/*.yml' files, which the default GITHUB_TOKEN (a GitHub App token) is not permitted to push. Reading versions from 'uv.lock' (which gets refreshed by 'uv lock --upgrade' as part of the upgrade run anyway) means the job no longer needs to touch any file under '.github/workflows/' and its PR can be created using only the standard GITHUB_TOKEN — no PAT or GitHub App required. Notifications to '#internal-airflow-ci-cd' now fire on both success (with PR link and Undraft -> Review -> Merge-once-CI-passes steps) and failure (with a link to the failed run). The branch prefix (e.g. '[main]' vs '[v3-2-test]') distinguishes notifications between the schedules.
215b234 to
696ef23
Compare
eladkal
approved these changes
Apr 14, 2026
Backport failed to create: v3-2-test. View the failure log Run detailsNote: As of Merging PRs targeted for Airflow 3.X In matter of doubt please ask in #release-management Slack channel.
You can attempt to backport this manually by running: cherry_picker c66d540 v3-2-testThis should apply the commit to the v3-2-test branch and leave the commit in conflict state marking After you have resolved the conflicts, you can continue the backport process by running: cherry_picker --continueIf you don't have cherry-picker installed, see the installation guide. |
potiuk
added a commit
to potiuk/airflow
that referenced
this pull request
Apr 14, 2026
…ck + Slack alerts (apache#65211) Removes all hard-coded uv/prek version strings from GitHub Actions workflows and composite actions and derives them at runtime from 'uv.lock' via a small sed snippet. Also adds Slack success and failure notifications to the scheduled CI upgrade workflow. Why: the scheduled '[v3-2-test] Scheduled CI upgrade check' job was failing because 'breeze ci upgrade' kept rewriting version strings in '.github/workflows/*.yml' files, which the default GITHUB_TOKEN (a GitHub App token) is not permitted to push. Reading versions from 'uv.lock' (which gets refreshed by 'uv lock --upgrade' as part of the upgrade run anyway) means the job no longer needs to touch any file under '.github/workflows/' and its PR can be created using only the standard GITHUB_TOKEN — no PAT or GitHub App required. Notifications to '#internal-airflow-ci-cd' now fire on both success (with PR link and Undraft -> Review -> Merge-once-CI-passes steps) and failure (with a link to the failed run). The branch prefix (e.g. '[main]' vs '[v3-2-test]') distinguishes notifications between the schedules. (cherry picked from commit c66d540) Co-authored-by: Jarek Potiuk <jarek@potiuk.com>
1 task
potiuk
added a commit
that referenced
this pull request
Apr 14, 2026
…ck + Slack alerts (#65211) (#65243) Removes all hard-coded uv/prek version strings from GitHub Actions workflows and composite actions and derives them at runtime from 'uv.lock' via a small sed snippet. Also adds Slack success and failure notifications to the scheduled CI upgrade workflow. Why: the scheduled '[v3-2-test] Scheduled CI upgrade check' job was failing because 'breeze ci upgrade' kept rewriting version strings in '.github/workflows/*.yml' files, which the default GITHUB_TOKEN (a GitHub App token) is not permitted to push. Reading versions from 'uv.lock' (which gets refreshed by 'uv lock --upgrade' as part of the upgrade run anyway) means the job no longer needs to touch any file under '.github/workflows/' and its PR can be created using only the standard GITHUB_TOKEN — no PAT or GitHub App required. Notifications to '#internal-airflow-ci-cd' now fire on both success (with PR link and Undraft -> Review -> Merge-once-CI-passes steps) and failure (with a link to the failed run). The branch prefix (e.g. '[main]' vs '[v3-2-test]') distinguishes notifications between the schedules. (cherry picked from commit c66d540)
vatsrahul1001
pushed a commit
that referenced
this pull request
Apr 15, 2026
…ck + Slack alerts (#65211) (#65243) Removes all hard-coded uv/prek version strings from GitHub Actions workflows and composite actions and derives them at runtime from 'uv.lock' via a small sed snippet. Also adds Slack success and failure notifications to the scheduled CI upgrade workflow. Why: the scheduled '[v3-2-test] Scheduled CI upgrade check' job was failing because 'breeze ci upgrade' kept rewriting version strings in '.github/workflows/*.yml' files, which the default GITHUB_TOKEN (a GitHub App token) is not permitted to push. Reading versions from 'uv.lock' (which gets refreshed by 'uv lock --upgrade' as part of the upgrade run anyway) means the job no longer needs to touch any file under '.github/workflows/' and its PR can be created using only the standard GITHUB_TOKEN — no PAT or GitHub App required. Notifications to '#internal-airflow-ci-cd' now fire on both success (with PR link and Undraft -> Review -> Merge-once-CI-passes steps) and failure (with a link to the failed run). The branch prefix (e.g. '[main]' vs '[v3-2-test]') distinguishes notifications between the schedules. (cherry picked from commit c66d540)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes the scheduled
[v3-2-test] Scheduled CI upgrade checkjob (and the equivalentmainschedule) and makes both runs observable via Slack.Why it was failing
breeze ci upgradewas rewriting hard-codeduv/prekversion strings inside.github/workflows/*.ymlfiles. The defaultGITHUB_TOKENused by the scheduled job is a GitHub App token and is not permitted to push changes to workflow files, so the push was rejected with:Rather than add a PAT or a dedicated GitHub App just to patch a version string, this PR removes the reason those files need patching at all.
Extract versions from
uv.lockAll CI workflows and composite actions now read
uv(andprekwhere needed) at runtime fromuv.lockusing a tinysedsnippet:sed -n '/^name = "uv"$/{n;s/^version = "\(.*\)"$/\1/p;}' uv.lockThe
uv.lockformat is stable — the line immediately aftername = "<pkg>"isversion = "<X.Y.Z>"for that package — so this is a safe, dependency-free extraction with a loud failure if it ever returns empty.uv lock --upgradealready runs as part of the same scheduled upgrade, so lockfile bumps keep flowing through automatically.Files touched:
.github/actions/breeze/action.yml,.github/actions/install-prek/action.yml— extractUV_VERSION(andPREK_VERSIONfor install-prek) in an early step, expose them as step outputs, and wire them into the install steps'env:blocks and both cache-key expressions. Removed the now-unuseduv-version/prek-versioninputs..github/workflows/basic-tests.yml— dropped theuv-versionworkflow input; eachInstall uvstep extracts inline fromuv.lock..github/workflows/scheduled-verify-release-calendar.yml,.github/workflows/ci-amd-arm.yml,.github/workflows/update-constraints-on-push.yml— removed top-levelUV_VERSIONenv vars; inline extraction in the install step where one was used..github/workflows/release_dockerhub_image.yml— removedwith: uv-version: ${{ env.UV_VERSION }}(the env var was dangling anyway).scripts/ci/prek/upgrade_important_versions.py— removed the workflow / action YAML paths fromFILES_TO_UPDATE; they no longer carry hard-coded versions to patch.Net effect:
breeze ci upgradeno longer touches any file under.github/workflows/*, so the scheduled upgrade job can push its PR using only the defaultGITHUB_TOKEN.Slack notifications (
#internal-airflow-ci-cd).github/workflows/upgrade-check.ymlnow posts on both success and failure:if: failure()) — fires ifbreeze ci upgradeor any earlier step in the job fails. Links directly to the failed run so on-call can investigate and re-run.The branch prefix (
[main]vs[v3-2-test]) distinguishes notifications between the two schedules.Was generative AI tooling used to co-author this PR?
Generated-by: Claude Code (Opus 4.6) following the guidelines