From 590080b3da12999dc0b639c79442dc6babdfba81 Mon Sep 17 00:00:00 2001 From: rishav-karanjit Date: Wed, 25 Mar 2026 22:36:00 -0700 Subject: [PATCH 01/15] m --- .github/workflows/ci_test_java.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci_test_java.yml b/.github/workflows/ci_test_java.yml index 1cc7b52804..e2963cf099 100644 --- a/.github/workflows/ci_test_java.yml +++ b/.github/workflows/ci_test_java.yml @@ -30,7 +30,7 @@ jobs: matrix: library: [DynamoDbEncryption] java-version: [8, 11, 17, 19, 21] - os: [macos-14, windows-latest] + os: [macos-14, windows-latest, ubuntu-latest] runs-on: ${{ matrix.os }} permissions: id-token: write From 40f36edb351343ed81136c298564bd3142f987f8 Mon Sep 17 00:00:00 2001 From: rishav-karanjit Date: Wed, 25 Mar 2026 22:38:01 -0700 Subject: [PATCH 02/15] ubuntu-22.04 --- .github/workflows/ci_test_java.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci_test_java.yml b/.github/workflows/ci_test_java.yml index e2963cf099..50c390b67b 100644 --- a/.github/workflows/ci_test_java.yml +++ b/.github/workflows/ci_test_java.yml @@ -30,7 +30,7 @@ jobs: matrix: library: [DynamoDbEncryption] java-version: [8, 11, 17, 19, 21] - os: [macos-14, windows-latest, ubuntu-latest] + os: [macos-14, windows-latest, ubuntu-22.04] runs-on: ${{ matrix.os }} permissions: id-token: write From d5e3c5f2c20a9d25c639b38303290992d8f047c2 Mon Sep 17 00:00:00 2001 From: rishav-karanjit Date: Wed, 25 Mar 2026 22:42:31 -0700 Subject: [PATCH 03/15] m --- .github/workflows/ci_test_java.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci_test_java.yml b/.github/workflows/ci_test_java.yml index 50c390b67b..81a50ad186 100644 --- a/.github/workflows/ci_test_java.yml +++ b/.github/workflows/ci_test_java.yml @@ -45,7 +45,7 @@ jobs: # Rust files have long names, so we need to enable long paths - name: Enable long paths - run: git config --system core.longpaths true + run: git config --global core.longpaths true - uses: actions/checkout@v6 with: From 4f57ca31353d689f890e16b145923ab4b8a34b07 Mon Sep 17 00:00:00 2001 From: rishav-karanjit Date: Wed, 25 Mar 2026 22:50:34 -0700 Subject: [PATCH 04/15] ubuntu-latest --- .github/workflows/ci_test_java.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci_test_java.yml b/.github/workflows/ci_test_java.yml index 81a50ad186..6d602b0675 100644 --- a/.github/workflows/ci_test_java.yml +++ b/.github/workflows/ci_test_java.yml @@ -30,7 +30,7 @@ jobs: matrix: library: [DynamoDbEncryption] java-version: [8, 11, 17, 19, 21] - os: [macos-14, windows-latest, ubuntu-22.04] + os: [macos-14, windows-latest, ubuntu-latest] runs-on: ${{ matrix.os }} permissions: id-token: write From 3eed9f451aa35e1f5aeeb55f1e4a5ff1d3ae67ea Mon Sep 17 00:00:00 2001 From: rishav-karanjit Date: Wed, 25 Mar 2026 23:04:19 -0700 Subject: [PATCH 05/15] Revert "ubuntu-latest" This reverts commit 4f57ca31353d689f890e16b145923ab4b8a34b07. --- .github/workflows/ci_test_java.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci_test_java.yml b/.github/workflows/ci_test_java.yml index 6d602b0675..81a50ad186 100644 --- a/.github/workflows/ci_test_java.yml +++ b/.github/workflows/ci_test_java.yml @@ -30,7 +30,7 @@ jobs: matrix: library: [DynamoDbEncryption] java-version: [8, 11, 17, 19, 21] - os: [macos-14, windows-latest, ubuntu-latest] + os: [macos-14, windows-latest, ubuntu-22.04] runs-on: ${{ matrix.os }} permissions: id-token: write From c4b0cf0a5725b62ec0a481b78adfa98121f0fc3b Mon Sep 17 00:00:00 2001 From: rishav-karanjit Date: Wed, 25 Mar 2026 23:09:17 -0700 Subject: [PATCH 06/15] m --- .github/workflows/ci_test_java.yml | 28 +++++++++++++++++++--------- 1 file changed, 19 insertions(+), 9 deletions(-) diff --git a/.github/workflows/ci_test_java.yml b/.github/workflows/ci_test_java.yml index 81a50ad186..ba9cad706b 100644 --- a/.github/workflows/ci_test_java.yml +++ b/.github/workflows/ci_test_java.yml @@ -95,14 +95,24 @@ jobs: java-version: ${{ matrix.java-version }} - name: Build ${{ matrix.library }} implementation - shell: bash - working-directory: ./${{ matrix.library }} - run: | - # This works because `node` is installed by default on GHA runners - CORES=$(node -e 'console.log(os.cpus().length)') - make build_java CORES=$CORES + uses: nick-fields/retry@v3 + with: + timeout_minutes: 30 + retry_wait_seconds: 15 + max_attempts: 3 + shell: bash + command: | + # This works because `node` is installed by default on GHA runners + CORES=$(node -e 'console.log(os.cpus().length)') + make build_java CORES=$CORES - name: Test ${{ matrix.library }} - working-directory: ./${{ matrix.library }} - run: | - make test_java + uses: nick-fields/retry@v3 + with: + timeout_minutes: 30 + retry_wait_seconds: 15 + max_attempts: 3 + shell: bash + command: | + cd ./${{ matrix.library }} + make test_java From 975fc2d1fe4b52d3c12232d80ed0fd83ac2c14d4 Mon Sep 17 00:00:00 2001 From: rishav-karanjit Date: Wed, 25 Mar 2026 23:22:43 -0700 Subject: [PATCH 07/15] m --- .github/workflows/ci_test_java.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/ci_test_java.yml b/.github/workflows/ci_test_java.yml index ba9cad706b..db9fadd969 100644 --- a/.github/workflows/ci_test_java.yml +++ b/.github/workflows/ci_test_java.yml @@ -102,6 +102,7 @@ jobs: max_attempts: 3 shell: bash command: | + cd ./${{ matrix.library }} # This works because `node` is installed by default on GHA runners CORES=$(node -e 'console.log(os.cpus().length)') make build_java CORES=$CORES From 38ca0ceb07e280f7dee6ae88eda8614b4acb4c22 Mon Sep 17 00:00:00 2001 From: rishav-karanjit Date: Wed, 25 Mar 2026 23:52:17 -0700 Subject: [PATCH 08/15] m --- .github/workflows/ci_examples_java.yml | 43 ++++++++++++++++---------- 1 file changed, 27 insertions(+), 16 deletions(-) diff --git a/.github/workflows/ci_examples_java.yml b/.github/workflows/ci_examples_java.yml index 745691714f..0d7d491fc6 100644 --- a/.github/workflows/ci_examples_java.yml +++ b/.github/workflows/ci_examples_java.yml @@ -29,7 +29,7 @@ jobs: fail-fast: false matrix: java-version: [8, 11, 17, 19, 21] - os: [macos-14, windows-latest] + os: [macos-14, windows-latest, ubuntu-22.04] runs-on: ${{ matrix.os }} permissions: id-token: write @@ -94,20 +94,31 @@ jobs: update-and-regenerate-mpl: true - name: Build and locally deploy dependencies for examples - shell: bash - working-directory: ./DynamoDbEncryption - run: | - # This works because `node` is installed by default on GHA runners - CORES=$(node -e 'console.log(os.cpus().length)') - # This will recursively build and deploy MPL as well - make build_java CORES=$CORES - make mvn_local_deploy + uses: nick-fields/retry@v3 + with: + timeout_minutes: 30 + retry_wait_seconds: 15 + max_attempts: 3 + shell: bash + command: | + cd ./DynamoDbEncryption + # This works because `node` is installed by default on GHA runners + CORES=$(node -e 'console.log(os.cpus().length)') + # This will recursively build and deploy MPL as well + make build_java CORES=$CORES + make mvn_local_deploy - name: Test Examples - working-directory: ./Examples - run: | - # Run simple examples - gradle -p runtimes/java/DynamoDbEncryption test - # Run migration examples - gradle -p runtimes/java/Migration/PlaintextToAWSDBE test - gradle -p runtimes/java/Migration/DDBECToAWSDBE test + uses: nick-fields/retry@v3 + with: + timeout_minutes: 30 + retry_wait_seconds: 15 + max_attempts: 3 + shell: bash + command: | + cd ./Examples + # Run simple examples + gradle -p runtimes/java/DynamoDbEncryption test + # Run migration examples + gradle -p runtimes/java/Migration/PlaintextToAWSDBE test + gradle -p runtimes/java/Migration/DDBECToAWSDBE test From 2b790c410c99d2f4052c94141725e6f1325de9d3 Mon Sep 17 00:00:00 2001 From: rishav-karanjit Date: Wed, 25 Mar 2026 23:53:25 -0700 Subject: [PATCH 09/15] m --- .github/workflows/ci_examples_java.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci_examples_java.yml b/.github/workflows/ci_examples_java.yml index 0d7d491fc6..cd785d9c26 100644 --- a/.github/workflows/ci_examples_java.yml +++ b/.github/workflows/ci_examples_java.yml @@ -44,7 +44,7 @@ jobs: # Rust files have long names, so we need to enable long paths - name: Enable long paths - run: git config --system core.longpaths true + run: git config --global core.longpaths true - uses: actions/checkout@v6 with: From f97ef5c4ea14150dc3c860437678da86c7d8849f Mon Sep 17 00:00:00 2001 From: rishav-karanjit Date: Thu, 26 Mar 2026 09:42:47 -0700 Subject: [PATCH 10/15] m --- .github/workflows/library_rust_tests.yml | 71 ++++++++++++++++-------- 1 file changed, 48 insertions(+), 23 deletions(-) diff --git a/.github/workflows/library_rust_tests.yml b/.github/workflows/library_rust_tests.yml index afcb3ae4d7..871f7d5fef 100644 --- a/.github/workflows/library_rust_tests.yml +++ b/.github/workflows/library_rust_tests.yml @@ -101,12 +101,17 @@ jobs: make polymorph_rust - name: Compile ${{ matrix.library }} implementation - shell: bash - working-directory: ./${{ matrix.library }} - run: | - # This works because `node` is installed by default on GHA runners - CORES=$(node -e 'console.log(os.cpus().length)') - make transpile_rust TRANSPILE_TESTS_IN_RUST=1 CORES=$CORES + uses: nick-fields/retry@v3 + with: + timeout_minutes: 30 + retry_wait_seconds: 15 + max_attempts: 3 + shell: bash + command: | + cd ./${{ matrix.library }} + # This works because `node` is installed by default on GHA runners + CORES=$(node -e 'console.log(os.cpus().length)') + make transpile_rust TRANSPILE_TESTS_IN_RUST=1 CORES=$CORES - name: Copy ${{ matrix.library }} Vector Files if: ${{ matrix.library == 'TestVectors' }} @@ -116,10 +121,15 @@ jobs: cp runtimes/java/*.json runtimes/rust/ - name: Test ${{ matrix.library }} Rust - shell: bash - working-directory: ./${{ matrix.library }} - run: | - make test_rust + uses: nick-fields/retry@v3 + with: + timeout_minutes: 30 + retry_wait_seconds: 15 + max_attempts: 3 + shell: bash + command: | + cd ./${{ matrix.library }} + make test_rust - name: Configure AWS Credentials uses: aws-actions/configure-aws-credentials@v6 @@ -129,22 +139,37 @@ jobs: role-session-name: DDBEC-Dafny-Rust-Tests - name: Test ${{ matrix.library }} Rust Fips - shell: bash - working-directory: ./${{ matrix.library }}/runtimes/rust/ - run: | - cargo test --release --features fips -- --nocapture + uses: nick-fields/retry@v3 + with: + timeout_minutes: 30 + retry_wait_seconds: 15 + max_attempts: 3 + shell: bash + command: | + cd ./${{ matrix.library }}/runtimes/rust/ + cargo test --release --features fips -- --nocapture - name: Test ${{ matrix.library }} Rust Debug if: ${{ matrix.library != 'TestVectors' }} - shell: bash - working-directory: ./${{ matrix.library }} - run: | - make test_rust test_rust_debug + uses: nick-fields/retry@v3 + with: + timeout_minutes: 30 + retry_wait_seconds: 15 + max_attempts: 3 + shell: bash + command: | + cd ./${{ matrix.library }} + make test_rust test_rust_debug - name: Test Examples for Rust in ${{ matrix.library }} if: ${{ matrix.library == 'DynamoDbEncryption' }} - working-directory: ./${{ matrix.library }}/runtimes/rust/ - shell: bash - run: | - cargo run --release --example main - cargo test --release --example main + uses: nick-fields/retry@v3 + with: + timeout_minutes: 30 + retry_wait_seconds: 15 + max_attempts: 3 + shell: bash + command: | + cd ./${{ matrix.library }}/runtimes/rust/ + cargo run --release --example main + cargo test --release --example main From 1afa5cb0e4dedb6b07643ebaac8efda294925807 Mon Sep 17 00:00:00 2001 From: rishav-karanjit Date: Thu, 26 Mar 2026 10:47:36 -0700 Subject: [PATCH 11/15] m --- .github/workflows/ci_examples_java.yml | 41 ++++++++++---------------- 1 file changed, 15 insertions(+), 26 deletions(-) diff --git a/.github/workflows/ci_examples_java.yml b/.github/workflows/ci_examples_java.yml index cd785d9c26..17d128de27 100644 --- a/.github/workflows/ci_examples_java.yml +++ b/.github/workflows/ci_examples_java.yml @@ -94,31 +94,20 @@ jobs: update-and-regenerate-mpl: true - name: Build and locally deploy dependencies for examples - uses: nick-fields/retry@v3 - with: - timeout_minutes: 30 - retry_wait_seconds: 15 - max_attempts: 3 - shell: bash - command: | - cd ./DynamoDbEncryption - # This works because `node` is installed by default on GHA runners - CORES=$(node -e 'console.log(os.cpus().length)') - # This will recursively build and deploy MPL as well - make build_java CORES=$CORES - make mvn_local_deploy + shell: bash + working-directory: ./DynamoDbEncryption + run: | + # This works because `node` is installed by default on GHA runners + CORES=$(node -e 'console.log(os.cpus().length)') + # This will recursively build and deploy MPL as well + make build_java CORES=$CORES + make mvn_local_deploy - name: Test Examples - uses: nick-fields/retry@v3 - with: - timeout_minutes: 30 - retry_wait_seconds: 15 - max_attempts: 3 - shell: bash - command: | - cd ./Examples - # Run simple examples - gradle -p runtimes/java/DynamoDbEncryption test - # Run migration examples - gradle -p runtimes/java/Migration/PlaintextToAWSDBE test - gradle -p runtimes/java/Migration/DDBECToAWSDBE test + working-directory: ./Examples + run: | + # Run simple examples + gradle -p runtimes/java/DynamoDbEncryption test + # Run migration examples + gradle -p runtimes/java/Migration/PlaintextToAWSDBE test + gradle -p runtimes/java/Migration/DDBECToAWSDBE test From 887020378495ce5b8ac6d316045ade177a94752b Mon Sep 17 00:00:00 2001 From: rishav-karanjit Date: Thu, 26 Mar 2026 10:50:17 -0700 Subject: [PATCH 12/15] m --- .github/workflows/ci_test_java.yml | 29 +++------- .github/workflows/library_rust_tests.yml | 71 ++++++++---------------- 2 files changed, 32 insertions(+), 68 deletions(-) diff --git a/.github/workflows/ci_test_java.yml b/.github/workflows/ci_test_java.yml index db9fadd969..81a50ad186 100644 --- a/.github/workflows/ci_test_java.yml +++ b/.github/workflows/ci_test_java.yml @@ -95,25 +95,14 @@ jobs: java-version: ${{ matrix.java-version }} - name: Build ${{ matrix.library }} implementation - uses: nick-fields/retry@v3 - with: - timeout_minutes: 30 - retry_wait_seconds: 15 - max_attempts: 3 - shell: bash - command: | - cd ./${{ matrix.library }} - # This works because `node` is installed by default on GHA runners - CORES=$(node -e 'console.log(os.cpus().length)') - make build_java CORES=$CORES + shell: bash + working-directory: ./${{ matrix.library }} + run: | + # This works because `node` is installed by default on GHA runners + CORES=$(node -e 'console.log(os.cpus().length)') + make build_java CORES=$CORES - name: Test ${{ matrix.library }} - uses: nick-fields/retry@v3 - with: - timeout_minutes: 30 - retry_wait_seconds: 15 - max_attempts: 3 - shell: bash - command: | - cd ./${{ matrix.library }} - make test_java + working-directory: ./${{ matrix.library }} + run: | + make test_java diff --git a/.github/workflows/library_rust_tests.yml b/.github/workflows/library_rust_tests.yml index 871f7d5fef..cf72ee9dc5 100644 --- a/.github/workflows/library_rust_tests.yml +++ b/.github/workflows/library_rust_tests.yml @@ -101,17 +101,12 @@ jobs: make polymorph_rust - name: Compile ${{ matrix.library }} implementation - uses: nick-fields/retry@v3 - with: - timeout_minutes: 30 - retry_wait_seconds: 15 - max_attempts: 3 - shell: bash - command: | - cd ./${{ matrix.library }} - # This works because `node` is installed by default on GHA runners - CORES=$(node -e 'console.log(os.cpus().length)') - make transpile_rust TRANSPILE_TESTS_IN_RUST=1 CORES=$CORES + shell: bash + working-directory: ./${{ matrix.library }} + run: | + # This works because `node` is installed by default on GHA runners + CORES=$(node -e 'console.log(os.cpus().length)') + make transpile_rust TRANSPILE_TESTS_IN_RUST=1 CORES=$CORES - name: Copy ${{ matrix.library }} Vector Files if: ${{ matrix.library == 'TestVectors' }} @@ -121,15 +116,10 @@ jobs: cp runtimes/java/*.json runtimes/rust/ - name: Test ${{ matrix.library }} Rust - uses: nick-fields/retry@v3 - with: - timeout_minutes: 30 - retry_wait_seconds: 15 - max_attempts: 3 - shell: bash - command: | - cd ./${{ matrix.library }} - make test_rust + shell: bash + working-directory: ./${{ matrix.library }} + run: | + make test_rust - name: Configure AWS Credentials uses: aws-actions/configure-aws-credentials@v6 @@ -139,37 +129,22 @@ jobs: role-session-name: DDBEC-Dafny-Rust-Tests - name: Test ${{ matrix.library }} Rust Fips - uses: nick-fields/retry@v3 - with: - timeout_minutes: 30 - retry_wait_seconds: 15 - max_attempts: 3 - shell: bash - command: | - cd ./${{ matrix.library }}/runtimes/rust/ - cargo test --release --features fips -- --nocapture + shell: bash + working-directory: ./${{ matrix.library }}/runtimes/rust/ + run: | + cargo test --release --features fips -- --nocapture - name: Test ${{ matrix.library }} Rust Debug if: ${{ matrix.library != 'TestVectors' }} - uses: nick-fields/retry@v3 - with: - timeout_minutes: 30 - retry_wait_seconds: 15 - max_attempts: 3 - shell: bash - command: | - cd ./${{ matrix.library }} - make test_rust test_rust_debug + shell: bash + working-directory: ./${{ matrix.library }} + run: | + make test_rust test_rust_debug - name: Test Examples for Rust in ${{ matrix.library }} if: ${{ matrix.library == 'DynamoDbEncryption' }} - uses: nick-fields/retry@v3 - with: - timeout_minutes: 30 - retry_wait_seconds: 15 - max_attempts: 3 - shell: bash - command: | - cd ./${{ matrix.library }}/runtimes/rust/ - cargo run --release --example main - cargo test --release --example main + working-directory: ./${{ matrix.library }}/runtimes/rust/ + shell: bash + run: | + cargo run --release --example main + cargo test --release --example main \ No newline at end of file From 12641b7c6edc7910e9b5ab143139f95f2093773b Mon Sep 17 00:00:00 2001 From: rishav-karanjit Date: Thu, 26 Mar 2026 10:50:58 -0700 Subject: [PATCH 13/15] m --- .github/workflows/library_rust_tests.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/library_rust_tests.yml b/.github/workflows/library_rust_tests.yml index cf72ee9dc5..dbbd89e2e7 100644 --- a/.github/workflows/library_rust_tests.yml +++ b/.github/workflows/library_rust_tests.yml @@ -147,4 +147,5 @@ jobs: shell: bash run: | cargo run --release --example main - cargo test --release --example main \ No newline at end of file + cargo test --release --example main + \ No newline at end of file From 16ec9e19ec06657d938720e92274184f483356ed Mon Sep 17 00:00:00 2001 From: rishav-karanjit Date: Thu, 26 Mar 2026 10:51:30 -0700 Subject: [PATCH 14/15] m --- .github/workflows/library_rust_tests.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/library_rust_tests.yml b/.github/workflows/library_rust_tests.yml index dbbd89e2e7..cf72ee9dc5 100644 --- a/.github/workflows/library_rust_tests.yml +++ b/.github/workflows/library_rust_tests.yml @@ -147,5 +147,4 @@ jobs: shell: bash run: | cargo run --release --example main - cargo test --release --example main - \ No newline at end of file + cargo test --release --example main \ No newline at end of file From b547c1bd4fb6c8beb14108d818c5cd032be3a99b Mon Sep 17 00:00:00 2001 From: rishav-karanjit Date: Thu, 26 Mar 2026 10:57:10 -0700 Subject: [PATCH 15/15] m --- .github/workflows/library_rust_tests.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/library_rust_tests.yml b/.github/workflows/library_rust_tests.yml index cf72ee9dc5..afcb3ae4d7 100644 --- a/.github/workflows/library_rust_tests.yml +++ b/.github/workflows/library_rust_tests.yml @@ -147,4 +147,4 @@ jobs: shell: bash run: | cargo run --release --example main - cargo test --release --example main \ No newline at end of file + cargo test --release --example main