From b59e017b54d881255439cb15f7050779488c3d6a Mon Sep 17 00:00:00 2001 From: Frostebite Date: Tue, 6 Dec 2022 01:19:45 +0000 Subject: [PATCH] async workflow test --- src/model/cloud-runner/cloud-runner.ts | 40 +++++++++++++++++++ .../cloud-runner/workflows/async-workflow.ts | 4 +- .../workflows/build-automation-workflow.ts | 40 ------------------- 3 files changed, 42 insertions(+), 42 deletions(-) diff --git a/src/model/cloud-runner/cloud-runner.ts b/src/model/cloud-runner/cloud-runner.ts index d2916fc3..504644f9 100644 --- a/src/model/cloud-runner/cloud-runner.ts +++ b/src/model/cloud-runner/cloud-runner.ts @@ -15,6 +15,7 @@ import LocalCloudRunner from './providers/local'; import LocalDockerCloudRunner from './providers/docker'; import GitHub from '../github'; import SharedWorkspaceLocking from './services/shared-workspace-locking'; +import CloudRunnerOptions from './cloud-runner-options'; class CloudRunner { public static Provider: ProviderInterface; @@ -23,6 +24,7 @@ class CloudRunner { private static cloudRunnerEnvironmentVariables: CloudRunnerEnvironmentVariable[]; static lockedWorkspace: string | undefined; public static readonly retainedWorkspacePrefix: string = `retained-workspace`; + static githubCheckId; public static setup(buildParameters: BuildParameters) { CloudRunnerLogger.setup(); CloudRunnerLogger.log(`Setting up cloud runner`); @@ -68,6 +70,17 @@ class CloudRunner { static async run(buildParameters: BuildParameters, baseImage: string) { CloudRunner.setup(buildParameters); try { + if (CloudRunnerOptions.githubChecksEnabled) { + CloudRunner.githubCheckId = await GitHub.createGitHubCheck( + CloudRunnerOptions.githubOwner, + CloudRunnerOptions.githubRepoName, + CloudRunner.buildParameters.gitPrivateToken, + `Cloud Runner (${CloudRunner.buildParameters.buildGuid})`, + CloudRunner.buildParameters.gitSha, + `Cloud Runner (${CloudRunner.buildParameters.buildGuid})`, + CloudRunner.buildParameters.buildGuid, + ); + } if (buildParameters.retainWorkspace) { CloudRunner.lockedWorkspace = `${CloudRunner.retainedWorkspacePrefix}-${CloudRunner.buildParameters.buildGuid}`; @@ -123,8 +136,35 @@ class CloudRunner { CloudRunner.Provider.garbageCollect(``, true, buildParameters.garbageCollectionMaxAge, true, true); } + if (CloudRunnerOptions.githubChecksEnabled) { + await GitHub.updateGitHubCheck( + CloudRunner.githubCheckId, + CloudRunnerOptions.githubOwner, + CloudRunnerOptions.githubRepoName, + CloudRunner.buildParameters.gitPrivateToken, + `Cloud Runner (${CloudRunner.buildParameters.buildGuid})`, + CloudRunner.buildParameters.gitSha, + `Cloud Runner (${CloudRunner.buildParameters.buildGuid})`, + CloudRunner.buildParameters.buildGuid, + `success`, + ); + } + return output; } catch (error) { + if (CloudRunnerOptions.githubChecksEnabled) { + await GitHub.updateGitHubCheck( + CloudRunner.githubCheckId, + CloudRunnerOptions.githubOwner, + CloudRunnerOptions.githubRepoName, + CloudRunner.buildParameters.gitPrivateToken, + `Cloud Runner (${CloudRunner.buildParameters.buildGuid})`, + CloudRunner.buildParameters.gitSha, + `Cloud Runner (${CloudRunner.buildParameters.buildGuid})`, + CloudRunner.buildParameters.buildGuid, + error, + ); + } if (!CloudRunner.buildParameters.isCliMode) core.endGroup(); await CloudRunnerError.handleException(error, CloudRunner.buildParameters, CloudRunner.defaultSecrets); throw error; diff --git a/src/model/cloud-runner/workflows/async-workflow.ts b/src/model/cloud-runner/workflows/async-workflow.ts index 80b232bb..56eb2921 100644 --- a/src/model/cloud-runner/workflows/async-workflow.ts +++ b/src/model/cloud-runner/workflows/async-workflow.ts @@ -20,8 +20,8 @@ export class AsyncWorkflow { `apt-get update > /dev/null apt-get install -y curl tar tree npm git git-lfs jq git > /dev/null mkdir /builder -git clone -q -b ${CloudRunner.buildParameters.cloudRunnerBranch} /builder "builder" -node "builder/dist/index.js" -m async-workflow +git clone -q -b ${CloudRunner.buildParameters.cloudRunnerBranch} ${CloudRunnerFolders.unityBuilderRepoUrl} /builder +node /builder/dist/index.js -m async-workflow `, `/${CloudRunnerFolders.buildVolumeFolder}`, `/${CloudRunnerFolders.buildVolumeFolder}/`, diff --git a/src/model/cloud-runner/workflows/build-automation-workflow.ts b/src/model/cloud-runner/workflows/build-automation-workflow.ts index a4b2c245..b880da84 100644 --- a/src/model/cloud-runner/workflows/build-automation-workflow.ts +++ b/src/model/cloud-runner/workflows/build-automation-workflow.ts @@ -8,11 +8,8 @@ import path from 'path'; import CloudRunner from '../cloud-runner'; import CloudRunnerOptions from '../cloud-runner-options'; import { CloudRunnerCustomSteps } from '../services/cloud-runner-custom-steps'; -import GitHub from '../../github'; export class BuildAutomationWorkflow implements WorkflowInterface { - static githubCheckId; - static readonly checkNamePrefix = `Cloud-Runner`; async run(cloudRunnerStepState: CloudRunnerStepState) { try { return await BuildAutomationWorkflow.standardBuildAutomation(cloudRunnerStepState.image, cloudRunnerStepState); @@ -24,17 +21,6 @@ export class BuildAutomationWorkflow implements WorkflowInterface { private static async standardBuildAutomation(baseImage: any, cloudRunnerStepState: CloudRunnerStepState) { // TODO accept post and pre build steps as yaml files in the repo try { - if (CloudRunnerOptions.githubChecksEnabled) { - BuildAutomationWorkflow.githubCheckId = await GitHub.createGitHubCheck( - CloudRunnerOptions.githubOwner, - CloudRunnerOptions.githubRepoName, - CloudRunner.buildParameters.gitPrivateToken, - `${BuildAutomationWorkflow.checkNamePrefix}-${CloudRunner.buildParameters.buildGuid}-${CloudRunner.buildParameters.targetPlatform}`, - CloudRunner.buildParameters.gitSha, - `${BuildAutomationWorkflow.checkNamePrefix}-${CloudRunner.buildParameters.buildGuid}-${CloudRunner.buildParameters.targetPlatform}`, - CloudRunner.buildParameters.buildGuid, - ); - } CloudRunnerLogger.log(`Cloud Runner is running standard build automation`); let output = ''; @@ -63,35 +49,9 @@ export class BuildAutomationWorkflow implements WorkflowInterface { CloudRunnerLogger.logWithTime('Configurable post build step(s) time'); CloudRunnerLogger.log(`Cloud Runner finished running standard build automation`); - if (CloudRunnerOptions.githubChecksEnabled) { - await GitHub.updateGitHubCheck( - BuildAutomationWorkflow.githubCheckId, - CloudRunnerOptions.githubOwner, - CloudRunnerOptions.githubRepoName, - CloudRunner.buildParameters.gitPrivateToken, - `${BuildAutomationWorkflow.checkNamePrefix}-${CloudRunner.buildParameters.buildGuid}-${CloudRunner.buildParameters.targetPlatform}`, - CloudRunner.buildParameters.gitSha, - `${BuildAutomationWorkflow.checkNamePrefix}-${CloudRunner.buildParameters.buildGuid}-${CloudRunner.buildParameters.targetPlatform}`, - CloudRunner.buildParameters.buildGuid, - '', - ); - } return output; } catch (error) { - if (CloudRunnerOptions.githubChecksEnabled) { - await GitHub.updateGitHubCheck( - BuildAutomationWorkflow.githubCheckId, - CloudRunnerOptions.githubOwner, - CloudRunnerOptions.githubRepoName, - CloudRunner.buildParameters.gitPrivateToken, - `${BuildAutomationWorkflow.checkNamePrefix}-${CloudRunner.buildParameters.buildGuid}-${CloudRunner.buildParameters.targetPlatform}`, - CloudRunner.buildParameters.gitSha, - `${BuildAutomationWorkflow.checkNamePrefix}-${CloudRunner.buildParameters.buildGuid}-${CloudRunner.buildParameters.targetPlatform}`, - CloudRunner.buildParameters.buildGuid, - error, - ); - } throw error; } }