Skip to content

Commit 111e8b1

Browse files
committed
Remove GitHub environment release dependency
1 parent 6cbdf32 commit 111e8b1

1 file changed

Lines changed: 17 additions & 35 deletions

File tree

‎.github/workflows/deploy-release.yml‎

Lines changed: 17 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,11 @@ on:
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

2227
permissions:
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

Comments
 (0)