1818 - release
1919 - beta
2020 - alpha
21+ confirm_live_publication :
22+ description : Confirm publication to Maven, CurseForge, and GitHub after the build passes.
23+ required : true
24+ default : false
25+ type : boolean
2126
2227permissions :
2328 actions : read
@@ -111,32 +116,6 @@ jobs:
111116 echo "target_branch=$target_branch" >> "$GITHUB_OUTPUT"
112117 echo "Resolved $RELEASE_VERSION to $target_branch"
113118
114- - name : Require the protected release approval gate
115- env :
116- GH_TOKEN : ${{ github.token }}
117- run : |
118- set -euo pipefail
119-
120- if ! environment_json="$(gh api "repos/$GITHUB_REPOSITORY/environments/release")"; then
121- echo "The MMD release environment has not been configured by a repository administrator" >&2
122- exit 1
123- fi
124- reviewer_rules="$(jq '[.protection_rules[] | select(.type == "required_reviewers")] | length' <<<"$environment_json")"
125- prevent_self_review="$(jq -r '[.protection_rules[] | select(.type == "required_reviewers")][0] | if has("prevent_self_review") then .prevent_self_review else true end' <<<"$environment_json")"
126- skyblade_reviewer="$(jq '[.protection_rules[] | select(.type == "required_reviewers") | .reviewers[]? | select(.reviewer.login == "SkyBlade1978")] | length' <<<"$environment_json")"
127- if [[ "$reviewer_rules" -lt 1 ]]; then
128- echo "The release environment must require a reviewer before publication" >&2
129- exit 1
130- fi
131- if [[ "$prevent_self_review" != "false" ]]; then
132- echo "The release environment must allow self-review for the small MMD release team" >&2
133- exit 1
134- fi
135- if [[ "$skyblade_reviewer" -lt 1 ]]; then
136- echo "SkyBlade1978 must be a required release reviewer" >&2
137- exit 1
138- fi
139-
140119 - name : Check out derived release branch
141120 uses : actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
142121 with :
@@ -298,15 +277,15 @@ jobs:
298277 retention-days : 90
299278 path : ${{ runner.temp }}/release-bundle/*
300279
301- - name : Summarize the candidate awaiting approval
280+ - name : Summarize the prepared release candidate
302281 env :
303282 RELEASE_BRANCH : ${{ needs.preflight.outputs.target_branch }}
304283 RELEASE_LEVEL : ${{ inputs.curseforge_release_level }}
305284 RELEASE_SHA : ${{ needs.preflight.outputs.release_sha }}
306285 RELEASE_VERSION : ${{ needs.preflight.outputs.release_version }}
307286 run : |
308287 {
309- echo "## Awaiting release approval "
288+ echo "## Prepared release candidate "
310289 echo
311290 echo "- Version: \`$RELEASE_VERSION\`"
312291 echo "- Target branch: \`$RELEASE_BRANCH\`"
@@ -320,25 +299,28 @@ jobs:
320299 echo '```'
321300 } >> "$GITHUB_STEP_SUMMARY"
322301
323- release_approval :
324- name : Approve ${{ inputs.release_version }} (CurseForge ${{ inputs.curseforge_release_level }})
302+ release_confirmation :
303+ name : Confirm ${{ inputs.release_version }} live publication
325304 needs :
326305 - preflight
327306 - build
328307 runs-on : ubuntu-latest
329308 timeout-minutes : 10
330- environment :
331- name : release
332309 steps :
333- - name : Confirm approval and release-secret access
310+ - name : Confirm publication and release-secret access
334311 env :
312+ CONFIRM_LIVE_PUBLICATION : ${{ inputs.confirm_live_publication }}
335313 CURSEFORGE_TOKEN : ${{ secrets.CURSEFORGE_TOKEN }}
336314 MAVEN_UPLOAD_URL : ${{ secrets.MAVEN_UPLOAD_URL }}
337315 MAVEN_UPLOAD_USERNAME : ${{ secrets.MAVEN_UPLOAD_USERNAME }}
338316 MAVEN_UPLOAD_PASSWORD : ${{ secrets.MAVEN_UPLOAD_PASSWORD }}
339317 run : |
340318 set -euo pipefail
341- echo "Release environment approval granted for ${{ needs.preflight.outputs.release_tag }}"
319+ if [[ "$CONFIRM_LIVE_PUBLICATION" != "true" ]]; then
320+ echo "Confirm live publication in the workflow form before releasing ${{ needs.preflight.outputs.release_tag }}" >&2
321+ exit 1
322+ fi
323+ echo "Live publication confirmed for ${{ needs.preflight.outputs.release_tag }}"
342324 missing=()
343325 for name in CURSEFORGE_TOKEN MAVEN_UPLOAD_URL MAVEN_UPLOAD_USERNAME MAVEN_UPLOAD_PASSWORD; do
344326 if [[ -z "${!name:-}" ]]; then
@@ -356,7 +338,7 @@ jobs:
356338 needs :
357339 - preflight
358340 - build
359- - release_approval
341+ - release_confirmation
360342 runs-on : ubuntu-latest
361343 timeout-minutes : 10
362344 permissions :
0 commit comments