@@ -16,7 +16,7 @@ concurrency:
1616
1717jobs :
1818 prepare :
19- runs-on : ubuntu-latest
19+ runs-on : ubuntu-24.04
2020 timeout-minutes : 10
2121 permissions :
2222 contents : write
2727 tag : ${{ steps.target.outputs.tag }}
2828 version : ${{ steps.target.outputs.version }}
2929 steps :
30+ - name : Validate release automation configuration
31+ if : github.event_name == 'push'
32+ shell : bash
33+ env :
34+ RELEASE_APP_CLIENT_ID : ${{ vars.RELEASE_APP_CLIENT_ID }}
35+ RELEASE_APP_PRIVATE_KEY : ${{ secrets.RELEASE_APP_PRIVATE_KEY }}
36+ run : |
37+ set -euo pipefail
38+ missing=()
39+ [[ -n "$RELEASE_APP_CLIENT_ID" ]] || missing+=(RELEASE_APP_CLIENT_ID)
40+ [[ -n "$RELEASE_APP_PRIVATE_KEY" ]] || missing+=(RELEASE_APP_PRIVATE_KEY)
41+ if (( ${#missing[@]} > 0 )); then
42+ {
43+ echo "## Release automation is not configured"
44+ echo
45+ echo "Missing repository configuration: \`${missing[*]}\`."
46+ echo "Follow \`docs/RELEASING.md\` to install the least-privilege GitHub App, then rerun this workflow."
47+ } >> "$GITHUB_STEP_SUMMARY"
48+ printf 'Missing release automation configuration: %s\n' "${missing[*]}" >&2
49+ echo "See docs/RELEASING.md for the required GitHub App setup." >&2
50+ exit 1
51+ fi
52+
3053 - name : Create short-lived release automation token
3154 if : github.event_name == 'push'
3255 id : app-token
98121 python-artifacts :
99122 needs : prepare
100123 if : needs.prepare.outputs.publish == 'true'
101- runs-on : ubuntu-latest
124+ runs-on : ubuntu-24.04
102125 timeout-minutes : 20
103126 permissions :
104127 contents : read
@@ -176,7 +199,7 @@ jobs:
176199 container :
177200 needs : prepare
178201 if : needs.prepare.outputs.publish == 'true'
179- runs-on : ubuntu-latest
202+ runs-on : ubuntu-24.04
180203 timeout-minutes : 60
181204 permissions :
182205 contents : read
@@ -250,7 +273,7 @@ jobs:
250273 needs.prepare.outputs.publish == 'true' &&
251274 needs.python-artifacts.result == 'success' &&
252275 needs.container.result == 'success'
253- runs-on : ubuntu-latest
276+ runs-on : ubuntu-24.04
254277 timeout-minutes : 10
255278 permissions :
256279 contents : write
0 commit comments