diff --git a/.github/scripts/bump-version.sh b/.github/scripts/bump-version.sh new file mode 100644 index 0000000..162c0e0 --- /dev/null +++ b/.github/scripts/bump-version.sh @@ -0,0 +1,9 @@ +#!/bin/bash + +if [[ -z "${RELEASE_VERSION}" ]]; then + echo 'Environment Var RELEASE_VERSION is not defined, aborting...' + exit 1 +fi + +sed -E -i "s/[[:digit:]]+.[[:digit:]]+.[[:digit:]]+/${RELEASE_VERSION}/" \ + $(pwd)/Sources/AWSAppSyncApolloExtensions/Utilities/PackageInfo.swift diff --git a/.github/workflows/kick-off-release.yaml b/.github/workflows/kick-off-release.yaml new file mode 100644 index 0000000..9634ac6 --- /dev/null +++ b/.github/workflows/kick-off-release.yaml @@ -0,0 +1,67 @@ +name: Kick off release + +run-name: Kick off release ${{ github.event.inputs.release-version }} + +on: + workflow_dispatch: + inputs: + release-version: + description: Release version + required: true + +permissions: + pull-requests: write + contents: write + +jobs: + validate-version-format: + name: Validate Release Version Format + if: ${{ github.ref_name == 'main' }} + runs-on: ubuntu-latest + env: + RELEASE_VERSION: ${{ github.event.inputs.release-version }} + steps: + - name: Validate release version input + run: | + if [[ "$RELEASE_VERSION" =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]] + then + echo "Valid version - $RELEASE_VERSION" + else + echo "Invalid version - $RELEASE_VERSION" + exit 1 + fi + shell: bash + + create-release-pr: + name: Create release PR for ${{ github.event.inputs.release-version }} + runs-on: ubuntu-latest + needs: + - validate-version-format + env: + RELEASE_VERSION: ${{ github.event.inputs.release-version }} + steps: + - name: Checkout Code + uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 + with: + ref: main + + - name: Bump versions to ${{ env.RELEASE_VERSION }} + run: | + git checkout -b bump-version/$RELEASE_VERSION main + /bin/bash ./.github/scripts/bump-version.sh + git config user.name aws-amplify-ops + git config user.email aws-amplify-ops@amazon.com + git add -A + git commit -am "[bump version $RELEASE_VERSION]" + git push origin HEAD + shell: bash + + - name: Create Pull Request + env: + GH_TOKEN: ${{ github.token }} + run: | + gh pr create \ + --title "bump version to $RELEASE_VERSION" \ + --body "bump version to $RELEASE_VERSION" \ + --head bump-version/$RELEASE_VERSION \ + --base release