move github checks within build workflow

pull/479/head
Frostebite 2022-12-06 00:24:08 +00:00
parent c6bdec539c
commit 83fb0b89da
5 changed files with 50 additions and 20 deletions

18
dist/index.js vendored
View File

@ -985,7 +985,6 @@ const local_1 = __importDefault(__nccwpck_require__(66575));
const docker_1 = __importDefault(__nccwpck_require__(42802)); const docker_1 = __importDefault(__nccwpck_require__(42802));
const github_1 = __importDefault(__nccwpck_require__(83654)); const github_1 = __importDefault(__nccwpck_require__(83654));
const shared_workspace_locking_1 = __importDefault(__nccwpck_require__(87562)); const shared_workspace_locking_1 = __importDefault(__nccwpck_require__(87562));
const cloud_runner_options_1 = __importDefault(__nccwpck_require__(96552));
class CloudRunner { class CloudRunner {
static setup(buildParameters) { static setup(buildParameters) {
cloud_runner_logger_1.default.setup(); cloud_runner_logger_1.default.setup();
@ -1031,9 +1030,6 @@ class CloudRunner {
return __awaiter(this, void 0, void 0, function* () { return __awaiter(this, void 0, void 0, function* () {
CloudRunner.setup(buildParameters); CloudRunner.setup(buildParameters);
try { try {
if (cloud_runner_options_1.default.githubChecksEnabled) {
yield github_1.default.createGitHubCheck(cloud_runner_options_1.default.githubOwner, cloud_runner_options_1.default.githubRepoName, buildParameters.gitPrivateToken, 'test-check-name', buildParameters.gitSha, 'A check test', 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);
@ -3346,11 +3342,11 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
const cloud_runner_logger_1 = __importDefault(__nccwpck_require__(22855)); const cloud_runner_logger_1 = __importDefault(__nccwpck_require__(22855));
class KubernetesPods { class KubernetesPods {
static IsPodRunning(podName, namespace, kubeClient) { static IsPodRunning(podName, namespace, kubeClient) {
var _a, _b, _c; var _a, _b, _c, _d;
return __awaiter(this, void 0, void 0, function* () { return __awaiter(this, void 0, void 0, function* () {
const pods = (yield kubeClient.listNamespacedPod(namespace)).body.items.filter((x) => { var _a; return podName === ((_a = x.metadata) === null || _a === void 0 ? void 0 : _a.name); }); const pods = (yield kubeClient.listNamespacedPod(namespace)).body.items.filter((x) => { var _a; return podName === ((_a = x.metadata) === null || _a === void 0 ? void 0 : _a.name); });
const running = pods.length > 0 && (((_a = pods[0].status) === null || _a === void 0 ? void 0 : _a.phase) === `Running` || ((_b = pods[0].status) === null || _b === void 0 ? void 0 : _b.phase) === `Pending`); const running = pods.length > 0 && (((_a = pods[0].status) === null || _a === void 0 ? void 0 : _a.phase) === `Running` || ((_b = pods[0].status) === null || _b === void 0 ? void 0 : _b.phase) === `Pending`);
const phase = ((_c = pods[0].status) === null || _c === void 0 ? void 0 : _c.phase) || 'undefined status'; const phase = ((_d = (_c = pods[0]) === null || _c === void 0 ? void 0 : _c.status) === null || _d === void 0 ? void 0 : _d.phase) || 'undefined status';
cloud_runner_logger_1.default.log(`Getting pod status: ${phase}`); cloud_runner_logger_1.default.log(`Getting pod status: ${phase}`);
return running; return running;
}); });
@ -5723,6 +5719,7 @@ const path_1 = __importDefault(__nccwpck_require__(71017));
const cloud_runner_1 = __importDefault(__nccwpck_require__(79144)); const cloud_runner_1 = __importDefault(__nccwpck_require__(79144));
const cloud_runner_options_1 = __importDefault(__nccwpck_require__(96552)); const cloud_runner_options_1 = __importDefault(__nccwpck_require__(96552));
const cloud_runner_custom_steps_1 = __nccwpck_require__(96455); const cloud_runner_custom_steps_1 = __nccwpck_require__(96455);
const github_1 = __importDefault(__nccwpck_require__(83654));
class BuildAutomationWorkflow { class BuildAutomationWorkflow {
run(cloudRunnerStepState) { run(cloudRunnerStepState) {
return __awaiter(this, void 0, void 0, function* () { return __awaiter(this, void 0, void 0, function* () {
@ -5738,6 +5735,9 @@ class BuildAutomationWorkflow {
return __awaiter(this, void 0, void 0, function* () { return __awaiter(this, void 0, void 0, function* () {
// TODO accept post and pre build steps as yaml files in the repo // TODO accept post and pre build steps as yaml files in the repo
try { try {
if (cloud_runner_options_1.default.githubChecksEnabled) {
yield github_1.default.createGitHubCheck(cloud_runner_options_1.default.githubOwner, cloud_runner_options_1.default.githubRepoName, cloud_runner_1.default.buildParameters.gitPrivateToken, 'test-check-name', cloud_runner_1.default.buildParameters.gitSha, 'A check test', cloud_runner_1.default.buildParameters.buildGuid);
}
cloud_runner_logger_1.default.log(`Cloud Runner is running standard build automation`); cloud_runner_logger_1.default.log(`Cloud Runner is running standard build automation`);
let output = ''; let output = '';
output += yield cloud_runner_custom_steps_1.CloudRunnerCustomSteps.RunPreBuildSteps(cloudRunnerStepState); output += yield cloud_runner_custom_steps_1.CloudRunnerCustomSteps.RunPreBuildSteps(cloudRunnerStepState);
@ -5754,9 +5754,15 @@ class BuildAutomationWorkflow {
output += yield cloud_runner_custom_steps_1.CloudRunnerCustomSteps.RunPostBuildSteps(cloudRunnerStepState); output += yield cloud_runner_custom_steps_1.CloudRunnerCustomSteps.RunPostBuildSteps(cloudRunnerStepState);
cloud_runner_logger_1.default.logWithTime('Configurable post build step(s) time'); cloud_runner_logger_1.default.logWithTime('Configurable post build step(s) time');
cloud_runner_logger_1.default.log(`Cloud Runner finished running standard build automation`); cloud_runner_logger_1.default.log(`Cloud Runner finished running standard build automation`);
if (cloud_runner_options_1.default.githubChecksEnabled) {
yield github_1.default.updateGitHubCheck(cloud_runner_options_1.default.githubOwner, cloud_runner_options_1.default.githubRepoName, cloud_runner_1.default.buildParameters.gitPrivateToken, 'test-check-name', cloud_runner_1.default.buildParameters.gitSha, 'A check test', cloud_runner_1.default.buildParameters.buildGuid, '');
}
return output; return output;
} }
catch (error) { catch (error) {
if (cloud_runner_options_1.default.githubChecksEnabled) {
yield github_1.default.updateGitHubCheck(cloud_runner_options_1.default.githubOwner, cloud_runner_options_1.default.githubRepoName, cloud_runner_1.default.buildParameters.gitPrivateToken, 'test-check-name', cloud_runner_1.default.buildParameters.gitSha, 'A check test', cloud_runner_1.default.buildParameters.buildGuid, '');
}
throw error; throw error;
} }
}); });

2
dist/index.js.map vendored

File diff suppressed because one or more lines are too long

View File

@ -15,7 +15,6 @@ import LocalCloudRunner from './providers/local';
import LocalDockerCloudRunner from './providers/docker'; import LocalDockerCloudRunner from './providers/docker';
import GitHub from '../github'; import GitHub from '../github';
import SharedWorkspaceLocking from './services/shared-workspace-locking'; import SharedWorkspaceLocking from './services/shared-workspace-locking';
import CloudRunnerOptions from './cloud-runner-options';
class CloudRunner { class CloudRunner {
public static Provider: ProviderInterface; public static Provider: ProviderInterface;
@ -69,17 +68,6 @@ class CloudRunner {
static async run(buildParameters: BuildParameters, baseImage: string) { static async run(buildParameters: BuildParameters, baseImage: string) {
CloudRunner.setup(buildParameters); CloudRunner.setup(buildParameters);
try { try {
if (CloudRunnerOptions.githubChecksEnabled) {
await GitHub.createGitHubCheck(
CloudRunnerOptions.githubOwner,
CloudRunnerOptions.githubRepoName,
buildParameters.gitPrivateToken,
'test-check-name',
buildParameters.gitSha,
'A check test',
buildParameters.buildGuid,
);
}
if (buildParameters.retainWorkspace) { if (buildParameters.retainWorkspace) {
CloudRunner.lockedWorkspace = `${CloudRunner.retainedWorkspacePrefix}-${CloudRunner.buildParameters.buildGuid}`; CloudRunner.lockedWorkspace = `${CloudRunner.retainedWorkspacePrefix}-${CloudRunner.buildParameters.buildGuid}`;

View File

@ -4,7 +4,7 @@ class KubernetesPods {
public static async IsPodRunning(podName: string, namespace: string, kubeClient: CoreV1Api) { public static async IsPodRunning(podName: string, namespace: string, kubeClient: CoreV1Api) {
const pods = (await kubeClient.listNamespacedPod(namespace)).body.items.filter((x) => podName === x.metadata?.name); const pods = (await kubeClient.listNamespacedPod(namespace)).body.items.filter((x) => podName === x.metadata?.name);
const running = pods.length > 0 && (pods[0].status?.phase === `Running` || pods[0].status?.phase === `Pending`); const running = pods.length > 0 && (pods[0].status?.phase === `Running` || pods[0].status?.phase === `Pending`);
const phase = pods[0].status?.phase || 'undefined status'; const phase = pods[0]?.status?.phase || 'undefined status';
CloudRunnerLogger.log(`Getting pod status: ${phase}`); CloudRunnerLogger.log(`Getting pod status: ${phase}`);
return running; return running;

View File

@ -8,6 +8,7 @@ import path from 'path';
import CloudRunner from '../cloud-runner'; import CloudRunner from '../cloud-runner';
import CloudRunnerOptions from '../cloud-runner-options'; import CloudRunnerOptions from '../cloud-runner-options';
import { CloudRunnerCustomSteps } from '../services/cloud-runner-custom-steps'; import { CloudRunnerCustomSteps } from '../services/cloud-runner-custom-steps';
import GitHub from '../../github';
export class BuildAutomationWorkflow implements WorkflowInterface { export class BuildAutomationWorkflow implements WorkflowInterface {
async run(cloudRunnerStepState: CloudRunnerStepState) { async run(cloudRunnerStepState: CloudRunnerStepState) {
@ -21,6 +22,17 @@ export class BuildAutomationWorkflow implements WorkflowInterface {
private static async standardBuildAutomation(baseImage: any, cloudRunnerStepState: CloudRunnerStepState) { private static async standardBuildAutomation(baseImage: any, cloudRunnerStepState: CloudRunnerStepState) {
// TODO accept post and pre build steps as yaml files in the repo // TODO accept post and pre build steps as yaml files in the repo
try { try {
if (CloudRunnerOptions.githubChecksEnabled) {
await GitHub.createGitHubCheck(
CloudRunnerOptions.githubOwner,
CloudRunnerOptions.githubRepoName,
CloudRunner.buildParameters.gitPrivateToken,
'test-check-name',
CloudRunner.buildParameters.gitSha,
'A check test',
CloudRunner.buildParameters.buildGuid,
);
}
CloudRunnerLogger.log(`Cloud Runner is running standard build automation`); CloudRunnerLogger.log(`Cloud Runner is running standard build automation`);
let output = ''; let output = '';
@ -49,9 +61,33 @@ export class BuildAutomationWorkflow implements WorkflowInterface {
CloudRunnerLogger.logWithTime('Configurable post build step(s) time'); CloudRunnerLogger.logWithTime('Configurable post build step(s) time');
CloudRunnerLogger.log(`Cloud Runner finished running standard build automation`); CloudRunnerLogger.log(`Cloud Runner finished running standard build automation`);
if (CloudRunnerOptions.githubChecksEnabled) {
await GitHub.updateGitHubCheck(
CloudRunnerOptions.githubOwner,
CloudRunnerOptions.githubRepoName,
CloudRunner.buildParameters.gitPrivateToken,
'test-check-name',
CloudRunner.buildParameters.gitSha,
'A check test',
CloudRunner.buildParameters.buildGuid,
'',
);
}
return output; return output;
} catch (error) { } catch (error) {
if (CloudRunnerOptions.githubChecksEnabled) {
await GitHub.updateGitHubCheck(
CloudRunnerOptions.githubOwner,
CloudRunnerOptions.githubRepoName,
CloudRunner.buildParameters.gitPrivateToken,
'test-check-name',
CloudRunner.buildParameters.gitSha,
'A check test',
CloudRunner.buildParameters.buildGuid,
'',
);
}
throw error; throw error;
} }
} }