mirror of
https://github.com/game-ci/unity-builder.git
synced 2026-06-12 17:03:55 -07:00
9d475434d3
* Rename "Cloud Runner" to "Orchestrator" across entire codebase Breaking change: All CloudRunner classes, options, environment variables, and action.yml inputs have been renamed to Orchestrator equivalents. - Renamed src/model/cloud-runner/ directory to src/model/orchestrator/ - Renamed all cloud-runner-* files to orchestrator-* - Renamed all CloudRunner* classes to Orchestrator* (15+ classes) - Renamed all cloudRunner* properties to orchestrator* equivalents - Renamed CLOUD_RUNNER_* env vars to ORCHESTRATOR_* - Updated action.yml [CloudRunner] markers to [Orchestrator] - Updated workflow files and package.json test scripts - Updated all runtime strings (cache paths, log messages, branch refs) - Rebuilt dist/index.js No backward compatibility layer is provided. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * Remove tracked log/temp files and add to .gitignore Remove $LOG_FILE and temp/job-log.txt debug artifacts that should not be in the repository. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
94 lines
2.6 KiB
TypeScript
94 lines
2.6 KiB
TypeScript
import { CloudFormation } from '@aws-sdk/client-cloudformation';
|
|
import { ECS } from '@aws-sdk/client-ecs';
|
|
import { Kinesis } from '@aws-sdk/client-kinesis';
|
|
import { CloudWatchLogs } from '@aws-sdk/client-cloudwatch-logs';
|
|
import { S3 } from '@aws-sdk/client-s3';
|
|
import { Input } from '../../..';
|
|
import OrchestratorOptions from '../../options/orchestrator-options';
|
|
|
|
export class AwsClientFactory {
|
|
private static cloudFormation: CloudFormation;
|
|
private static ecs: ECS;
|
|
private static kinesis: Kinesis;
|
|
private static cloudWatchLogs: CloudWatchLogs;
|
|
private static s3: S3;
|
|
|
|
private static getCredentials() {
|
|
// Explicitly provide credentials from environment variables for LocalStack compatibility
|
|
// LocalStack accepts any credentials, but the AWS SDK needs them to be explicitly set
|
|
const accessKeyId = process.env.AWS_ACCESS_KEY_ID;
|
|
const secretAccessKey = process.env.AWS_SECRET_ACCESS_KEY;
|
|
|
|
if (accessKeyId && secretAccessKey) {
|
|
return {
|
|
accessKeyId,
|
|
secretAccessKey,
|
|
};
|
|
}
|
|
|
|
// Return undefined to let AWS SDK use default credential chain
|
|
return;
|
|
}
|
|
|
|
static getCloudFormation(): CloudFormation {
|
|
if (!this.cloudFormation) {
|
|
this.cloudFormation = new CloudFormation({
|
|
region: Input.region,
|
|
endpoint: OrchestratorOptions.awsCloudFormationEndpoint,
|
|
credentials: AwsClientFactory.getCredentials(),
|
|
});
|
|
}
|
|
|
|
return this.cloudFormation;
|
|
}
|
|
|
|
static getECS(): ECS {
|
|
if (!this.ecs) {
|
|
this.ecs = new ECS({
|
|
region: Input.region,
|
|
endpoint: OrchestratorOptions.awsEcsEndpoint,
|
|
credentials: AwsClientFactory.getCredentials(),
|
|
});
|
|
}
|
|
|
|
return this.ecs;
|
|
}
|
|
|
|
static getKinesis(): Kinesis {
|
|
if (!this.kinesis) {
|
|
this.kinesis = new Kinesis({
|
|
region: Input.region,
|
|
endpoint: OrchestratorOptions.awsKinesisEndpoint,
|
|
credentials: AwsClientFactory.getCredentials(),
|
|
});
|
|
}
|
|
|
|
return this.kinesis;
|
|
}
|
|
|
|
static getCloudWatchLogs(): CloudWatchLogs {
|
|
if (!this.cloudWatchLogs) {
|
|
this.cloudWatchLogs = new CloudWatchLogs({
|
|
region: Input.region,
|
|
endpoint: OrchestratorOptions.awsCloudWatchLogsEndpoint,
|
|
credentials: AwsClientFactory.getCredentials(),
|
|
});
|
|
}
|
|
|
|
return this.cloudWatchLogs;
|
|
}
|
|
|
|
static getS3(): S3 {
|
|
if (!this.s3) {
|
|
this.s3 = new S3({
|
|
region: Input.region,
|
|
endpoint: OrchestratorOptions.awsS3Endpoint,
|
|
forcePathStyle: true,
|
|
credentials: AwsClientFactory.getCredentials(),
|
|
});
|
|
}
|
|
|
|
return this.s3;
|
|
}
|
|
}
|