pr feedback

This commit is contained in:
Frostebite
2025-12-27 16:09:28 +00:00
parent a61fe5b771
commit 0ba031eabc
4 changed files with 76 additions and 3 deletions
Generated Vendored
+22 -1
View File
@@ -801,6 +801,9 @@ class CloudRunner {
static async setupSelectedBuildPlatform() {
cloud_runner_logger_1.default.log(`Cloud Runner platform selected ${CloudRunner.buildParameters.providerStrategy}`);
// Detect LocalStack endpoints and reroute AWS provider to local-docker for CI tests that only need S3
// However, if AWS_FORCE_PROVIDER is set to 'aws', we should use AWS provider even with LocalStack
// This is needed for integrity tests that validate AWS functionality (ECS, CloudFormation, etc.) with LocalStack
const forceAwsProvider = process.env.AWS_FORCE_PROVIDER === 'aws' || process.env.AWS_FORCE_PROVIDER === 'true';
const endpointsToCheck = [
process.env.AWS_ENDPOINT,
process.env.AWS_S3_ENDPOINT,
@@ -819,16 +822,28 @@ class CloudRunner {
.join(' ');
const isLocalStack = /localstack|localhost|127\.0\.0\.1/i.test(endpointsToCheck);
let provider = CloudRunner.buildParameters.providerStrategy;
if (provider === 'aws' && isLocalStack) {
if (provider === 'aws' && isLocalStack && !forceAwsProvider) {
cloud_runner_logger_1.default.log('LocalStack endpoints detected; routing provider to local-docker for this run');
cloud_runner_logger_1.default.log('Note: Set AWS_FORCE_PROVIDER=aws to force AWS provider with LocalStack for AWS functionality tests');
provider = 'local-docker';
}
else if (provider === 'aws' && isLocalStack && forceAwsProvider) {
cloud_runner_logger_1.default.log('LocalStack endpoints detected but AWS_FORCE_PROVIDER is set; using AWS provider to validate AWS functionality');
}
switch (provider) {
case 'k8s':
CloudRunner.Provider = new k8s_1.default(CloudRunner.buildParameters);
break;
case 'aws':
CloudRunner.Provider = new aws_1.default(CloudRunner.buildParameters);
// Validate that AWS provider is actually being used when expected
if (isLocalStack && forceAwsProvider) {
cloud_runner_logger_1.default.log('✓ AWS provider initialized with LocalStack - AWS functionality will be validated');
}
else if (isLocalStack && !forceAwsProvider) {
cloud_runner_logger_1.default.log('⚠ WARNING: AWS provider was requested but LocalStack detected without AWS_FORCE_PROVIDER');
cloud_runner_logger_1.default.log('⚠ This may cause AWS functionality tests to fail validation');
}
break;
case 'test':
CloudRunner.Provider = new test_1.default();
@@ -854,6 +869,12 @@ class CloudRunner {
}
break;
}
// Final validation: Ensure provider matches expectations
const finalProviderName = CloudRunner.Provider.constructor.name;
if (CloudRunner.buildParameters.providerStrategy === 'aws' && finalProviderName !== 'AWSBuildEnvironment') {
cloud_runner_logger_1.default.log(`⚠ WARNING: Expected AWS provider but got ${finalProviderName}`);
cloud_runner_logger_1.default.log('⚠ AWS functionality tests may not be validating AWS services correctly');
}
}
static async run(buildParameters, baseImage) {
if (baseImage.includes(`undefined`)) {
Generated Vendored
+1 -1
View File
File diff suppressed because one or more lines are too long