Skip to content

Commit cbc3db1

Browse files
committed
docs: make release on rc/** branches possible (#50)
Signed-off-by: Mariusz Jasuwienas <jasuwienas@gmail.com>
1 parent c77e45c commit cbc3db1

1 file changed

Lines changed: 76 additions & 0 deletions

File tree

.github/workflows/release.yml

Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -156,6 +156,82 @@ jobs:
156156
echo "version=${OUTVER}" >> "${GITHUB_OUTPUT}"
157157
echo "need-release=${PROCEED}" >> "${GITHUB_OUTPUT}"
158158
159+
- name: Parse Version
160+
id: version_parser
161+
uses: step-security/semver-utils@4ae9c1fd6d1c5f8f152fe7e2efe8069a952c2ace # v4.3.2
162+
with:
163+
lenient: false
164+
version: ${{ steps.set-outputs.outputs.version }}
165+
166+
- name: Set Release Environment Variables
167+
run: |
168+
PREMINOR_VERSION=${{ steps.version_parser.outputs.inc-preminor }}
169+
NEXT_VERSION_SNAPSHOT=${PREMINOR_VERSION//-0/-SNAPSHOT}
170+
RELEASE_BRANCH="release/${{ steps.version_parser.outputs.major }}.${{ steps.version_parser.outputs.minor }}"
171+
[[ -z "${{ steps.version_parser.outputs.prerelease }}" ]] && \
172+
VERSION=${{ steps.version_parser.outputs.release }} || \
173+
VERSION="${{ steps.version_parser.outputs.release }}-${{ steps.version_parser.outputs.prerelease }}"
174+
RELEASE_TAG="v${{ steps.set-outputs.outputs.version }}"
175+
cat >> $GITHUB_ENV <<EOF
176+
NEXT_VERSION_SNAPSHOT=$NEXT_VERSION_SNAPSHOT
177+
RELEASE_BRANCH=$RELEASE_BRANCH
178+
RELEASE_TAG=$RELEASE_TAG
179+
VERSION=${{ steps.set-outputs.outputs.version }}
180+
MILESTONE=${{ steps.version_parser.outputs.release}}
181+
EOF
182+
183+
- name: Create and Switch to Release Branch
184+
run: |
185+
if ! git ls-remote --exit-code --heads --quiet origin refs/heads/${RELEASE_BRANCH}; then
186+
git checkout -b ${RELEASE_BRANCH}
187+
git push -u origin ${RELEASE_BRANCH}
188+
189+
# create a PR to bump main branch to the next snapshot version
190+
echo "CREATE_PR=true" >> $GITHUB_ENV
191+
echo "PR_TITLE=chore(release): Bump versions for v$NEXT_VERSION_SNAPSHOT" >> $GITHUB_ENV
192+
else
193+
git checkout ${RELEASE_BRANCH}
194+
fi
195+
196+
- name: Close the Milestone
197+
if: ${{ steps.version_parser.outputs.prerelease == '' }}
198+
id: milestone
199+
uses: step-security/close-milestone@b097272a7aaa0f5c40dc6bc671d45d35c5e85b51 # v2.2.1
200+
with:
201+
milestone_name: ${{ steps.version_parser.outputs.release }}
202+
env:
203+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
204+
205+
- name: Create Release Notes
206+
if: ${{ steps.milestone.outputs.milestone_id != '' }}
207+
uses: step-security/release-notes-generator-action@796ee9c88dd2346ea1a5e9e85ca6cbd1e24e2e6a # v3.2.2
208+
env:
209+
FILENAME: ${{ env.RELEASE_NOTES_FILENAME }}
210+
GITHUB_TOKEN: ${{ secrets.GH_ACCESS_TOKEN || secrets.GITHUB_TOKEN }}
211+
MILESTONE_NUMBER: ${{ steps.milestone.outputs.milestone_id }}
212+
213+
- name: Commit and Tag
214+
uses: step-security/git-auto-commit-action@e2d505468267a3cb406af729d48d664de1f16393 # v6.0.2
215+
with:
216+
commit_author: ${{ steps.gpg_importer.outputs.name || vars.GIT_USER_NAME || 'release-automation' }} <${{ steps.gpg_importer.outputs.email || vars.GIT_USER_EMAIL || 'automation@users.noreply.github.com' }}>
217+
commit_message: 'chore(release): Bump versions for ${{ env.RELEASE_TAG }}'
218+
commit_options: '--no-verify --signoff'
219+
commit_user_name: ${{ steps.gpg_importer.outputs.name || vars.GIT_USER_NAME || 'release-automation' }}
220+
commit_user_email: ${{ steps.gpg_importer.outputs.email || vars.GIT_USER_EMAIL || 'automation@users.noreply.github.com' }}
221+
tagging_message: ${{ env.RELEASE_TAG }}
222+
223+
- name: Create Github Release (draft)
224+
uses: step-security/release-action@03a57407052f15d1537fd5469a6fbbc536aba326 # v1.20.0
225+
with:
226+
bodyFile: ${{ env.RELEASE_NOTES_FILENAME }}.md
227+
commit: ${{ env.RELEASE_BRANCH }}
228+
draft: true
229+
name: ${{ env.RELEASE_TAG }}
230+
omitBody: ${{ steps.milestone.outputs.milestone_id == '' }}
231+
prerelease: ${{ steps.version_parser.outputs.prerelease != '' }}
232+
tag: ${{ env.RELEASE_TAG }}
233+
token: ${{ secrets.GH_ACCESS_TOKEN || secrets.GITHUB_TOKEN }}
234+
159235
create-github-release:
160236
name: Github / Release
161237
if: ${{ needs.prepare-release.outputs.need-release == 'true' }}

0 commit comments

Comments
 (0)