async workflow test
parent
376625a8bd
commit
b59e017b54
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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}/`,
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue