Skip to content

Commit 497c332

Browse files
authored
chore: Always test/build with locally built MPL and add release safeg… (#422)
1 parent 9b2e41c commit 497c332

File tree

10 files changed

+96
-23
lines changed

10 files changed

+96
-23
lines changed

Diff for: .github/workflows/ci_test_java.yml

-4
Original file line numberDiff line numberDiff line change
@@ -78,8 +78,4 @@ jobs:
7878
- name: Test ${{ matrix.library }}
7979
working-directory: ./${{ matrix.library }}
8080
run: |
81-
# Clear MPL from cache
82-
# We have to do this because MakeFile does not do this yet. The MakeFile automatically builds and deploys dependencies
83-
# instead it should be picking it up from Maven.
84-
rm -rf ~/.m2/repository/software/amazon/cryptography/aws-cryptographic-material-providers
8581
make test_java

Diff for: .github/workflows/ci_test_vector_java.yml

-4
Original file line numberDiff line numberDiff line change
@@ -60,8 +60,4 @@ jobs:
6060
- name: Test TestVectors
6161
working-directory: ./TestVectors
6262
run: |
63-
# Clear MPL from cache
64-
# We have to do this because MakeFile does not do this yet. The MakeFile automatically builds and deploys dependencies
65-
# instead it should be picking it up from Maven.
66-
rm -rf ~/.m2/repository/software/amazon/cryptography/aws-cryptographic-material-providers
6763
make test_java

Diff for: DynamoDbEncryption/runtimes/java/build.gradle.kts

+15-4
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
import java.io.File
2+
import java.io.FileInputStream
3+
import java.util.Properties
14
import java.net.URI
25
import javax.annotation.Nullable
36
import org.gradle.api.tasks.testing.logging.TestExceptionFormat
@@ -11,10 +14,18 @@ plugins {
1114
id("io.github.gradle-nexus.publish-plugin") version "1.3.0"
1215
}
1316

17+
var props = Properties().apply {
18+
load(FileInputStream(File(rootProject.rootDir, "../../../project.properties")))
19+
}
20+
1421
group = "software.amazon.cryptography"
15-
version = "3.1.0"
22+
version = props.getProperty("projectJavaVersion")
1623
description = "Aws Database Encryption Sdk for DynamoDb Java"
1724

25+
var mplVersion = props.getProperty("mplDependencyJavaVersion")
26+
var dafnyRuntimeJavaVersion = props.getProperty("dafnyRuntimeJavaVersion")
27+
var smithyDafnyJavaConversionVersion = props.getProperty("smithyDafnyJavaConversionVersion")
28+
1829
java {
1930
toolchain.languageVersion.set(JavaLanguageVersion.of(8))
2031
sourceSets["main"].java {
@@ -68,9 +79,9 @@ repositories {
6879
val dynamodb by configurations.creating
6980

7081
dependencies {
71-
implementation("org.dafny:DafnyRuntime:4.1.0")
72-
implementation("software.amazon.smithy.dafny:conversion:0.1")
73-
implementation("software.amazon.cryptography:aws-cryptographic-material-providers:1.0.0")
82+
implementation("org.dafny:DafnyRuntime:${dafnyRuntimeJavaVersion}")
83+
implementation("software.amazon.smithy.dafny:conversion:${smithyDafnyJavaConversionVersion}")
84+
implementation("software.amazon.cryptography:aws-cryptographic-material-providers:${mplVersion}")
7485

7586
implementation(platform("software.amazon.awssdk:bom:2.20.128"))
7687
implementation("software.amazon.awssdk:dynamodb")

Diff for: Examples/runtimes/java/DynamoDbEncryption/build.gradle.kts

+12-2
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
import java.io.File
2+
import java.io.FileInputStream
3+
import java.util.Properties
14
import java.net.URI
25
import javax.annotation.Nullable
36
import org.gradle.api.tasks.testing.logging.TestExceptionFormat
@@ -9,10 +12,17 @@ plugins {
912
id("io.freefair.lombok") version "8.1.0"
1013
}
1114

15+
var props = Properties().apply {
16+
load(FileInputStream(File(rootProject.rootDir, "../../../../project.properties")))
17+
}
18+
1219
group = "software.amazon.cryptography"
1320
version = "1.0-SNAPSHOT"
1421
description = "DynamoDbEncryptionExamples"
1522

23+
var mplVersion = props.getProperty("mplDependencyJavaVersion")
24+
var ddbecVersion = props.getProperty("projectJavaVersion")
25+
1626
java {
1727
toolchain.languageVersion.set(JavaLanguageVersion.of(8))
1828
sourceSets["main"].java {
@@ -57,8 +67,8 @@ repositories {
5767
}
5868

5969
dependencies {
60-
implementation("software.amazon.cryptography:aws-database-encryption-sdk-dynamodb:3.1.0")
61-
implementation("software.amazon.cryptography:aws-cryptographic-material-providers:1.0.0")
70+
implementation("software.amazon.cryptography:aws-database-encryption-sdk-dynamodb:${ddbecVersion}")
71+
implementation("software.amazon.cryptography:aws-cryptographic-material-providers:${mplVersion}")
6272

6373
implementation(platform("software.amazon.awssdk:bom:2.19.1"))
6474
implementation("software.amazon.awssdk:arns")

Diff for: Examples/runtimes/java/Migration/DDBECToAWSDBE/build.gradle.kts

+12-2
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
import java.io.File
2+
import java.io.FileInputStream
3+
import java.util.Properties
14
import java.net.URI
25
import javax.annotation.Nullable
36
import org.gradle.api.tasks.testing.logging.TestExceptionFormat
@@ -8,10 +11,17 @@ plugins {
811
`java-library`
912
}
1013

14+
var props = Properties().apply {
15+
load(FileInputStream(File(rootProject.rootDir, "../../../../../project.properties")))
16+
}
17+
1118
group = "software.amazon.cryptography"
1219
version = "1.0-SNAPSHOT"
1320
description = "AWSDatabaseEncryptionSDKMigrationExamples"
1421

22+
var mplVersion = props.getProperty("mplDependencyJavaVersion")
23+
var ddbecVersion = props.getProperty("projectJavaVersion")
24+
1525
java {
1626
toolchain.languageVersion.set(JavaLanguageVersion.of(8))
1727
sourceSets["main"].java {
@@ -56,8 +66,8 @@ repositories {
5666
}
5767

5868
dependencies {
59-
implementation("software.amazon.cryptography:aws-database-encryption-sdk-dynamodb:3.1.0")
60-
implementation("software.amazon.cryptography:aws-cryptographic-material-providers:1.0.0")
69+
implementation("software.amazon.cryptography:aws-database-encryption-sdk-dynamodb:${ddbecVersion}")
70+
implementation("software.amazon.cryptography:aws-cryptographic-material-providers:${mplVersion}")
6171

6272
implementation(platform("software.amazon.awssdk:bom:2.19.1"))
6373
implementation("software.amazon.awssdk:dynamodb")

Diff for: Examples/runtimes/java/Migration/PlaintextToAWSDBE/build.gradle.kts

+12-2
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
import java.io.File
2+
import java.io.FileInputStream
3+
import java.util.Properties
14
import java.net.URI
25
import javax.annotation.Nullable
36
import org.gradle.api.tasks.testing.logging.TestExceptionFormat
@@ -8,10 +11,17 @@ plugins {
811
`java-library`
912
}
1013

14+
var props = Properties().apply {
15+
load(FileInputStream(File(rootProject.rootDir, "../../../../../project.properties")))
16+
}
17+
1118
group = "software.amazon.cryptography"
1219
version = "1.0-SNAPSHOT"
1320
description = "AWSDatabaseEncryptionSDKMigrationExamples"
1421

22+
var mplVersion = props.getProperty("mplDependencyJavaVersion")
23+
var ddbecVersion = props.getProperty("projectJavaVersion")
24+
1525
java {
1626
toolchain.languageVersion.set(JavaLanguageVersion.of(8))
1727
sourceSets["main"].java {
@@ -56,8 +66,8 @@ repositories {
5666
}
5767

5868
dependencies {
59-
implementation("software.amazon.cryptography:aws-database-encryption-sdk-dynamodb:3.1.0")
60-
implementation("software.amazon.cryptography:aws-cryptographic-material-providers:1.0.0")
69+
implementation("software.amazon.cryptography:aws-database-encryption-sdk-dynamodb:${ddbecVersion}")
70+
implementation("software.amazon.cryptography:aws-cryptographic-material-providers:${mplVersion}")
6171

6272
implementation(platform("software.amazon.awssdk:bom:2.19.1"))
6373
implementation("software.amazon.awssdk:dynamodb")

Diff for: TestVectors/runtimes/java/build.gradle.kts

+16-4
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
import java.io.File
2+
import java.io.FileInputStream
3+
import java.util.Properties
14
import java.net.URI
25
import javax.annotation.Nullable
36
import org.gradle.api.tasks.testing.logging.TestExceptionFormat
@@ -12,6 +15,15 @@ plugins {
1215
`maven-publish`
1316
}
1417

18+
var props = Properties().apply {
19+
load(FileInputStream(File(rootProject.rootDir, "../../../project.properties")))
20+
}
21+
22+
var mplVersion = props.getProperty("mplDependencyJavaVersion")
23+
var ddbecVersion = props.getProperty("projectJavaVersion")
24+
var dafnyRuntimeJavaVersion = props.getProperty("dafnyRuntimeJavaVersion")
25+
var smithyDafnyJavaConversionVersion = props.getProperty("smithyDafnyJavaConversionVersion")
26+
1527
group = "software.amazon.cryptography"
1628
version = "1.0-SNAPSHOT"
1729
description = "TestVectorsDynamoDbEncryption"
@@ -70,10 +82,10 @@ repositories {
7082
val dynamodb by configurations.creating
7183

7284
dependencies {
73-
implementation("org.dafny:DafnyRuntime:4.1.0")
74-
implementation("software.amazon.smithy.dafny:conversion:0.1")
75-
implementation("software.amazon.cryptography:aws-cryptographic-material-providers:1.0.0")
76-
implementation("software.amazon.cryptography:aws-database-encryption-sdk-dynamodb:3.1.0")
85+
implementation("org.dafny:DafnyRuntime:${dafnyRuntimeJavaVersion}")
86+
implementation("software.amazon.smithy.dafny:conversion:${smithyDafnyJavaConversionVersion}")
87+
implementation("software.amazon.cryptography:aws-cryptographic-material-providers:${mplVersion}")
88+
implementation("software.amazon.cryptography:aws-database-encryption-sdk-dynamodb:${ddbecVersion}")
7789
implementation("software.amazon.cryptography:TestAwsCryptographicMaterialProviders:1.0-SNAPSHOT")
7890

7991
implementation(platform("software.amazon.awssdk:bom:2.20.138"))

Diff for: codebuild/staging/release-staging.yml

+3-1
Original file line numberDiff line numberDiff line change
@@ -47,8 +47,10 @@ phases:
4747
- aws sts get-caller-identity
4848
build:
4949
commands:
50-
- cd DynamoDbEncryption/
50+
# Validate the MPL submodule points to the correct release
51+
- scripts/validate-mpl-submodule.sh
5152
# Build and deploy to maven local
53+
- cd DynamoDbEncryption/
5254
- make transpile_implementation_java
5355
- make transpile_test_java
5456
- make mvn_local_deploy

Diff for: project.properties

+4
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
projectJavaVersion=3.1.0
2+
mplDependencyJavaVersion=1.0.0
3+
dafnyRuntimeJavaVersion=4.1.0
4+
smithyDafnyJavaConversionVersion=0.1

Diff for: scripts/validate-mpl-submodule.sh

+22
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
#!/bin/bash
2+
3+
# A tiny script to verify that the MPL submodule points to a valid release,
4+
# and that this release matches the MPL dependency defined in this repo's gradle projects.
5+
# Run this script from the root of the repo.
6+
7+
# Get the MPL version used in DB-ESDK's build.gradle
8+
DBESDK_MPL_VERSION=$(cat project.properties | grep "mplDependencyJavaVersion" | sed 's/^.*=//')
9+
10+
# Get version from tag of HEAD in MaterialProviders submodule
11+
cd submodules/MaterialProviders
12+
MPL_SUBMODULE_VERSION=$(git tag --points-at HEAD | sed 's/v//');
13+
if [ "$MPL_SUBMODULE_VERSION" == "" ]; then
14+
echo "Invalid MaterialProviders submodule. The submodule must be set to a commit that is tagged as a release.";
15+
exit 1;
16+
fi
17+
18+
# Validate this version matches the version used in the DB-ESDK's build.gradle
19+
if [ "$DBESDK_MPL_VERSION" != "$MPL_SUBMODULE_VERSION" ]; then
20+
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").";
21+
exit 1;
22+
fi

0 commit comments

Comments
 (0)