diff --git a/.github/workflows/kat-transform.yml b/.github/workflows/kat-transform.yml new file mode 100644 index 000000000..859a904bc --- /dev/null +++ b/.github/workflows/kat-transform.yml @@ -0,0 +1,71 @@ +name: Kat Transform + +on: + pull_request: + types: [ opened, synchronize, reopened, labeled, unlabeled ] + branches: [ main ] + +# Allow one instance of this workflow per pull request, and cancel older runs when new changes are pushed +concurrency: + group: kat-pr-${{ github.ref }} + cancel-in-progress: true + +permissions: + id-token: write + contents: read + +env: + RUN: ${{ github.run_id }}-${{ github.run_number }} + GRADLE_OPTS: "-Dorg.gradle.daemon=false -Dkotlin.incremental=false" + +jobs: + verify-transform: + runs-on: ubuntu-latest + steps: + - name: Checkout sources + uses: actions/checkout@v4 + with: + path: 'smithy-kotlin' + + - name: Configure AWS Credentials + uses: aws-actions/configure-aws-credentials@v4 + with: + role-to-assume: ${{ secrets.CI_AWS_ROLE_ARN }} + aws-region: us-west-2 + + - name: Setup kat + uses: awslabs/aws-kotlin-repo-tools/.github/actions/setup-kat@main + + - name: Configure JDK + uses: actions/setup-java@v3 + with: + distribution: 'corretto' + java-version: 17 + cache: 'gradle' + + - name: Build + working-directory: ./smithy-kotlin + shell: bash + run: | + pwd + ls -lsa + kat bump-version # Bump from `vNext-SNAPSHOT` to `vNext`. kat transform only works on non-SNAPSHOT versions + kat bump-version --property codegenVersion + ./gradlew build + ./gradlew publishAllPublicationsToTestLocalRepository + + - name: Transform + working-directory: ./smithy-kotlin + shell: bash + run: | + pwd + ls -lsa + kat brazil transform -i ./build/m2 -o ./transformed -t .brazil.json -v live + + # Check for manifest file + if [ ! -f "./transformed/brazil-import-manifest.json" ]; then + echo "Error: brazil-import-manifest.json not found in the transformed artifact" + exit 1 + fi + + echo "Transformation succeeded!" \ No newline at end of file