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