Skip to content

Commit 0f438ba

Browse files
committed
feat: release workflow
1 parent 21e3c54 commit 0f438ba

File tree

1 file changed

+57
-0
lines changed

1 file changed

+57
-0
lines changed

.github/workflows/run-release.yml

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
name: Release
2+
3+
on:
4+
pull_request:
5+
workflow_dispatch:
6+
inputs:
7+
version-override:
8+
type: string
9+
required: false
10+
description: 'Optionally specify a custom release version (minor version bump e.g.)'
11+
12+
jobs:
13+
release-readiness:
14+
runs-on: ubuntu-latest
15+
steps:
16+
- name: Checkout source
17+
uses: actions/checkout@v4
18+
19+
- name: Resolve version
20+
id: resolve-version
21+
run: |
22+
if [ -n "${{ inputs.version-override }}" ]
23+
echo "NEW_VERSION=${{ inputs.version-override }}" >> "$GITHUB_OUTPUT"
24+
exit 0
25+
fi
26+
27+
CURRENT_VERSION=$(git describe --tags --abbrev=0)
28+
29+
IFS='.' read -r MAJOR MINOR PATCH <<< "$CURRENT_VERSION"
30+
PATCH=$((PATCH + 1))
31+
RESOLVED_VERSION="$MAJOR.$MINOR.$PATCH"
32+
33+
echo "NEW_VERSION=$RESOLVED_VERSION" >> "$GITHUB_OUTPUT"
34+
35+
- name: Configure git
36+
run: |
37+
git config user.name aws-sdk-kotlin-ci
38+
git config user.email "[email protected]"
39+
40+
- name: Create tag
41+
env:
42+
NEW_VERSION: ${{ steps.resolve-version.outputs.NEW_VERSION }}
43+
run: |
44+
git tag "$NEW_VERSION"
45+
git push origin "$NEW_VERSION"
46+
47+
- name: Run release
48+
env:
49+
RELEASE_BUCKET: ${{ secrets.RELEASE_BUCKET }}
50+
PUBLISHING_ROLE_ARN: ${{ secrets.PUBLISHING_ROLE_ARN }}
51+
run: |
52+
exit 1
53+
./scripts/release.sh
54+
55+
- name: Delete failed release tag
56+
if: ${{ failure() }}
57+
run: git push --delete origin ${{ steps.resolve-version.outputs.NEW_VERSION }}

0 commit comments

Comments
 (0)