diff --git a/.github/workflows/go-release.yml b/.github/workflows/go-release.yml new file mode 100644 index 000000000..de6dc7838 --- /dev/null +++ b/.github/workflows/go-release.yml @@ -0,0 +1,86 @@ +name: Go Release Automation + +on: + workflow_dispatch: + inputs: + project-name: + description: "Project name (e.g., AwsEncryptionSDK)" + required: true + type: string + version: + description: "Version (e.g., v0.1.0)" + required: true + type: string + +jobs: + get-dafny-version: + uses: ./.github/workflows/dafny_version.yaml + + go-release: + needs: get-dafny-version + runs-on: macos-13 + permissions: + contents: write + pull-requests: write + id-token: write + + steps: + - name: Support longpaths on Git checkout + run: | + git config --global core.longpaths true + + - name: Configure AWS Credentials for Tests + uses: aws-actions/configure-aws-credentials@v4 + with: + aws-region: us-west-2 + role-to-assume: arn:aws:iam::370957321024:role/GitHub-CI-Public-ESDK-Dafny-Role-us-west-2 + role-session-name: GoReleaseTest + + - name: Checkout repository + uses: actions/checkout@v4 + with: + fetch-depth: 0 + token: ${{ secrets.GITHUB_TOKEN }} + + - name: Update submodules + run: | + git submodule update --init --recursive + + - name: Setup Dafny + uses: ./mpl/.github/actions/setup_dafny + with: + dafny-version: ${{ needs.get-dafny-version.outputs.version }} + + - name: Install Go + uses: actions/setup-go@v5 + with: + go-version: "1.23" + + - name: Install Go imports + run: | + go install golang.org/x/tools/cmd/goimports@latest + + - name: Install Smithy-Dafny codegen dependencies + uses: ./.github/actions/install_smithy_dafny_codegen_dependencies + + - name: Configure Git + run: | + git config --global user.name "GitHub Actions" + git config --global user.email "actions@github.com" + + - name: Get release directory name + id: release-dir + run: | + chmod +x mpl/scripts/go-release-automation.sh + RELEASE_DIR_NAME=$(mpl/scripts/go-release-automation.sh get_release_dir_name "${{ github.event.inputs.project-name }}" "${{ github.event.inputs.version }}") + echo "releaseDirName=$RELEASE_DIR_NAME" >> $GITHUB_OUTPUT + + - name: Generate a changelog + uses: orhun/git-cliff-action@v4 + with: + config: releases/go/.git-cliff.toml + args: --bump -u --prepend releases/go/${{ steps.release-dir.outputs.releaseDirName }}/CHANGELOG.md + + - name: Run Go release automation script + run: | + mpl/scripts/go-release-automation.sh run_release_script ${{ github.event.inputs.project-name }} ${{ github.event.inputs.version }} diff --git a/AwsEncryptionSDK/runtimes/go/ImplementationFromDafny-go/go.mod b/AwsEncryptionSDK/runtimes/go/ImplementationFromDafny-go/go.mod index 14f52cf12..fdeec323e 100644 --- a/AwsEncryptionSDK/runtimes/go/ImplementationFromDafny-go/go.mod +++ b/AwsEncryptionSDK/runtimes/go/ImplementationFromDafny-go/go.mod @@ -3,7 +3,7 @@ module github.com/aws/aws-encryption-sdk/releases/go/encryption-sdk go 1.23.0 replace ( - github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl => ../../../../../mpl/AwsCryptographicMaterialProviders/runtimes/go/ImplementationFromDafny-go/ + github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl => ../../../../mpl/AwsCryptographicMaterialProviders/runtimes/go/ImplementationFromDafny-go/ github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb => ../../../../mpl/ComAmazonawsDynamodb/runtimes/go/ImplementationFromDafny-go/ github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms => ../../../../mpl/ComAmazonawsKms/runtimes/go/ImplementationFromDafny-go/ github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives => ../../../../mpl/AwsCryptographyPrimitives/runtimes/go/ImplementationFromDafny-go/ diff --git a/mpl b/mpl index ec013f6ba..952c42f1c 160000 --- a/mpl +++ b/mpl @@ -1 +1 @@ -Subproject commit ec013f6ba85d62ab41db48fec92baca85625e4b9 +Subproject commit 952c42f1c7cfad57cc9ea0115c2a0cb38164ead7 diff --git a/project.properties b/project.properties index 3e44ddb9d..cc17413a5 100644 --- a/project.properties +++ b/project.properties @@ -4,6 +4,6 @@ dafnyVersion=4.9.0 dafnyVerifyVersion=4.9.0 dafnyFormatVersion=4.9.0 projectJavaVersion=4.1.0 -mplDependencyJavaVersion=1.11.0-SNAPSHOT +mplDependencyJavaVersion=1.11.1-SNAPSHOT dafnyRuntimeJavaVersion=4.9.0 smithyDafnyJavaConversionVersion=0.1.1