-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Automatically manage pre-release branches
A k8s-snap PR automatically creates and cleans up git branches for upstream k8s pre-releases: canonical/k8s-snap#916 Here we're adding an almost identical job that picks up these git branches and prepares launchpad recipes. TODOs: * clean up obsolete pre-releases that were superseeded by a new pre-release or stable release * promote beta and rc pre-releases to the corresponding snap risk level
- Loading branch information
1 parent
a83cf81
commit ea7af41
Showing
3 changed files
with
69 additions
and
0 deletions.
There are no files selected for viewing
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,66 @@ | ||
name: Auto-update pre-release branches | ||
|
||
on: | ||
pull_request: | ||
paths: | ||
- .github/workflows/update-pre-release-branches.yaml | ||
schedule: | ||
# Run 20 minutes after midnight, giving the k8s-snap nightly job | ||
# enough time to pick up new k8s releases and setup the git branches. | ||
- cron: "20 0 * * *" | ||
|
||
permissions: | ||
contents: read | ||
|
||
jobs: | ||
update-branches: | ||
permissions: | ||
contents: write # for Git to git push | ||
runs-on: ubuntu-latest | ||
outputs: | ||
preRelease: ${{ steps.determine.outputs.preRelease }} | ||
gitBranch: ${{ steps.determine.outputs.gitBranch }} | ||
steps: | ||
- name: Harden Runner | ||
uses: step-security/harden-runner@v2 | ||
with: | ||
egress-policy: audit | ||
- name: Checkout repository | ||
uses: actions/checkout@v4 | ||
with: | ||
ssh-key: ${{ secrets.BOT_SSH_KEY }} | ||
- name: Setup Python | ||
uses: actions/setup-python@v5 | ||
with: | ||
python-version: '3.12' | ||
cache: 'pip' | ||
- name: Install Python dependencies | ||
run: pip3 install -r ./scripts/requirements.txt | ||
- name: Determine outstanding pre-release | ||
id: determine | ||
run: | | ||
preRelease=`python3 ./scripts/k8s_releases.py get_outstanding_prerelease` | ||
echo "preRelease=$preRelease" >> "$GITHUB_OUTPUT" | ||
if [[ -n "$preRelease" ]]; then | ||
gitBranch="autoupdate/$preRelease" | ||
fi | ||
echo "gitBranch=$gitBranch" >> "$GITHUB_OUTPUT" | ||
- name: Create pre-release branch ${{ steps.determine.outputs.gitBranch }} | ||
if: ${{ steps.determine.outputs.preRelease }} != '' | ||
uses: ./.github/workflows/create-release-branch.yaml | ||
with: | ||
branches: ${{ steps.determine.outputs.gitBranch }} | ||
- name: Clean obsolete branches | ||
run: | | ||
git fetch origin | ||
# Log the latest release for reference. | ||
latestRelease=`python3 ./build-scripts/k8s_releases.py get_latest_release` | ||
echo "Latest k8s release: $latestRelease" | ||
for outstandingPreRelease in `python3 ./build-scripts/k8s_releases.py get_obsolete_prereleases`; do | ||
gitBranch="autoupdate/${outstandingPreRelease}" | ||
echo "Cleaning up obsolete pre-release branch: $gitBranch" | ||
# TODO | ||
done |
This file contains 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
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,2 +1,3 @@ | ||
freezegun | ||
pytest | ||
types-requests |