Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
190 commits
Select commit Hold shift + click to select a range
8b38110
5688: Add Suites for Expensive ST's
ca61688 Oct 2, 2025
6676375
5688: Add different short IDs for parallel ST runs
ca61688 Oct 2, 2025
268c28c
5688: Update shortId for paralised STs
ca61688 Oct 2, 2025
cd5abd3
5688: Test paralel STs with different instances
ca61688 Oct 2, 2025
0454d24
5688: Test paralel STs with different instances
ca61688 Oct 2, 2025
73401d6
5688: Test paralel STs with different instances
ca61688 Oct 2, 2025
da68bb6
5688: Test paralel STs without parallel part
ca61688 Oct 2, 2025
fd3b6b9
5688: Add loging to runTests script
ca61688 Oct 3, 2025
8d85cba
5688: Remove uneeded mvn clean
ca61688 Oct 3, 2025
c701607
5688: Add logging to deployTests.sh
ca61688 Oct 6, 2025
c4371ba
5688: Add delay to parallel maven run
ca61688 Oct 6, 2025
4aa7cb2
5688: Add test script for running parallel builds
ca61688 Oct 9, 2025
10de8a7
5688: Update nightly runTests script to run performance tests in para…
ca61688 Oct 9, 2025
144272c
5688: Update dir location in runTests
ca61688 Oct 9, 2025
5d23ce6
5688: Update runTests performance mode to run dummy tests
ca61688 Oct 9, 2025
3ea4179
5688: Move to right dir in runTests.sh
ca61688 Oct 9, 2025
8cbf6ec
5688: Move to right dir in runTests.sh
ca61688 Oct 9, 2025
73be4e6
5688: Fix build error
ca61688 Oct 9, 2025
3dc56e1
5688: Update runTests to use duplicated maven repos
ca61688 Oct 9, 2025
d954b70
5688: Move performance test paralising into functions
ca61688 Oct 10, 2025
7029fae
5688: Use correct dir path in runTests
ca61688 Oct 10, 2025
5c90bde
5688: Copy python into paralise folders
ca61688 Oct 10, 2025
6e82329
5688: Edit which tests used for paralise test
ca61688 Oct 10, 2025
38a722a
5688: Increase wait on paralise test runs
ca61688 Oct 10, 2025
0717525
5688: Test paralising with multiple tests per suite
ca61688 Oct 13, 2025
8c8394e
5688: Test with 3 parallel suites
ca61688 Oct 13, 2025
b1d8524
5688: Make runTests paralelise the slow and expensive tests
ca61688 Oct 14, 2025
a875ff5
5688: Add new slow and expensive suites and tags
ca61688 Oct 14, 2025
bd74d7b
5688: Revert changes to deployTest
ca61688 Oct 14, 2025
c8dc2ab
5688: Switch runTests to print mode for testing
ca61688 Oct 14, 2025
d816571
5688: Turn some commands into comments for testing
ca61688 Oct 14, 2025
69e4038
5688: Uncomment folder removal in runTests
ca61688 Oct 14, 2025
45100db
5688: Prepare runTests script for test run
ca61688 Oct 14, 2025
6897bf7
5688: Add suite start and end time logging to runTests
ca61688 Oct 15, 2025
50be93f
5688: Shorten Multi Tables System Test Instance short name
ca61688 Oct 15, 2025
5f4d963
5688: Add SelectPackages Anonation to test suites
ca61688 Oct 15, 2025
2ad0ab0
5688: Update Slow1 suite to help it find tests
ca61688 Oct 15, 2025
088c0b7
5688: Prepare runTests for full slow test
ca61688 Oct 15, 2025
28f72e9
5688: Fix multi tables instance name
ca61688 Oct 15, 2025
16229f4
5688: Fix test folder removal
ca61688 Oct 15, 2025
113694b
5688: Prep for single suite performance test
ca61688 Oct 15, 2025
497e179
5688: Test parallel tests without delay
ca61688 Oct 16, 2025
89c6699
5688: Add Test Tags for STs
ca61688 Oct 16, 2025
0dfda38
5688: Fix error in runTests
ca61688 Oct 16, 2025
df4f882
5688: Add small delay to secondSuite
ca61688 Oct 16, 2025
9c851bf
5688: Reduce parallel staggering down to 60 seconds
ca61688 Oct 16, 2025
d04dd85
5688: Fix error in runTests
ca61688 Oct 16, 2025
01045b7
5688: Code clean up
ca61688 Oct 20, 2025
e642481
Merge branch 'develop' into 5688-paralise-st
ca61688 Oct 20, 2025
3491d9e
5688: Fix issue after pulling in develop
ca61688 Oct 20, 2025
b2efb58
5688: Code clean up
ca61688 Oct 20, 2025
08b692f
Merge branch 'develop' into 5688-paralise-st
ca61688 Oct 20, 2025
34c7653
5688: Minor code improvments
ca61688 Oct 21, 2025
e96d86f
5688: Copy rust folder and only write suite name in one place
ca61688 Oct 21, 2025
99d7f18
5688: Switch two quick STs to a test tag
ca61688 Oct 21, 2025
6ce15c3
5688: Test running sudo in script
ca61688 Oct 22, 2025
b0bba39
5688: Test running sudo in script
ca61688 Oct 22, 2025
91a8a5e
5688: Add sudo command to file copying in runTests nightly
ca61688 Oct 22, 2025
9859ebb
5688: add sudo to copy command in runTests
ca61688 Oct 22, 2025
ebbcf45
5688: test copying folder method
ca61688 Oct 22, 2025
9e48184
5688: test copying folder method
ca61688 Oct 22, 2025
62c7871
5688: Added logging to runTests.sh
ca61688 Oct 22, 2025
0c7ac78
5988: Test fix for python issue
ca61688 Oct 22, 2025
f391744
5988: Test fix for python issue
ca61688 Oct 22, 2025
e2e59f1
5988: Test fix for python issue
ca61688 Oct 22, 2025
7ee873e
5988: Test fix for python issue
ca61688 Oct 22, 2025
6b0314b
5988: Test fix for python issue
ca61688 Oct 22, 2025
f808e75
5988: Test fix for python issue
ca61688 Oct 22, 2025
003a210
5988: Test fix for python issue
ca61688 Oct 22, 2025
85d90c9
5988: Test fix for python issue
ca61688 Oct 22, 2025
c04c4b4
5988: Test fix for python issue
ca61688 Oct 22, 2025
84be994
5688: Add -p flag to folder copying to preserve permissions
ca61688 Oct 23, 2025
57aee99
5688: Revert changes for testing runTests script
ca61688 Oct 24, 2025
48165d9
5688: Only copy non quick folder in test suite
ca61688 Oct 24, 2025
eb99c4f
Merge Main
ca61688 Oct 24, 2025
2ca1963
5688: Add expensive and slow tag back in
ca61688 Oct 24, 2025
3d686a7
5688: Add expensive and slow tag back in
ca61688 Oct 24, 2025
252e55f
5688: Have Slow1-3 and Expensive1-3 tags add Slow or Expensive
ca61688 Oct 24, 2025
e3c466a
5688: Add checkInstalled script
ca61688 Oct 27, 2025
5564f43
5688: Add checkInstalled script
ca61688 Oct 27, 2025
86a8a78
5688: Add checkInstalled script
ca61688 Oct 27, 2025
0b1e74a
5688: Test copying files with rsync
ca61688 Oct 27, 2025
1893d77
5688: Test copying files with rsync
ca61688 Oct 27, 2025
b5feb42
5688: Test copying files with rsync
ca61688 Oct 27, 2025
4dc6b4a
5688: Test copying files with rsync
ca61688 Oct 27, 2025
687fed6
5688: Update runTests to copy folder using rsync
ca61688 Oct 27, 2025
b79cdc1
5688: Update runTests to copy folder using rsync
ca61688 Oct 27, 2025
ad057f8
5688: Update runTests to copy folder using rsync
ca61688 Oct 27, 2025
ad296d5
5688: Test time for rsync vs cp
ca61688 Oct 27, 2025
b60cb91
5688: Test time for rsync vs cp
ca61688 Oct 27, 2025
df6f6b9
5688: Test time for rsync vs cp
ca61688 Oct 27, 2025
4def0c0
5688: Test time for rsync vs cp
ca61688 Oct 27, 2025
4598ccf
5688: Test time for rsync vs cp
ca61688 Oct 27, 2025
9a6f275
5688: Test time for rsync vs cp
ca61688 Oct 27, 2025
6aa144d
5688: Test time for rsync vs cp
ca61688 Oct 27, 2025
131113e
5688: Test rsync vs cp
ca61688 Oct 28, 2025
9770560
5688: Add documentation for current slow and expensive tests
ca61688 Oct 28, 2025
bbdbf80
5688: Add documentation for current slow and expensive tests
ca61688 Oct 28, 2025
dc33841
5688: Add more logging to runTests
ca61688 Oct 29, 2025
23005ab
5688: Add return from CheckInstalled
ca61688 Oct 29, 2025
a05fe99
5688: Fix rsync pausing issue
ca61688 Oct 29, 2025
5e3e7f1
5688: Fix rsync pausing issue
ca61688 Oct 29, 2025
9ad20f7
5688: Fix rsync pausing issue
ca61688 Oct 29, 2025
6643cb6
5688: Fix rsync pausing issue
ca61688 Oct 29, 2025
60d11a1
5688: Fix rsync pausing issue
ca61688 Oct 29, 2025
9a9c003
5688: Fix rsync pausing issue
ca61688 Oct 29, 2025
ddfdd0c
5688: Fix rsync pausing issue
ca61688 Oct 29, 2025
a21de9d
5688: Fix rsync pausing issue
ca61688 Oct 29, 2025
d904620
5688: Fix rsync pausing issue
ca61688 Oct 29, 2025
3d8ba07
5688: Fix rsync pausing issue
ca61688 Oct 29, 2025
b1d8876
5688: Fix rsync pausing issue
ca61688 Oct 29, 2025
082c7e4
5688: Fix rsync pausing issue
ca61688 Oct 29, 2025
7c259f1
5688: Fix rsync pausing issue
ca61688 Oct 29, 2025
f189ed1
5688: Fix rsync pausing issue
ca61688 Oct 29, 2025
35a90c7
5688: Fix rsync pausing issue
ca61688 Oct 29, 2025
d32e6bd
5688: Fix rsync pausing issue
ca61688 Oct 29, 2025
4f55223
5688: Fix rsync pausing issue
ca61688 Oct 29, 2025
094f791
5688: Fix rsync pausing issue
ca61688 Oct 29, 2025
3450e0f
5688: Fix rsync pausing issue
ca61688 Oct 29, 2025
f7fdec3
5688: Fix rsync pausing issue
ca61688 Oct 29, 2025
b3acfa0
5688: Fix rsync pausing issue
ca61688 Oct 29, 2025
662aaeb
5688: Fix rsync pausing issue
ca61688 Oct 29, 2025
c18425c
5688: Fix rsync pausing issue
ca61688 Oct 29, 2025
1ce837b
5688: Fix rsync pausing issue
ca61688 Oct 29, 2025
c923695
5688: Fix rsync pausing issue
ca61688 Oct 29, 2025
7904929
5688: Fix rsync pausing issue
ca61688 Oct 29, 2025
1cc669c
5688: Fix rsync pausing issue
ca61688 Oct 29, 2025
8dc6a83
5688: Code tidyup
ca61688 Oct 29, 2025
6e5f3c2
5688: Reoganise slow tests by suite
ca61688 Oct 30, 2025
1ff58e4
5688: Disable expensive2 and 3 for testing
ca61688 Oct 30, 2025
6bb3293
5688: Test for removing delayed start
ca61688 Nov 3, 2025
b480252
5688: Add createMultiPlatformBuilder flag for system tests
ca61688 Nov 4, 2025
599edcb
5688: Test functional sts with no delayed start
ca61688 Nov 4, 2025
8126dc8
5688: Correct LOGGER usage
ca61688 Nov 4, 2025
caf6030
5688: Code Cleanup
ca61688 Nov 4, 2025
5754d0a
Merge Develop into branch
ca61688 Nov 4, 2025
21b88e2
Merge branch 'develop' into 5688-paralise-st
ca61688 Nov 4, 2025
050e354
5688: Rebalance slow suite tests
ca61688 Nov 4, 2025
2de7ef7
5688: Run 1 quick test
ca61688 Nov 4, 2025
c0a449a
5688: Run 1 quick test
ca61688 Nov 4, 2025
2090d06
5688: Test 2 quick tests in parallel
ca61688 Nov 4, 2025
9141aa7
5688: Test 2 quick tests in parallel
ca61688 Nov 4, 2025
2b17d82
5688: Try just slow1 test
ca61688 Nov 5, 2025
2087d13
5688: Test 2 parallel
ca61688 Nov 5, 2025
8b9fb16
5688: Test full performance
ca61688 Nov 5, 2025
cfb959f
5688: Test full performance
ca61688 Nov 5, 2025
91cfec3
5688: Test just performance
ca61688 Nov 5, 2025
05e0965
5688: Add details to system test documentation for running full perfo…
ca61688 Nov 6, 2025
b887b1e
5688: Uncomment code in runTests
ca61688 Nov 6, 2025
7cf8031
Merge branch 'develop' into 5688-paralise-st
ca61688 Nov 6, 2025
e06b129
5688: Align ST's in suites by instance type
ca61688 Nov 6, 2025
0619943
5688: Test adding delayed starts back in
ca61688 Nov 7, 2025
b0079e6
5688: Test adding delayed starts back in
ca61688 Nov 7, 2025
64ae80a
5688: Update system test reccomendations
ca61688 Nov 10, 2025
3ec6e5d
Merge Develop into branch
ca61688 Nov 10, 2025
6b63c71
5688: Wait correctly in runTests nightly
ca61688 Nov 10, 2025
97dc3f6
5688: Wait correctly in runTests nightly
ca61688 Nov 10, 2025
aa50f32
5688: Wait correctly in runTests nightly
ca61688 Nov 10, 2025
71c0e24
5688: Upgrade ec2 default instanc size and volume size
ca61688 Nov 11, 2025
95844a9
5688: fix test
ca61688 Nov 11, 2025
b310ec2
5688: Update system test suite names to include systemTest
ca61688 Nov 11, 2025
0e3d08f
5688: Update system test suite names to include systemTest
ca61688 Nov 11, 2025
1d1e61e
5688: Address minor review comments
ca61688 Nov 11, 2025
6bd74ff
5688: Set create multi platform build boolean to default to true
ca61688 Nov 11, 2025
f59597b
5688: Add system-test-suites.md
ca61688 Nov 11, 2025
b0c99bf
5688: Remove checkInstalled script and use directly in runTests
ca61688 Nov 11, 2025
65864f1
5688: Fix issue in runTests script
ca61688 Nov 11, 2025
cfb4154
5688: Fix issue in runTests script
ca61688 Nov 11, 2025
72c13a5
5688: Try using rsync from dockerfile
ca61688 Nov 11, 2025
eae4a4b
5688: Remove copying quick folder before oters
ca61688 Nov 11, 2025
9370e08
5688: Correct naming of expensive system test suites in runTests
ca61688 Nov 11, 2025
89af327
5688: Improve runTests script
ca61688 Nov 11, 2025
2d35ddd
Merge branch 'develop' into 5688-paralise-st
ca61688 Nov 11, 2025
cb090f3
5688: Update system test documentation
ca61688 Nov 12, 2025
d5c0c34
5688: Have test suites log more
ca61688 Nov 13, 2025
ddad885
5688: Have test suites log more
ca61688 Nov 13, 2025
742d951
5688: Have test suites log more
ca61688 Nov 13, 2025
afaa879
5688: Have test suites log more
ca61688 Nov 13, 2025
f3ef870
5688: Have test suites log more
ca61688 Nov 13, 2025
892a8b1
5688: Have test suites log more
ca61688 Nov 13, 2025
226b7a8
5688: Change suite logs name
ca61688 Nov 14, 2025
9be0074
5688: Update system test documentation
ca61688 Nov 14, 2025
73c6d63
Merge branch 'develop' into 5688-paralise-st
ca61688 Nov 14, 2025
884b409
5688: Revert rust cargo lock changes
ca61688 Nov 14, 2025
60b15f7
5688: Update echo in runTests
ca61688 Nov 14, 2025
464198b
5688: Update echo in runTests
ca61688 Nov 14, 2025
7106aea
5688: Improve documentation for system tests
ca61688 Nov 18, 2025
f6d3dab
Merge branch 'develop' into 5688-paralise-st
patchwork01 Nov 19, 2025
49d4458
5688: Update system-test documentation
ca61688 Nov 19, 2025
18f6206
5688: Update system-test documentation
ca61688 Nov 19, 2025
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
19 changes: 19 additions & 0 deletions docs/development/system-test-suites.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
# Current Slow and Expensive test suites
### This looks imbalanced but EKSBulkImportST is a lot slower than others

These tables show which system tests run in which suite. Each suite runs in parallel to the others to speed up the time
it takes to complete the nightly system tests.

| Slow1 | Slow2 | Slow3 |
| -------------------------- | -------------------------- | ------------------------------- |
| AutoStopEcsTaskST | EksBulkImportST | CompactionCreationST |
| AutoDeleteS3ObjectsST | CompactionOnEC2ST | MultipleTablesST |
| RedeployOptionalStacksST | | StateStoreCommitterThroughputST |
| EmrPersistentBulkImportST |
| OptionalFeaturesDisabledST |


| Expensive1 | Expensive2 | Expensive3 |
| --------------------------------- | -------------------------- | --------------------- |
| CompactionDataFusionPerformanceST | CompactionPerformanceST | IngestPerformanceST |
| CompactionVeryLargeST | EmrBulkImportPerformanceST | ParallelCompactionsST |
24 changes: 19 additions & 5 deletions docs/development/system-tests.md
Original file line number Diff line number Diff line change
Expand Up @@ -76,13 +76,27 @@ of that class, and look at the tests in that module for examples.

This test module contains several JUnit test suites:
- QuickSystemTestSuite (the default)
- NightlyFunctionalSystemTestSuite
- NightlyPerformanceSystemTestSuite
- SlowSystemTestSuite1-n
- ExpensiveSystemTestSuite1-n

Tests that are tagged as Slow or Expensive will not be included in the quick suite. The quick suite is intended to run
in around 40 minutes. The nightly functional suite includes tests tagged as Slow, and will take a bit longer. The
nightly performance suite includes all tests, including ones tagged as Expensive. The performance tests work with a
The nightly test runs have been broken down into a number of test suites that each run in parallel.
This is to speed up the time it takes for the nightly system tests to complete. Each suite (Quick, Slow1-n, Expensive1-n)
begins by creating a copy of the Sleeper project and then running specific system tests inside that copy. Results are then
collated once all suites have finished, then uploaded to an s3 bucket. The suite's Sleeper instances are isolated from one
another so that they can run in parallel.

For more information about the nightly system tests see [here](../../scripts/test/nightly/README.md).

Tests that are tagged as Slow(1-n) or Expensive(1-n) will not be included in the quick suite. The quick suite is intended
to run in around 40 minutes. The nightly functional run includes tests tagged as Slow, and will take a bit longer. The
nightly performance run includes all tests, including ones tagged as Expensive. The performance tests work with a
larger bulk of data. They take time to run and can be costly to run frequently.
When adding a new Slow or Expensive System test add either the Slow1-n or Expensive1-n tag.

### Current Slow and Expensive test suites
The current system tests running in each suite can be seen in [system-test-suites](system-test-suites.md).

When adding new slow or expensive system tests ensure this documentation is updated.

### Running tests

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ public BuildEC2Deployment(Construct scope, IVpc vpc, NightlyTestDeployment night
.vpc(vpc)
.securityGroup(createSecurityGroup(scope))
.machineImage(image.machineImage())
.instanceType(InstanceType.of(InstanceClass.T3, InstanceSize.LARGE))
.instanceType(InstanceType.of(InstanceClass.T3, InstanceSize.XLARGE2))
.vpcSubnets(SubnetSelection.builder().subnetType(SubnetType.PRIVATE_WITH_EGRESS).build())
.userData(UserData.custom(LoadUserDataUtil.userData(params)))
.userDataCausesReplacement(true)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ private AppParameters() {
public static final StringParameter BUILD_IMAGE_OWNER = StringParameter.keyAndDefault("buildImageOwner", "099720109477");
public static final StringParameter BUILD_IMAGE_LOGIN_USER = StringParameter.keyAndDefault("buildImageLoginUser", "ubuntu");
public static final StringParameter BUILD_IMAGE_ROOT_DEVICE_NAME = StringParameter.keyAndDefault("buildImageRootDeviceName", "/dev/sda1");
public static final IntParameter BUILD_ROOT_VOLUME_SIZE_GIB = IntParameter.keyAndDefault("buildRootVolumeSizeGiB", 200);
public static final IntParameter BUILD_ROOT_VOLUME_SIZE_GIB = IntParameter.keyAndDefault("buildRootVolumeSizeGiB", 350);

public static final OptionalStringParameter LOG_RETENTION_DAYS = OptionalStringParameter.key("logRetentionDays");
public static final OptionalStringParameter BUILD_UPTIME_LAMBDA_JAR = OptionalStringParameter.key("buildUptimeLambdaJar");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ public class IntParameterTest {
@Test
public void useDefaultValueWhenUnset() {
AppContext context = AppContext.empty();
assertThat(context.get(BUILD_ROOT_VOLUME_SIZE_GIB)).isEqualTo(200);
assertThat(context.get(BUILD_ROOT_VOLUME_SIZE_GIB)).isEqualTo(350);
}

@Test
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,7 @@ public class DeployExistingInstance {
private final EcrClient ecr;
private final boolean deployPaused;
private final CommandPipelineRunner runCommand;
private final boolean createMultiPlatformBuilder;

private DeployExistingInstance(Builder builder) {
scriptsDirectory = builder.scriptsDirectory;
Expand All @@ -62,6 +63,7 @@ private DeployExistingInstance(Builder builder) {
ecr = builder.ecr;
deployPaused = builder.deployPaused;
runCommand = builder.runCommand;
createMultiPlatformBuilder = builder.createMultiPlatformBuilder;
}

public static Builder builder() {
Expand Down Expand Up @@ -97,6 +99,7 @@ public void update() throws IOException, InterruptedException {
.scriptsDirectory(scriptsDirectory)
.deployConfig(DeployConfiguration.fromScriptsDirectory(scriptsDirectory))
.commandRunner(runCommand)
.createMultiplatformBuilder(createMultiPlatformBuilder)
.build(),
CheckVersionExistsInEcr.withEcrClient(ecr)),
DeployInstance.WriteLocalProperties.underScriptsDirectory(scriptsDirectory),
Expand All @@ -120,6 +123,7 @@ public static final class Builder {
private EcrClient ecr;
private boolean deployPaused;
private CommandPipelineRunner runCommand = CommandUtils::runCommandInheritIO;
private boolean createMultiPlatformBuilder = true;

private Builder() {
}
Expand Down Expand Up @@ -164,6 +168,11 @@ public Builder runCommand(CommandPipelineRunner runCommand) {
return this;
}

public Builder createMultiPlatformBuilder(boolean createMultiPlatformBuilder) {
this.createMultiPlatformBuilder = createMultiPlatformBuilder;
return this;
}

public Builder loadPropertiesFromS3(S3Client s3Client, DynamoDbClient dynamoCient) {
properties = S3InstanceProperties.loadGivenInstanceId(s3Client, instanceId);
tablePropertiesList = S3TableProperties.createStore(properties, s3Client, dynamoCient)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,7 @@ public class DeployNewInstance {
private final InvokeCdk.Type instanceType;
private final CommandPipelineRunner runCommand;
private final boolean deployPaused;
private final boolean createMultiPlatformBuilder;

private DeployNewInstance(Builder builder) {
s3Client = builder.s3Client;
Expand All @@ -72,6 +73,7 @@ private DeployNewInstance(Builder builder) {
instanceType = builder.instanceType;
runCommand = builder.runCommand;
deployPaused = builder.deployPaused;
createMultiPlatformBuilder = builder.createMultiPlatformBuilder;
}

public static Builder builder() {
Expand Down Expand Up @@ -108,14 +110,14 @@ public void deploy() throws IOException, InterruptedException {
LOGGER.info("Running Deployment");
LOGGER.info("-------------------------------------------------------");
deployInstanceConfiguration.validate();

DeployInstance deployInstance = new DeployInstance(
SyncJars.fromScriptsDirectory(s3Client, scriptsDirectory),
new UploadDockerImagesToEcr(
UploadDockerImages.builder()
.scriptsDirectory(scriptsDirectory)
.deployConfig(DeployConfiguration.fromScriptsDirectory(scriptsDirectory))
.commandRunner(runCommand)
.createMultiplatformBuilder(createMultiPlatformBuilder)
.build(),
CheckVersionExistsInEcr.withEcrClient(ecrClient)),
DeployInstance.WriteLocalProperties.underScriptsDirectory(scriptsDirectory),
Expand Down Expand Up @@ -149,6 +151,7 @@ public static final class Builder {
private InvokeCdk.Type instanceType;
private CommandPipelineRunner runCommand = CommandUtils::runCommandInheritIO;
private boolean deployPaused;
private boolean createMultiPlatformBuilder = true;

private Builder() {
}
Expand Down Expand Up @@ -198,6 +201,11 @@ public Builder deployPaused(boolean deployPaused) {
return this;
}

public Builder createMultiPlatformBuilder(boolean createMultiPlatformBuilder) {
this.createMultiPlatformBuilder = createMultiPlatformBuilder;
return this;
}

public DeployNewInstance build() {
return new DeployNewInstance(this);
}
Expand Down
5 changes: 5 additions & 0 deletions java/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -241,6 +241,7 @@
<sleeper.system.test.force.redeploy>false</sleeper.system.test.force.redeploy>
<sleeper.system.test.instances.force.redeploy>false</sleeper.system.test.instances.force.redeploy>
<sleeper.system.test.force.statestore.classname />
<sleeper.system.test.create.multi.platform.builder>true</sleeper.system.test.create.multi.platform.builder>
<sleeper.system.test.standalone.properties.template />
<sleeper.system.test.instance.properties.overrides />
<!-- Maven plugins -->
Expand Down Expand Up @@ -1944,6 +1945,10 @@
<name>sleeper.system.test.force.statestore.classname</name>
<value>${sleeper.system.test.force.statestore.classname}</value>
</property>
<property>
<name>sleeper.system.test.create.multi.platform.builder</name>
<value>${sleeper.system.test.create.multi.platform.builder}</value>
</property>
<property>
<name>sleeper.system.test.standalone.properties.template</name>
<value>${sleeper.system.test.standalone.properties.template}</value>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,7 @@ public boolean deployInstanceIfNotPresent(String instanceId, SleeperInstanceConf
.deployInstanceConfiguration(deployConfig)
.instanceType(InvokeCdk.Type.STANDARD)
.runCommand(CommandUtils::runCommandLogOutput)
.createMultiPlatformBuilder(parameters.isCreateMultiPlatformBuilder())
.deployWithClients(s3, dynamoDB, ecr);
} catch (InterruptedException e) {
Thread.currentThread().interrupt();
Expand Down Expand Up @@ -128,6 +129,7 @@ public void redeploy(InstanceProperties instanceProperties, List<TableProperties
.tablePropertiesList(tableProperties)
.scriptsDirectory(parameters.getScriptsDirectory())
.runCommand(CommandUtils::runCommandLogOutput)
.createMultiPlatformBuilder(parameters.isCreateMultiPlatformBuilder())
.build().update();
} catch (InterruptedException e) {
Thread.currentThread().interrupt();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,7 @@ public class SystemTestParameters {
private final boolean forceRedeploySystemTest;
private final boolean forceRedeployInstances;
private final String forceStateStoreClassname;
private final boolean createMultiPlatformBuilder;
private final SystemTestStandaloneProperties standalonePropertiesTemplate;
private final InstanceProperties instancePropertiesOverrides;

Expand All @@ -79,6 +80,7 @@ private SystemTestParameters(Builder builder) {
forceRedeploySystemTest = builder.forceRedeploySystemTest;
forceRedeployInstances = builder.forceRedeployInstances;
forceStateStoreClassname = builder.forceStateStoreClassname;
createMultiPlatformBuilder = builder.createMultiPlatformBuilder;
standalonePropertiesTemplate = Objects.requireNonNull(builder.standalonePropertiesTemplate, "standalonePropertiesTemplate must not be null");
instancePropertiesOverrides = Objects.requireNonNull(builder.instancePropertiesOverrides, "instancePropertiesOverrides must not be null");
// Combines with SystemTestInstanceConfiguration.shortName and a hyphen to create an instance ID within maximum length
Expand Down Expand Up @@ -155,6 +157,10 @@ public boolean isForceRedeployInstances() {
return forceRedeployInstances;
}

public boolean isCreateMultiPlatformBuilder() {
return createMultiPlatformBuilder;
}

public TableProperties createTableProperties(InstanceProperties instanceProperties, Schema schema) {
TableProperties tableProperties = new TableProperties(instanceProperties);
tableProperties.setSchema(schema);
Expand Down Expand Up @@ -244,6 +250,7 @@ public static final class Builder {
private boolean forceRedeploySystemTest;
private boolean forceRedeployInstances;
private String forceStateStoreClassname;
private boolean createMultiPlatformBuilder = true;
private SystemTestStandaloneProperties standalonePropertiesTemplate;
private InstanceProperties instancePropertiesOverrides;

Expand Down Expand Up @@ -310,6 +317,11 @@ public Builder forceStateStoreClassname(String forceStateStoreClassname) {
return this;
}

public Builder createMultiPlatformBuilder(boolean createMultiPlatformBuilder) {
this.createMultiPlatformBuilder = createMultiPlatformBuilder;
return this;
}

public Builder systemTestStandalonePropertiesTemplate(SystemTestStandaloneProperties standalonePropertiesTemplate) {
this.standalonePropertiesTemplate = standalonePropertiesTemplate;
return this;
Expand All @@ -332,6 +344,7 @@ public Builder loadFromSystemProperties() {
.forceRedeploySystemTest(getBooleanProperty("sleeper.system.test.force.redeploy", false))
.forceRedeployInstances(getBooleanProperty("sleeper.system.test.instances.force.redeploy", false))
.forceStateStoreClassname(getOptionalProperty("sleeper.system.test.force.statestore.classname").orElse(null))
.createMultiPlatformBuilder(getBooleanProperty("sleeper.system.test.create.multi.platform.builder", true))
.systemTestStandalonePropertiesTemplate(getOptionalProperty("sleeper.system.test.standalone.properties.template")
.map(Paths::get)
.map(SystemTestStandaloneProperties::fromFile)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,8 @@
import sleeper.query.core.output.ResultsOutput;
import sleeper.query.runner.output.S3ResultsOutput;
import sleeper.systemtest.dsl.SleeperDsl;
import sleeper.systemtest.suite.testutil.Slow;
import sleeper.systemtest.suite.testutil.SystemTest;
import sleeper.systemtest.suite.testutil.parallel.Slow1;

import java.nio.file.Path;
import java.util.List;
Expand All @@ -38,7 +38,7 @@

@SystemTest
// Slow because it needs to do multiple CDK deployments
@Slow
@Slow1
public class AutoDeleteS3ObjectsST {

@TempDir
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,8 @@
import sleeper.core.statestore.FileReference;
import sleeper.core.util.PollWithRetries;
import sleeper.systemtest.dsl.SleeperDsl;
import sleeper.systemtest.suite.testutil.Slow;
import sleeper.systemtest.suite.testutil.SystemTest;
import sleeper.systemtest.suite.testutil.parallel.Slow1;

import java.time.Duration;
import java.util.List;
Expand All @@ -36,7 +36,7 @@

@SystemTest
// Slow because it needs to do multiple CDK deployments
@Slow
@Slow1
public class AutoStopEcsTaskST {

@BeforeEach
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,8 @@
import sleeper.core.util.PollWithRetries;
import sleeper.systemtest.dsl.SleeperDsl;
import sleeper.systemtest.dsl.compaction.FoundCompactionJobs;
import sleeper.systemtest.suite.testutil.Slow;
import sleeper.systemtest.suite.testutil.SystemTest;
import sleeper.systemtest.suite.testutil.parallel.Slow1;

import java.time.Duration;
import java.util.List;
Expand All @@ -45,7 +45,8 @@
import static sleeper.systemtest.suite.testutil.FileReferenceSystemTestHelper.fileFactory;

@SystemTest
@Slow // Slow because it deploys its own instance so it can drain the whole compaction jobs queue
// Slow because it deploys its own instance so it can drain the whole compaction jobs queue
@Slow1
@Execution(SAME_THREAD)
public class CompactionCreationST {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,8 @@
import sleeper.systemtest.dsl.SleeperDsl;
import sleeper.systemtest.dsl.extension.AfterTestReports;
import sleeper.systemtest.dsl.reporting.SystemTestReports;
import sleeper.systemtest.suite.testutil.Expensive;
import sleeper.systemtest.suite.testutil.SystemTest;
import sleeper.systemtest.suite.testutil.parallel.Expensive1;

import java.time.Duration;
import java.util.Map;
Expand All @@ -41,7 +41,8 @@
import static sleeper.systemtest.suite.fixtures.SystemTestInstance.COMPACTION_PERFORMANCE_DATAFUSION;

@SystemTest
@Expensive // Expensive because it takes a long time to compact this many rows on fairly large ECS instances.
// Expensive because it takes a long time to compact this many rows on fairly large ECS instances.
@Expensive1
public class CompactionDataFusionPerformanceST {

@BeforeEach
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,8 @@
import sleeper.systemtest.dsl.extension.AfterTestReports;
import sleeper.systemtest.dsl.reporting.SystemTestReports;
import sleeper.systemtest.dsl.sourcedata.RowNumbers;
import sleeper.systemtest.suite.testutil.Slow;
import sleeper.systemtest.suite.testutil.SystemTest;
import sleeper.systemtest.suite.testutil.parallel.Slow2;

import java.nio.file.Path;
import java.util.Map;
Expand All @@ -41,7 +41,7 @@
import static sleeper.systemtest.suite.testutil.TestResources.exampleString;

@SystemTest
@Slow
@Slow2
public class CompactionOnEC2ST {
@TempDir
private Path tempDir;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,8 @@
import sleeper.systemtest.dsl.SleeperDsl;
import sleeper.systemtest.dsl.extension.AfterTestReports;
import sleeper.systemtest.dsl.reporting.SystemTestReports;
import sleeper.systemtest.suite.testutil.Expensive;
import sleeper.systemtest.suite.testutil.SystemTest;
import sleeper.systemtest.suite.testutil.parallel.Expensive2;

import java.time.Duration;
import java.util.Map;
Expand All @@ -40,7 +40,8 @@
import static sleeper.systemtest.suite.fixtures.SystemTestInstance.COMPACTION_PERFORMANCE;

@SystemTest
@Expensive // Expensive because it takes a long time to compact this many rows on fairly large ECS instances.
// Expensive because it takes a long time to compact this many rows on fairly large ECS instances.
@Expensive2
public class CompactionPerformanceST {

@BeforeEach
Expand Down
Loading
Loading