Skip to content

Commit 2fbfdc5

Browse files
authored
Merge branch 'main' into ajewell/buckets
2 parents 8cd220b + f24a0d3 commit 2fbfdc5

File tree

82 files changed

+510
-319
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

82 files changed

+510
-319
lines changed

.github/actions/install_smithy_dafny_codegen_dependencies/action.yml

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -30,16 +30,6 @@ runs:
3030
python -m pip install --upgrade black
3131
python -m pip install --upgrade docformatter
3232
33-
- name: Install Go
34-
uses: actions/setup-go@v5
35-
with:
36-
go-version: "1.23"
37-
38-
- name: Install Go imports
39-
shell: bash
40-
run: |
41-
go install golang.org/x/tools/cmd/goimports@latest
42-
4333
# Without this the if-dafny-at-least command includes "Downloading ..." output
4434
- name: Arbitrary makefile target to force downloading Gradle
4535
shell: bash

.github/workflows/ci_test_go.yml

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,10 +26,11 @@ on:
2626
jobs:
2727
testGo:
2828
strategy:
29+
fail-fast: false
2930
matrix:
3031
library: [DynamoDbEncryption, TestVectors]
3132
os: [ubuntu-22.04, macos-13]
32-
go-version: ["1.23"]
33+
go-version: ["1.23", "1.24"]
3334
runs-on: ${{ matrix.os }}
3435
permissions:
3536
id-token: write
@@ -108,6 +109,11 @@ jobs:
108109
- name: Install Smithy-Dafny codegen dependencies
109110
uses: ./.github/actions/install_smithy_dafny_codegen_dependencies
110111

112+
- name: Install Go imports
113+
shell: bash
114+
run: |
115+
go install golang.org/x/tools/cmd/goimports@latest
116+
111117
- name: Build ${{ matrix.library }} implementation
112118
shell: bash
113119
working-directory: ./${{ matrix.library }}

.github/workflows/ci_test_java.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ on:
2626
jobs:
2727
testJava:
2828
strategy:
29+
fail-fast: false
2930
matrix:
3031
library: [DynamoDbEncryption]
3132
java-version: [8, 11, 16, 17]

.github/workflows/go-release.yml

Lines changed: 114 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,114 @@
1+
name: Go Release Automation
2+
3+
on:
4+
workflow_dispatch:
5+
inputs:
6+
project-name:
7+
description: "Project name (e.g., DynamoDbEncryption)"
8+
required: true
9+
type: string
10+
version:
11+
description: "Version (e.g., v0.1.0)"
12+
required: true
13+
type: string
14+
15+
jobs:
16+
get-dafny-version:
17+
uses: ./.github/workflows/dafny_version.yml
18+
19+
go-release:
20+
needs: get-dafny-version
21+
runs-on: macos-13
22+
permissions:
23+
contents: write
24+
pull-requests: write
25+
id-token: write
26+
27+
steps:
28+
- name: Support longpaths on Git checkout
29+
run: |
30+
git config --global core.longpaths true
31+
32+
# KMS and MPL tests need to use credentials which can call KMS
33+
- name: Configure AWS Credentials
34+
uses: aws-actions/configure-aws-credentials@v4
35+
with:
36+
aws-region: us-west-2
37+
role-to-assume: arn:aws:iam::370957321024:role/GitHub-CI-DDBEC-Dafny-Role-us-west-2
38+
role-session-name: GoRelease-DBESDK-Tests
39+
40+
- name: Checkout repository
41+
uses: actions/checkout@v4
42+
with:
43+
fetch-depth: 0
44+
token: ${{ secrets.GITHUB_TOKEN }}
45+
46+
- name: Update submodules
47+
run: |
48+
git submodule update --init --recursive
49+
50+
- name: Setup Dafny
51+
uses: dafny-lang/[email protected]
52+
with:
53+
dafny-version: ${{ needs.get-dafny-version.outputs.version }}
54+
55+
- name: Install Go
56+
uses: actions/setup-go@v5
57+
with:
58+
go-version: "1.23"
59+
60+
- name: Install Go imports
61+
run: |
62+
go install golang.org/x/tools/cmd/goimports@latest
63+
64+
- name: Install Smithy-Dafny codegen dependencies
65+
uses: ./.github/actions/install_smithy_dafny_codegen_dependencies
66+
67+
- name: Configure Git
68+
run: |
69+
git config --global user.name "GitHub Actions"
70+
git config --global user.email "[email protected]"
71+
72+
- name: Get release directory name
73+
id: release-dir
74+
run: |
75+
chmod +x ./scripts/go-release-automation.sh
76+
RELEASE_DIR_NAME=$(./scripts/go-release-automation.sh get_release_dir_name "${{ github.event.inputs.project-name }}" "${{ github.event.inputs.version }}")
77+
echo "releaseDirName=$RELEASE_DIR_NAME" >> $GITHUB_OUTPUT
78+
79+
- name: Generate a changelog
80+
uses: orhun/git-cliff-action@v4
81+
with:
82+
config: releases/go/.git-cliff.toml
83+
args: --bump -u --prepend releases/go/${{ steps.release-dir.outputs.releaseDirName }}/CHANGELOG.md
84+
85+
- name: Run Go release automation script
86+
run: |
87+
chmod +x ./scripts/go-release-automation.sh
88+
./scripts/go-release-automation.sh run_release_script ${{ github.event.inputs.project-name }} ${{ github.event.inputs.version }}
89+
90+
- name: Create Pull Request
91+
env:
92+
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
93+
run: |
94+
PROJECT_NAME="${{ github.event.inputs.project-name }}"
95+
VERSION="${{ github.event.inputs.version }}"
96+
97+
# Get the release directory name using the sourced function
98+
RELEASE_DIR_NAME="${{ steps.release-dir.outputs.releaseDirName }}"
99+
100+
BRANCH_NAME="golang-release-staging-branch/$RELEASE_DIR_NAME/$VERSION"
101+
102+
DIFF_FILES=$(diff -qr $PROJECT_NAME/runtimes/go/ImplementationFromDafny-go releases/go/$RELEASE_DIR_NAME || true)
103+
104+
# Create PR using GitHub CLI
105+
gh pr create \
106+
--title "chore(go): Release $RELEASE_DIR_NAME Go module $VERSION" \
107+
--body "This PR was automatically created by the Go Release Automation workflow. It releases version $VERSION of the $RELEASE_DIR_NAME Go module. The diff between $PROJECT_NAME/runtimes/go/ImplementationFromDafny-go and releases/go/$RELEASE_DIR_NAME is below:
108+
109+
$DIFF_FILES
110+
" \
111+
--base main \
112+
--head "$BRANCH_NAME" \
113+
--label "golang" \
114+
--draft

DynamoDbEncryption/Makefile

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -102,9 +102,7 @@ SERVICE_DEPS_DynamoDbEncryptionTransforms := \
102102
DynamoDbEncryption/dafny/DynamoDbItemEncryptor
103103

104104
# Go
105-
# TODO-Go-ORR: Define the name later https://sim.amazon.com/issues/CrypTool-5444
106-
# This will probably get changes to */releases/go/* but I will bring this to the team later.
107-
GO_MODULE_NAME="github.com/aws/aws-database-encryption-sdk-dynamodb"
105+
GO_MODULE_NAME="github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/dynamodb-esdk"
108106

109107
GO_DEPENDENCY_MODULE_NAMES := \
110108
--dependency-library-name=aws.cryptography.primitives=github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives \
@@ -114,10 +112,10 @@ GO_DEPENDENCY_MODULE_NAMES := \
114112
--dependency-library-name=aws.cryptography.keyStore=github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl \
115113
--dependency-library-name=sdk.com.amazonaws.dynamodb=github.com/aws/aws-sdk-go-v2/service/dynamodb \
116114
--dependency-library-name=sdk.com.amazonaws.kms=github.com/aws/aws-sdk-go-v2/service/kms \
117-
--dependency-library-name=aws.cryptography.dbEncryptionSdk.structuredEncryption=github.com/aws/aws-database-encryption-sdk-dynamodb \
118-
--dependency-library-name=aws.cryptography.dbEncryptionSdk.dynamoDb=github.com/aws/aws-database-encryption-sdk-dynamodb \
119-
--dependency-library-name=aws.cryptography.dbEncryptionSdk.dynamoDb.itemEncryptor=github.com/aws/aws-database-encryption-sdk-dynamodb \
120-
--dependency-library-name=aws.cryptography.dbEncryptionSdk.dynamoDb.transforms=github.com/aws/aws-database-encryption-sdk-dynamodb
115+
--dependency-library-name=aws.cryptography.dbEncryptionSdk.structuredEncryption=github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/dynamodb-esdk \
116+
--dependency-library-name=aws.cryptography.dbEncryptionSdk.dynamoDb=github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/dynamodb-esdk \
117+
--dependency-library-name=aws.cryptography.dbEncryptionSdk.dynamoDb.itemEncryptor=github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/dynamodb-esdk \
118+
--dependency-library-name=aws.cryptography.dbEncryptionSdk.dynamoDb.transforms=github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/dynamodb-esdk
121119

122120
TRANSLATION_RECORD_GO := \
123121
submodules/MaterialProviders/StandardLibrary/runtimes/go/ImplementationFromDafny-go/ImplementationFromDafny-go.dtr \

DynamoDbEncryption/runtimes/go/ImplementationFromDafny-go/InternalLegacyOverride/extern.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@ package InternalLegacyOverride
22

33
import (
44
"github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers"
5-
"github.com/aws/aws-database-encryption-sdk-dynamodb/AwsCryptographyDbEncryptionSdkDynamoDbTypes"
6-
"github.com/aws/aws-database-encryption-sdk-dynamodb/awscryptographydbencryptionsdkdynamodbitemencryptorsmithygeneratedtypes"
5+
"github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/dynamodb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbTypes"
6+
"github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/dynamodb-esdk/awscryptographydbencryptionsdkdynamodbitemencryptorsmithygeneratedtypes"
77
)
88

99
var policy = AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_LegacyPolicy_.Create_FORBID__LEGACY__ENCRYPT__FORBID__LEGACY__DECRYPT_()

DynamoDbEncryption/runtimes/go/ImplementationFromDafny-go/WrappedAwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorService/shim.go

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

DynamoDbEncryption/runtimes/go/ImplementationFromDafny-go/WrappedAwsCryptographyDbEncryptionSdkDynamoDbService/shim.go

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

DynamoDbEncryption/runtimes/go/ImplementationFromDafny-go/WrappedAwsCryptographyDbEncryptionSdkDynamoDbTransformsService/shim.go

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

DynamoDbEncryption/runtimes/go/ImplementationFromDafny-go/WrappedAwsCryptographyDbEncryptionSdkStructuredEncryptionService/shim.go

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)