Skip to content

chore: Always test/build with locally built MPL and add release safeg… #422

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 7 commits into from
Sep 19, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 0 additions & 4 deletions .github/workflows/ci_test_java.yml
Original file line number Diff line number Diff line change
Expand Up @@ -78,8 +78,4 @@ jobs:
- name: Test ${{ matrix.library }}
working-directory: ./${{ matrix.library }}
run: |
# Clear MPL from cache
# We have to do this because MakeFile does not do this yet. The MakeFile automatically builds and deploys dependencies
# instead it should be picking it up from Maven.
rm -rf ~/.m2/repository/software/amazon/cryptography/aws-cryptographic-material-providers
make test_java
4 changes: 0 additions & 4 deletions .github/workflows/ci_test_vector_java.yml
Original file line number Diff line number Diff line change
Expand Up @@ -60,8 +60,4 @@ jobs:
- name: Test TestVectors
working-directory: ./TestVectors
run: |
# Clear MPL from cache
# We have to do this because MakeFile does not do this yet. The MakeFile automatically builds and deploys dependencies
# instead it should be picking it up from Maven.
rm -rf ~/.m2/repository/software/amazon/cryptography/aws-cryptographic-material-providers
make test_java
19 changes: 15 additions & 4 deletions DynamoDbEncryption/runtimes/java/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
import java.io.File
import java.io.FileInputStream
import java.util.Properties
import java.net.URI
import javax.annotation.Nullable
import org.gradle.api.tasks.testing.logging.TestExceptionFormat
Expand All @@ -11,10 +14,18 @@ plugins {
id("io.github.gradle-nexus.publish-plugin") version "1.3.0"
}

var props = Properties().apply {
load(FileInputStream(File(rootProject.rootDir, "../../../project.properties")))
}

group = "software.amazon.cryptography"
version = "3.1.0"
version = props.getProperty("projectJavaVersion")
description = "Aws Database Encryption Sdk for DynamoDb Java"

var mplVersion = props.getProperty("mplDependencyJavaVersion")
var dafnyRuntimeJavaVersion = props.getProperty("dafnyRuntimeJavaVersion")
var smithyDafnyJavaConversionVersion = props.getProperty("smithyDafnyJavaConversionVersion")

java {
toolchain.languageVersion.set(JavaLanguageVersion.of(8))
sourceSets["main"].java {
Expand Down Expand Up @@ -68,9 +79,9 @@ repositories {
val dynamodb by configurations.creating

dependencies {
implementation("org.dafny:DafnyRuntime:4.1.0")
implementation("software.amazon.smithy.dafny:conversion:0.1")
implementation("software.amazon.cryptography:aws-cryptographic-material-providers:1.0.0")
implementation("org.dafny:DafnyRuntime:${dafnyRuntimeJavaVersion}")
implementation("software.amazon.smithy.dafny:conversion:${smithyDafnyJavaConversionVersion}")
implementation("software.amazon.cryptography:aws-cryptographic-material-providers:${mplVersion}")

implementation(platform("software.amazon.awssdk:bom:2.20.128"))
implementation("software.amazon.awssdk:dynamodb")
Expand Down
14 changes: 12 additions & 2 deletions Examples/runtimes/java/DynamoDbEncryption/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
import java.io.File
import java.io.FileInputStream
import java.util.Properties
import java.net.URI
import javax.annotation.Nullable
import org.gradle.api.tasks.testing.logging.TestExceptionFormat
Expand All @@ -9,10 +12,17 @@ plugins {
id("io.freefair.lombok") version "8.1.0"
}

var props = Properties().apply {
load(FileInputStream(File(rootProject.rootDir, "../../../../project.properties")))
}

group = "software.amazon.cryptography"
version = "1.0-SNAPSHOT"
description = "DynamoDbEncryptionExamples"

var mplVersion = props.getProperty("mplDependencyJavaVersion")
var ddbecVersion = props.getProperty("projectJavaVersion")

java {
toolchain.languageVersion.set(JavaLanguageVersion.of(8))
sourceSets["main"].java {
Expand Down Expand Up @@ -57,8 +67,8 @@ repositories {
}

dependencies {
implementation("software.amazon.cryptography:aws-database-encryption-sdk-dynamodb:3.1.0")
implementation("software.amazon.cryptography:aws-cryptographic-material-providers:1.0.0")
implementation("software.amazon.cryptography:aws-database-encryption-sdk-dynamodb:${ddbecVersion}")
implementation("software.amazon.cryptography:aws-cryptographic-material-providers:${mplVersion}")

implementation(platform("software.amazon.awssdk:bom:2.19.1"))
implementation("software.amazon.awssdk:arns")
Expand Down
14 changes: 12 additions & 2 deletions Examples/runtimes/java/Migration/DDBECToAWSDBE/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
import java.io.File
import java.io.FileInputStream
import java.util.Properties
import java.net.URI
import javax.annotation.Nullable
import org.gradle.api.tasks.testing.logging.TestExceptionFormat
Expand All @@ -8,10 +11,17 @@ plugins {
`java-library`
}

var props = Properties().apply {
load(FileInputStream(File(rootProject.rootDir, "../../../../../project.properties")))
}

group = "software.amazon.cryptography"
version = "1.0-SNAPSHOT"
description = "AWSDatabaseEncryptionSDKMigrationExamples"

var mplVersion = props.getProperty("mplDependencyJavaVersion")
var ddbecVersion = props.getProperty("projectJavaVersion")

java {
toolchain.languageVersion.set(JavaLanguageVersion.of(8))
sourceSets["main"].java {
Expand Down Expand Up @@ -56,8 +66,8 @@ repositories {
}

dependencies {
implementation("software.amazon.cryptography:aws-database-encryption-sdk-dynamodb:3.1.0")
implementation("software.amazon.cryptography:aws-cryptographic-material-providers:1.0.0")
implementation("software.amazon.cryptography:aws-database-encryption-sdk-dynamodb:${ddbecVersion}")
implementation("software.amazon.cryptography:aws-cryptographic-material-providers:${mplVersion}")

implementation(platform("software.amazon.awssdk:bom:2.19.1"))
implementation("software.amazon.awssdk:dynamodb")
Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
import java.io.File
import java.io.FileInputStream
import java.util.Properties
import java.net.URI
import javax.annotation.Nullable
import org.gradle.api.tasks.testing.logging.TestExceptionFormat
Expand All @@ -8,10 +11,17 @@ plugins {
`java-library`
}

var props = Properties().apply {
load(FileInputStream(File(rootProject.rootDir, "../../../../../project.properties")))
}

group = "software.amazon.cryptography"
version = "1.0-SNAPSHOT"
description = "AWSDatabaseEncryptionSDKMigrationExamples"

var mplVersion = props.getProperty("mplDependencyJavaVersion")
var ddbecVersion = props.getProperty("projectJavaVersion")

java {
toolchain.languageVersion.set(JavaLanguageVersion.of(8))
sourceSets["main"].java {
Expand Down Expand Up @@ -56,8 +66,8 @@ repositories {
}

dependencies {
implementation("software.amazon.cryptography:aws-database-encryption-sdk-dynamodb:3.1.0")
implementation("software.amazon.cryptography:aws-cryptographic-material-providers:1.0.0")
implementation("software.amazon.cryptography:aws-database-encryption-sdk-dynamodb:${ddbecVersion}")
implementation("software.amazon.cryptography:aws-cryptographic-material-providers:${mplVersion}")

implementation(platform("software.amazon.awssdk:bom:2.19.1"))
implementation("software.amazon.awssdk:dynamodb")
Expand Down
20 changes: 16 additions & 4 deletions TestVectors/runtimes/java/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
import java.io.File
import java.io.FileInputStream
import java.util.Properties
import java.net.URI
import javax.annotation.Nullable
import org.gradle.api.tasks.testing.logging.TestExceptionFormat
Expand All @@ -12,6 +15,15 @@ plugins {
`maven-publish`
}

var props = Properties().apply {
load(FileInputStream(File(rootProject.rootDir, "../../../project.properties")))
}

var mplVersion = props.getProperty("mplDependencyJavaVersion")
var ddbecVersion = props.getProperty("projectJavaVersion")
var dafnyRuntimeJavaVersion = props.getProperty("dafnyRuntimeJavaVersion")
var smithyDafnyJavaConversionVersion = props.getProperty("smithyDafnyJavaConversionVersion")

group = "software.amazon.cryptography"
version = "1.0-SNAPSHOT"
description = "TestVectorsDynamoDbEncryption"
Expand Down Expand Up @@ -70,10 +82,10 @@ repositories {
val dynamodb by configurations.creating

dependencies {
implementation("org.dafny:DafnyRuntime:4.1.0")
implementation("software.amazon.smithy.dafny:conversion:0.1")
implementation("software.amazon.cryptography:aws-cryptographic-material-providers:1.0.0")
implementation("software.amazon.cryptography:aws-database-encryption-sdk-dynamodb:3.1.0")
implementation("org.dafny:DafnyRuntime:${dafnyRuntimeJavaVersion}")
implementation("software.amazon.smithy.dafny:conversion:${smithyDafnyJavaConversionVersion}")
implementation("software.amazon.cryptography:aws-cryptographic-material-providers:${mplVersion}")
implementation("software.amazon.cryptography:aws-database-encryption-sdk-dynamodb:${ddbecVersion}")
implementation("software.amazon.cryptography:TestAwsCryptographicMaterialProviders:1.0-SNAPSHOT")

implementation(platform("software.amazon.awssdk:bom:2.20.138"))
Expand Down
4 changes: 3 additions & 1 deletion codebuild/staging/release-staging.yml
Original file line number Diff line number Diff line change
Expand Up @@ -47,8 +47,10 @@ phases:
- aws sts get-caller-identity
build:
commands:
- cd DynamoDbEncryption/
# Validate the MPL submodule points to the correct release
- scripts/validate-mpl-submodule.sh
# Build and deploy to maven local
- cd DynamoDbEncryption/
- make transpile_implementation_java
- make transpile_test_java
- make mvn_local_deploy
Expand Down
4 changes: 4 additions & 0 deletions project.properties
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
projectJavaVersion=3.1.0
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: should this be dbesdkJavaVersion instead?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ah, I was thinking that it would be more obvious that this meant "this project". I.e. if the MPL implemented a similar thing, it would use projectJavaVersion to mean what Java version of the MPL we're on.

mplDependencyJavaVersion=1.0.0
dafnyRuntimeJavaVersion=4.1.0
smithyDafnyJavaConversionVersion=0.1
22 changes: 22 additions & 0 deletions scripts/validate-mpl-submodule.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
#!/bin/bash

# A tiny script to verify that the MPL submodule points to a valid release,
# and that this release matches the MPL dependency defined in this repo's gradle projects.
# Run this script from the root of the repo.

# Get the MPL version used in DB-ESDK's build.gradle
DBESDK_MPL_VERSION=$(cat project.properties | grep "mplDependencyJavaVersion" | sed 's/^.*=//')

# Get version from tag of HEAD in MaterialProviders submodule
cd submodules/MaterialProviders
MPL_SUBMODULE_VERSION=$(git tag --points-at HEAD | sed 's/v//');
if [ "$MPL_SUBMODULE_VERSION" == "" ]; then
echo "Invalid MaterialProviders submodule. The submodule must be set to a commit that is tagged as a release.";
exit 1;
fi

# Validate this version matches the version used in the DB-ESDK's build.gradle
if [ "$DBESDK_MPL_VERSION" != "$MPL_SUBMODULE_VERSION" ]; then
echo "Invalid MaterialProviders submodule. Mismatch between the submodule version ("$MPL_SUBMODULE_VERSION") and the version of the configured dependency in project.properties ("$DBESDK_MPL_VERSION").";
exit 1;
fi