correcting bug with async env

pull/496/head
Frostebite 2023-01-22 02:37:43 +00:00
parent c54786ae55
commit 8552ed6b92
6 changed files with 39 additions and 38 deletions

View File

@ -39,10 +39,8 @@ jobs:
if: github.event.event_type != 'pull_request_target' if: github.event.event_type != 'pull_request_target'
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Checkout (default) - run: git clone -b cloud-runner-develop https://github.com/game-ci/unity-builder
uses: actions/checkout@v2 - run: cd unity-builder
with:
lfs: false
- run: yarn - run: yarn
- run: yarn run cli -m checks-update - run: yarn run cli -m checks-update
timeout-minutes: 180 timeout-minutes: 180

51
dist/index.js generated vendored
View File

@ -308,6 +308,7 @@ class BuildParameters {
garbageCollectionMaxAge: cloud_runner_options_1.default.garbageCollectionMaxAge, garbageCollectionMaxAge: cloud_runner_options_1.default.garbageCollectionMaxAge,
githubChecks: cloud_runner_options_1.default.githubChecks, githubChecks: cloud_runner_options_1.default.githubChecks,
asyncWorkflow: cloud_runner_options_1.default.asyncCloudRunner, asyncWorkflow: cloud_runner_options_1.default.asyncCloudRunner,
githubCheckId: ``,
}; };
}); });
} }
@ -1017,25 +1018,28 @@ class CloudRunner {
return process.env[`GAMECI_ASYNC_WORKFLOW`] === `true`; return process.env[`GAMECI_ASYNC_WORKFLOW`] === `true`;
} }
static setup(buildParameters) { static setup(buildParameters) {
cloud_runner_logger_1.default.setup(); return __awaiter(this, void 0, void 0, function* () {
cloud_runner_logger_1.default.log(`Setting up cloud runner`); cloud_runner_logger_1.default.setup();
CloudRunner.buildParameters = buildParameters; cloud_runner_logger_1.default.log(`Setting up cloud runner`);
CloudRunner.setupSelectedBuildPlatform(); CloudRunner.buildParameters = buildParameters;
CloudRunner.defaultSecrets = task_parameter_serializer_1.TaskParameterSerializer.readDefaultSecrets(); CloudRunner.buildParameters.githubCheckId = yield github_1.default.createGitHubCheck(CloudRunner.buildParameters.buildGuid);
CloudRunner.cloudRunnerEnvironmentVariables = CloudRunner.setupSelectedBuildPlatform();
task_parameter_serializer_1.TaskParameterSerializer.createCloudRunnerEnvironmentVariables(buildParameters); CloudRunner.defaultSecrets = task_parameter_serializer_1.TaskParameterSerializer.readDefaultSecrets();
if (github_1.default.githubInputEnabled) { CloudRunner.cloudRunnerEnvironmentVariables =
const buildParameterPropertyNames = Object.getOwnPropertyNames(buildParameters); task_parameter_serializer_1.TaskParameterSerializer.createCloudRunnerEnvironmentVariables(buildParameters);
for (const element of CloudRunner.cloudRunnerEnvironmentVariables) { if (github_1.default.githubInputEnabled) {
// CloudRunnerLogger.log(`Cloud Runner output ${Input.ToEnvVarFormat(element.name)} = ${element.value}`); const buildParameterPropertyNames = Object.getOwnPropertyNames(buildParameters);
core.setOutput(__1.Input.ToEnvVarFormat(element.name), element.value); for (const element of CloudRunner.cloudRunnerEnvironmentVariables) {
// CloudRunnerLogger.log(`Cloud Runner output ${Input.ToEnvVarFormat(element.name)} = ${element.value}`);
core.setOutput(__1.Input.ToEnvVarFormat(element.name), element.value);
}
for (const element of buildParameterPropertyNames) {
// CloudRunnerLogger.log(`Cloud Runner output ${Input.ToEnvVarFormat(element)} = ${buildParameters[element]}`);
core.setOutput(__1.Input.ToEnvVarFormat(element), buildParameters[element]);
}
core.setOutput(__1.Input.ToEnvVarFormat(`buildArtifact`), `build-${CloudRunner.buildParameters.buildGuid}.tar${CloudRunner.buildParameters.useLz4Compression ? '.lz4' : ''}`);
} }
for (const element of buildParameterPropertyNames) { });
// CloudRunnerLogger.log(`Cloud Runner output ${Input.ToEnvVarFormat(element)} = ${buildParameters[element]}`);
core.setOutput(__1.Input.ToEnvVarFormat(element), buildParameters[element]);
}
core.setOutput(__1.Input.ToEnvVarFormat(`buildArtifact`), `build-${CloudRunner.buildParameters.buildGuid}.tar${CloudRunner.buildParameters.useLz4Compression ? '.lz4' : ''}`);
}
} }
static setupSelectedBuildPlatform() { static setupSelectedBuildPlatform() {
cloud_runner_logger_1.default.log(`Cloud Runner platform selected ${CloudRunner.buildParameters.cloudRunnerCluster}`); cloud_runner_logger_1.default.log(`Cloud Runner platform selected ${CloudRunner.buildParameters.cloudRunnerCluster}`);
@ -1059,9 +1063,8 @@ class CloudRunner {
} }
static run(buildParameters, baseImage) { static run(buildParameters, baseImage) {
return __awaiter(this, void 0, void 0, function* () { return __awaiter(this, void 0, void 0, function* () {
CloudRunner.setup(buildParameters); yield CloudRunner.setup(buildParameters);
try { try {
CloudRunner.githubCheckId = yield github_1.default.createGitHubCheck(CloudRunner.buildParameters.buildGuid);
if (buildParameters.retainWorkspace) { if (buildParameters.retainWorkspace) {
CloudRunner.lockedWorkspace = `${CloudRunner.retainedWorkspacePrefix}-${CloudRunner.buildParameters.buildGuid}`; CloudRunner.lockedWorkspace = `${CloudRunner.retainedWorkspacePrefix}-${CloudRunner.buildParameters.buildGuid}`;
const result = yield shared_workspace_locking_1.default.GetOrCreateLockedWorkspace(CloudRunner.lockedWorkspace, CloudRunner.buildParameters.buildGuid, CloudRunner.buildParameters); const result = yield shared_workspace_locking_1.default.GetOrCreateLockedWorkspace(CloudRunner.lockedWorkspace, CloudRunner.buildParameters.buildGuid, CloudRunner.buildParameters);
@ -6433,7 +6436,7 @@ class GitHub {
return GitHub.checkName; return GitHub.checkName;
} }
static get checkRunId() { static get checkRunId() {
return cloud_runner_1.default.githubCheckId; return cloud_runner_1.default.buildParameters.githubCheckId;
} }
static get owner() { static get owner() {
return cloud_runner_options_1.default.githubOwner; return cloud_runner_options_1.default.githubOwner;
@ -6473,7 +6476,7 @@ class GitHub {
}, },
}; };
const result = yield GitHub.createGitHubCheckRequest(data); const result = yield GitHub.createGitHubCheckRequest(data);
return result.data.id; return result.data.id.toString();
}); });
} }
static updateGitHubCheck(longDescription, summary, result = `neutral`, status = `in_progress`) { static updateGitHubCheck(longDescription, summary, result = `neutral`, status = `in_progress`) {
@ -6520,12 +6523,12 @@ class GitHub {
} }
static updateGitHubCheckRequest(data) { static updateGitHubCheckRequest(data) {
return __awaiter(this, void 0, void 0, function* () { return __awaiter(this, void 0, void 0, function* () {
return yield GitHub.octokitPAT.request(`PATCH /repos/{owner}/{repo}/check-runs/{check_run_id}`, data); return yield GitHub.octokitDefaultToken.request(`PATCH /repos/{owner}/{repo}/check-runs/{check_run_id}`, data);
}); });
} }
static createGitHubCheckRequest(data) { static createGitHubCheckRequest(data) {
return __awaiter(this, void 0, void 0, function* () { return __awaiter(this, void 0, void 0, function* () {
return yield GitHub.octokitPAT.request(`POST /repos/{owner}/{repo}/check-runs`, data); return yield GitHub.octokitDefaultToken.request(`POST /repos/{owner}/{repo}/check-runs`, data);
}); });
} }
static runUpdateAsyncChecksWorkflow(data, mode) { static runUpdateAsyncChecksWorkflow(data, mode) {

2
dist/index.js.map generated vendored

File diff suppressed because one or more lines are too long

View File

@ -72,6 +72,7 @@ class BuildParameters {
public constantGarbageCollection!: boolean; public constantGarbageCollection!: boolean;
public githubChecks!: boolean; public githubChecks!: boolean;
public asyncWorkflow!: boolean; public asyncWorkflow!: boolean;
public githubCheckId!: string;
static async create(): Promise<BuildParameters> { static async create(): Promise<BuildParameters> {
const buildFile = this.parseBuildFile(Input.buildName, Input.targetPlatform, Input.androidAppBundle); const buildFile = this.parseBuildFile(Input.buildName, Input.targetPlatform, Input.androidAppBundle);
@ -157,6 +158,7 @@ class BuildParameters {
garbageCollectionMaxAge: CloudRunnerOptions.garbageCollectionMaxAge, garbageCollectionMaxAge: CloudRunnerOptions.garbageCollectionMaxAge,
githubChecks: CloudRunnerOptions.githubChecks, githubChecks: CloudRunnerOptions.githubChecks,
asyncWorkflow: CloudRunnerOptions.asyncCloudRunner, asyncWorkflow: CloudRunnerOptions.asyncCloudRunner,
githubCheckId: ``,
}; };
} }

View File

@ -23,17 +23,17 @@ class CloudRunner {
private static cloudRunnerEnvironmentVariables: CloudRunnerEnvironmentVariable[]; private static cloudRunnerEnvironmentVariables: CloudRunnerEnvironmentVariable[];
static lockedWorkspace: string | undefined; static lockedWorkspace: string | undefined;
public static readonly retainedWorkspacePrefix: string = `retained-workspace`; public static readonly retainedWorkspacePrefix: string = `retained-workspace`;
public static githubCheckId;
public static get isCloudRunnerEnvironment() { public static get isCloudRunnerEnvironment() {
return process.env[`GITHUB_ACTIONS`] !== `true`; return process.env[`GITHUB_ACTIONS`] !== `true`;
} }
public static get isCloudRunnerAsyncEnvironment() { public static get isCloudRunnerAsyncEnvironment() {
return process.env[`GAMECI_ASYNC_WORKFLOW`] === `true`; return process.env[`GAMECI_ASYNC_WORKFLOW`] === `true`;
} }
public static setup(buildParameters: BuildParameters) { public static async setup(buildParameters: BuildParameters) {
CloudRunnerLogger.setup(); CloudRunnerLogger.setup();
CloudRunnerLogger.log(`Setting up cloud runner`); CloudRunnerLogger.log(`Setting up cloud runner`);
CloudRunner.buildParameters = buildParameters; CloudRunner.buildParameters = buildParameters;
CloudRunner.buildParameters.githubCheckId = await GitHub.createGitHubCheck(CloudRunner.buildParameters.buildGuid);
CloudRunner.setupSelectedBuildPlatform(); CloudRunner.setupSelectedBuildPlatform();
CloudRunner.defaultSecrets = TaskParameterSerializer.readDefaultSecrets(); CloudRunner.defaultSecrets = TaskParameterSerializer.readDefaultSecrets();
CloudRunner.cloudRunnerEnvironmentVariables = CloudRunner.cloudRunnerEnvironmentVariables =
@ -79,10 +79,8 @@ class CloudRunner {
} }
static async run(buildParameters: BuildParameters, baseImage: string) { static async run(buildParameters: BuildParameters, baseImage: string) {
CloudRunner.setup(buildParameters); await CloudRunner.setup(buildParameters);
try { try {
CloudRunner.githubCheckId = await GitHub.createGitHubCheck(CloudRunner.buildParameters.buildGuid);
if (buildParameters.retainWorkspace) { if (buildParameters.retainWorkspace) {
CloudRunner.lockedWorkspace = `${CloudRunner.retainedWorkspacePrefix}-${CloudRunner.buildParameters.buildGuid}`; CloudRunner.lockedWorkspace = `${CloudRunner.retainedWorkspacePrefix}-${CloudRunner.buildParameters.buildGuid}`;

View File

@ -32,7 +32,7 @@ class GitHub {
} }
private static get checkRunId() { private static get checkRunId() {
return CloudRunner.githubCheckId; return CloudRunner.buildParameters.githubCheckId;
} }
private static get owner() { private static get owner() {
@ -77,7 +77,7 @@ class GitHub {
}; };
const result = await GitHub.createGitHubCheckRequest(data); const result = await GitHub.createGitHubCheckRequest(data);
return result.data.id; return result.data.id.toString();
} }
public static async updateGitHubCheck(longDescription, summary, result = `neutral`, status = `in_progress`) { public static async updateGitHubCheck(longDescription, summary, result = `neutral`, status = `in_progress`) {
@ -126,11 +126,11 @@ class GitHub {
} }
public static async updateGitHubCheckRequest(data) { public static async updateGitHubCheckRequest(data) {
return await GitHub.octokitPAT.request(`PATCH /repos/{owner}/{repo}/check-runs/{check_run_id}`, data); return await GitHub.octokitDefaultToken.request(`PATCH /repos/{owner}/{repo}/check-runs/{check_run_id}`, data);
} }
public static async createGitHubCheckRequest(data) { public static async createGitHubCheckRequest(data) {
return await GitHub.octokitPAT.request(`POST /repos/{owner}/{repo}/check-runs`, data); return await GitHub.octokitDefaultToken.request(`POST /repos/{owner}/{repo}/check-runs`, data);
} }
public static async runUpdateAsyncChecksWorkflow(data, mode) { public static async runUpdateAsyncChecksWorkflow(data, mode) {