Skip to content

Release

Release #53

Workflow file for this run

name: Release
on:
workflow_dispatch:
inputs:
version-override:
type: string
required: false
description: 'Optionally specify a custom release version (minor version bump e.g.)'
kn-release:
type: boolean
required: false
default: false
description: 'Whether the release is a KN variant of repo tools or not'
permissions:
id-token: write
contents: write
jobs:
release:
runs-on: ubuntu-latest
steps:
- name: Checkout source
uses: actions/checkout@v4
with:
fetch-depth: 0
fetch-tags: true
- name: Resolve new version
id: resolve-new-version
run: |
if [ -n "${{ inputs.version-override }}" ]; then
echo "NEW_VERSION=${{ inputs.version-override }}" >> "$GITHUB_OUTPUT"
exit 0
fi
if [ "${{ inputs.kn-release }}" == "true" ]; then
CURRENT_VERSION=$(git tag --sort=-creatordate | grep -- '-kn$' | head -n 1)
else
CURRENT_VERSION=$(git tag --sort=-creatordate | grep -v -- '-kn$' | head -n 1)
fi
IFS='.' read -r MAJOR MINOR PATCH <<< "$CURRENT_VERSION"
PATCH_NUMBER=${PATCH%%[^0-9]*}
PATCH_SUFFIX=${PATCH#$PATCH_NUMBER}
((PATCH_NUMBER++))
echo "NEW_VERSION=$MAJOR.$MINOR.$PATCH_NUMBER$PATCH_SUFFIX" >> "$GITHUB_OUTPUT"
- name: Create new version tag
env:
NEW_VERSION: ${{ steps.resolve-new-version.outputs.NEW_VERSION }}
run: |
git config user.name aws-sdk-kotlin-ci
git config user.email "[email protected]"
git tag "$NEW_VERSION"
git push origin "$NEW_VERSION"
- name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@v4
with:
role-to-assume: ${{ secrets.PUBLISHING_ROLE_ARN }}
aws-region: us-west-2
- name: Run codebuild release job
uses: aws-actions/aws-codebuild-run-build@v1
with:
project-name: publish-aws-kotlin-repo-tools
source-version-override: ${{ steps.resolve-new-version.outputs.NEW_VERSION }}
- name: Delete failed release tag
if: ${{ failure() }}
run: |
git push --delete origin ${{ steps.resolve-new-version.outputs.NEW_VERSION }}