diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 4d25be2b..9ad9207e 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -39,7 +39,7 @@ jobs:
# image: "aws/codebuild/amazonlinux-x86_64-standard:5.0"
- distribution: corretto
image: "aws/codebuild/amazonlinux-x86_64-standard:5.0" # Corretto only runs on AL2
- version: [ 8, 11 ]
+ version: [ 8, 11, 17, 21 ]
steps:
- name: Configure AWS Credentials
uses: aws-actions/configure-aws-credentials@v2
@@ -69,7 +69,7 @@ jobs:
# image: "aws/codebuild/standard:3.0"
- distribution: corretto
image: "aws/codebuild/amazonlinux-x86_64-standard:5.0" # Corretto only runs on AL2
- version: [ 8, 11 ]
+ version: [ 8, 11, 17, 21 ]
steps:
- name: Configure AWS Credentials
uses: aws-actions/configure-aws-credentials@v2
@@ -99,7 +99,7 @@ jobs:
# image: "aws/codebuild/standard:3.0"
- distribution: corretto
image: "aws/codebuild/amazonlinux-x86_64-standard:5.0" # Corretto only runs on AL2
- version: [ 8, 11 ]
+ version: [ 8, 11, 17, 21 ]
steps:
- name: Configure AWS Credentials
uses: aws-actions/configure-aws-credentials@v2
@@ -130,7 +130,7 @@ jobs:
# image: "aws/codebuild/standard:3.0"
- distribution: corretto
image: "aws/codebuild/amazonlinux-x86_64-standard:5.0" # Corretto only runs on AL2
- version: [ 8, 11 ]
+ version: [ 8, 11, 17, 21 ]
steps:
- name: Configure AWS Credentials
uses: aws-actions/configure-aws-credentials@v2
@@ -149,6 +149,27 @@ jobs:
env-vars-for-codebuild: JAVA_ENV_VERSION
env:
JAVA_ENV_VERSION: ${{ matrix.platform.distribution }}${{ matrix.version }}
+ validateConsumerCompiles:
+ name: Validate Consumer Smoke Test
+ runs-on: ubuntu-latest
+ strategy:
+ fail-fast: false
+ matrix:
+ java-version: [ 8, 11, 17, 21 ]
+ steps:
+ - uses: actions/checkout@v4
+ - uses: actions/setup-java@v4
+ with:
+ distribution: corretto
+ java-version: ${{ matrix.java-version }}
+ - name: Compile and run smoke test against Maven Central
+ working-directory: codebuild/ci/validate-consumer
+ run: |
+ mvn compile exec:java \
+ -Dexec.mainClass="validate.EsdkSmokeTest" \
+ -Desdk.version=3.0.1 \
+ -Djava.version=${{ matrix.java-version }} \
+ --no-transfer-progress
releaseCI:
name: Release CI
runs-on: ubuntu-latest
@@ -170,6 +191,7 @@ jobs:
env-vars-for-codebuild: GITHUB_EVENT_NAME
env:
GITHUB_EVENT_NAME: $GITHUB_EVENT_NAME
+
validateCI:
name: Validate CI
runs-on: ubuntu-latest
@@ -178,11 +200,9 @@ jobs:
fail-fast: true
matrix:
platform:
- # - distribution: openjdk
- # image: "aws/codebuild/standard:3.0"
- distribution: corretto
- image: "aws/codebuild/amazonlinux-x86_64-standard:5.0" # Corretto only runs on AL2
- version: [ 8, 11 ]
+ image: "aws/codebuild/amazonlinux-x86_64-standard:5.0"
+ version: [ 8, 11, 17, 21 ]
steps:
- name: Configure AWS Credentials
uses: aws-actions/configure-aws-credentials@v2
diff --git a/codebuild/ci/validate-ci.yml b/codebuild/ci/validate-ci.yml
index dc01d96e..cb9e8761 100644
--- a/codebuild/ci/validate-ci.yml
+++ b/codebuild/ci/validate-ci.yml
@@ -18,21 +18,18 @@ phases:
commands:
- VERSION_HASH="$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout)-$CODEBUILD_RESOLVED_SOURCE_VERSION-$GITHUB_EVENT_NAME"
- export SETTINGS_FILE=$(pwd)/codebuild/ci/settings.xml
- - git clone https://github.com/aws-samples/busy-engineers-document-bucket.git
- - cd busy-engineers-document-bucket/exercises/java/encryption-context-complete
+ - cd codebuild/ci/validate-consumer
- export CODEARTIFACT_TOKEN=$(aws codeartifact get-authorization-token --domain $DOMAIN --domain-owner $ACCOUNT --query authorizationToken --output text --region ${REGION})
- export CODEARTIFACT_REPO_URL=https://${DOMAIN}-${ACCOUNT}.d.codeartifact.${REGION}.amazonaws.com/maven/${REPOSITORY}
build:
commands:
- |
- mvn verify \
+ mvn compile exec:java \
+ -Dexec.mainClass="validate.EsdkSmokeTest" \
-Pcodeartifact \
- -Dcheckstyle.skip \
-Desdk.version=$VERSION_HASH \
- -Dmaven.compiler.target=$JAVA_NUMERIC_VERSION \
- -Dmaven.compiler.source=$JAVA_NUMERIC_VERSION \
+ -Djava.version=$JAVA_NUMERIC_VERSION \
-Dcodeartifact.token=$CODEARTIFACT_TOKEN \
-Dcodeartifact.url=$CODEARTIFACT_REPO_URL \
--no-transfer-progress \
- -T 4 \
-s $SETTINGS_FILE
diff --git a/codebuild/ci/validate-consumer/pom.xml b/codebuild/ci/validate-consumer/pom.xml
new file mode 100644
index 00000000..26494abf
--- /dev/null
+++ b/codebuild/ci/validate-consumer/pom.xml
@@ -0,0 +1,39 @@
+
+
+ 4.0.0
+
+ com.amazonaws.esdk
+ validate-consumer
+ 1.0-SNAPSHOT
+ Smoke test that the ESDK artifact is resolvable and compiles
+
+
+ UTF-8
+ ${java.version}
+ ${java.version}
+ 8
+ LATEST
+
+
+
+
+ com.amazonaws
+ aws-encryption-sdk-java
+ ${esdk.version}
+
+
+
+
+
+ codeartifact
+
+
+ codeartifact
+ ${codeartifact.url}
+
+
+
+
+
diff --git a/codebuild/ci/validate-consumer/src/main/java/validate/EsdkSmokeTest.java b/codebuild/ci/validate-consumer/src/main/java/validate/EsdkSmokeTest.java
new file mode 100644
index 00000000..b7ba6b31
--- /dev/null
+++ b/codebuild/ci/validate-consumer/src/main/java/validate/EsdkSmokeTest.java
@@ -0,0 +1,24 @@
+// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.
+// SPDX-License-Identifier: Apache-2.0
+
+package validate;
+
+import com.amazonaws.encryptionsdk.AwsCrypto;
+import com.amazonaws.encryptionsdk.CommitmentPolicy;
+import com.amazonaws.encryptionsdk.CryptoResult;
+import com.amazonaws.encryptionsdk.MasterKeyProvider;
+import com.amazonaws.encryptionsdk.jce.JceMasterKey;
+
+/**
+ * Smoke test that the published ESDK artifact is resolvable
+ * and that key public API classes are importable and usable.
+ */
+public class EsdkSmokeTest {
+ public static void main(String[] args) {
+ AwsCrypto crypto = AwsCrypto.builder()
+ .withCommitmentPolicy(CommitmentPolicy.RequireEncryptRequireDecrypt)
+ .build();
+ System.out.println("ESDK artifact resolved and AwsCrypto instantiated successfully.");
+ System.out.println("AwsCrypto version info: " + crypto.toString());
+ }
+}
diff --git a/codebuild/ci/vectors-generator.yml b/codebuild/ci/vectors-generator.yml
index b3256fb7..1333753c 100644
--- a/codebuild/ci/vectors-generator.yml
+++ b/codebuild/ci/vectors-generator.yml
@@ -5,7 +5,7 @@ phases:
runtime-versions:
java: $JAVA_ENV_VERSION
commands:
- - n 16
+ - n 22
# Install the Javascript ESDK run test vectors
- npm install -g @aws-crypto/integration-node
diff --git a/pom.xml b/pom.xml
index 7454e2d5..a7d53544 100644
--- a/pom.xml
+++ b/pom.xml
@@ -198,7 +198,7 @@
org.jacoco
jacoco-maven-plugin
- 0.8.8
+ 0.8.12