Skip to content

Commit fdcecb7

Browse files
authored
ci: allow prerelease branch releases (#1647)
1 parent 560fbe4 commit fdcecb7

1 file changed

Lines changed: 30 additions & 4 deletions

File tree

.github/workflows/release.yml

Lines changed: 30 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -45,14 +45,40 @@ jobs:
4545
runs-on: ubuntu-latest
4646
environment: protected branches
4747
steps:
48-
- name: Verify branch
48+
- name: Verify release ref
4949
run: |
50-
if [ "${GITHUB_REF}" != "refs/heads/main" ]; then
51-
echo "❌ Error: Releases can only be triggered from main branch"
50+
if [ "${GITHUB_REF_TYPE}" != "branch" ]; then
51+
echo "❌ Error: Releases can only be triggered from branches"
5252
echo "Current ref: ${GITHUB_REF}"
5353
exit 1
5454
fi
5555
56+
if [ "${GITHUB_REF_NAME}" = "main" ]; then
57+
echo "✅ Official and pre-release releases are allowed from main"
58+
exit 0
59+
fi
60+
61+
case "${INPUTS_VERSION}" in
62+
prepatch|preminor|premajor)
63+
;;
64+
*)
65+
echo "❌ Error: Official releases can only be triggered from main branch"
66+
echo "Current branch: ${GITHUB_REF_NAME}"
67+
echo "Requested version bump: ${INPUTS_VERSION}"
68+
exit 1
69+
;;
70+
esac
71+
72+
if [ -z "${INPUTS_PRERELEASE_TYPE}" ]; then
73+
echo "❌ Error: Branch releases must specify prerelease_type as alpha, beta, or rc"
74+
exit 1
75+
fi
76+
77+
echo "✅ Pre-release branch release allowed from ${GITHUB_REF_NAME}"
78+
env:
79+
INPUTS_VERSION: ${{ inputs.version }}
80+
INPUTS_PRERELEASE_TYPE: ${{ inputs.prerelease_type }}
81+
5682
- name: Confirm major release
5783
if: ${{ inputs.version == 'major' || inputs.version == 'premajor' }}
5884
run: |
@@ -294,7 +320,7 @@ jobs:
294320
id: push-tag
295321
run: |
296322
git tag "v${STEPS_NEW_VERSION_OUTPUTS_VERSION}"
297-
git push origin main
323+
git push origin "HEAD:${GITHUB_REF_NAME}"
298324
git push origin "v${STEPS_NEW_VERSION_OUTPUTS_VERSION}"
299325
env:
300326
STEPS_NEW_VERSION_OUTPUTS_VERSION: ${{ steps.new-version.outputs.version }}

0 commit comments

Comments
 (0)