Skip to content

feat: release readiness - smithy-kotlin branch check #52

feat: release readiness - smithy-kotlin branch check

feat: release readiness - smithy-kotlin branch check #52

name: Release readiness (snapshot dependency)
description: >
Makes sure that we aren't relying on SNAPSHOT/dev versions of smithy-kotlin before merging
otherwise we could forget because the rest of CI is masking it.
on:
pull_request:
branches: [ main ]
jobs:
release-readiness:
runs-on: ubuntu-latest
steps:
- name: Checkout source
uses: actions/checkout@v4
with:
path: 'aws-sdk-kotlin'
ref: '${{ github.head_ref }}'
fetch-depth: 0
# - name: Configure Gradle
# uses: awslabs/aws-kotlin-repo-tools/.github/actions/configure-gradle@main
# with:
# working-directory: ./aws-sdk-kotlin
#
# - name: Build SDK
# working-directory: ./aws-sdk-kotlin
# run: ./gradlew test jvmTest
#
# - name: Build SDK client
# working-directory: ./aws-sdk-kotlin
# run: |
# ./gradlew -Paws.kotlin.native=false -Paws.services=s3 bootstrap
# ./gradlew -Paws.kotlin.native=false build
- name: Checkout smithy-kotlin
uses: awslabs/aws-kotlin-repo-tools/.github/actions/checkout-head@main
with:
path: 'smithy-kotlin'
repository: 'smithy-lang/smithy-kotlin'
# TODO: Change grep pattern when we decouple runtime and codegen releases
- name: Check for smithy-kotlin unreleased changes
run: |
cd aws-sdk-kotlin
SDK_BRANCH=$(git branch --show-current)
echo "aws-sdk-kotlin branch: $SDK_BRANCH"
cd ../smithy-kotlin
SMITHY_KOTLIN_BRANCH=$(git branch --show-current)
echo "smithy-kotlin branch: $SMITHY_KOTLIN_BRANCH"
if [ "$SDK_BRANCH" == "$SMITHY_KOTLIN_BRANCH" ]; then
cd ../aws-sdk-kotlin
git fetch origin
DIFF=$(git diff origin/main --unified=0 -- gradle/libs.versions.toml | grep '^[-+][^-+]')
if [ -z "$DIFF" ]; then
echo "::error::Matching smithy-kotlin and aws-sdk-kotlin branches but no smithy-kotlin version bump"
exit 1
fi
echo "getting version bump"
SMITHY_KOTLIN_VERSION_BUMP=$(echo "$DIFF" | grep "smithy-kotlin-runtime-version =\|smithy-kotlin-codegen-version =")
echo "$SMITHY_KOTLIN_VERSION_BUMP"
if [ -z "$SMITHY_KOTLIN_VERSION_BUMP" ]; then
echo "::error::Matching smithy-kotlin and aws-sdk-kotlin branches but no smithy-kotlin version bump"
exit 1
else
echo "::warning::Matching smithy-kotlin and aws-sdk-kotlin branches with smithy-kotlin version bump detected"
fi
fi
- name: Emit error message
if: ${{ failure() }}
run: |
echo "::error::Did you forget to release smithy-kotlin and bump the dependency version?"
exit 1