Skip to content

Commit df9f111

Browse files
ArthurSensroboquat
authored andcommitted
werft/build/prepare: Cleanup code
Signed-off-by: ArthurSens <arthursens2005@gmail.com>
1 parent 952450b commit df9f111

File tree

1 file changed

+41
-13
lines changed

1 file changed

+41
-13
lines changed

.werft/jobs/build/prepare.ts

Lines changed: 41 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,52 @@
1-
import * as shell from 'shelljs';
21
import { exec } from '../../util/shell';
32
import { Werft } from "../../util/werft";
43
import { GCLOUD_SERVICE_ACCOUNT_PATH } from "./const";
54

5+
const phaseName = "prepare";
6+
67
export async function prepare(werft: Werft) {
7-
werft.phase("prepare");
8+
werft.phase(phaseName);
9+
try {
10+
compareWerftAndGitpodImage()
11+
activateCoreDevServiceAccount()
12+
configureDocker()
13+
configureCoreDevAccess()
14+
} catch (err) {
15+
werft.fail(phaseName, err);
16+
}
17+
werft.done(phaseName);
18+
}
819

9-
const werftImg = shell.exec("cat .werft/build.yaml | grep dev-environment").trim().split(": ")[1];
10-
const devImg = shell.exec("yq r .gitpod.yml image").trim();
20+
// TODO: The reasoning behind this step should be clarified
21+
function compareWerftAndGitpodImage() {
22+
const werftImg = exec("cat .werft/build.yaml | grep dev-environment", { silent: true }).trim().split(": ")[1];
23+
const devImg = exec("yq r .gitpod.yml image", { silent: true }).trim();
1124
if (werftImg !== devImg) {
12-
werft.fail('prep', `Werft job image (${werftImg}) and Gitpod dev image (${devImg}) do not match`);
25+
throw new Error(`Werft job image (${werftImg}) and Gitpod dev image (${devImg}) do not match`);
1326
}
27+
}
1428

15-
try {
16-
exec(`gcloud auth activate-service-account --key-file "${GCLOUD_SERVICE_ACCOUNT_PATH}"`);
17-
exec("gcloud auth configure-docker --quiet");
18-
exec("gcloud auth configure-docker europe-docker.pkg.dev --quiet");
19-
exec('gcloud container clusters get-credentials core-dev --zone europe-west1-b --project gitpod-core-dev');
20-
werft.done('prep');
21-
} catch (err) {
22-
werft.fail('prep', err);
29+
function activateCoreDevServiceAccount() {
30+
const rc = exec(`gcloud auth activate-service-account --key-file "${GCLOUD_SERVICE_ACCOUNT_PATH}"`, { slice: phaseName }).code;
31+
32+
if (rc != 0) {
33+
throw new Error("Failed to activate core-dev service account.")
34+
}
35+
}
36+
37+
function configureDocker() {
38+
const rcDocker = exec("gcloud auth configure-docker --quiet", { slice: phaseName }).code;
39+
const rcDockerRegistry = exec("gcloud auth configure-docker europe-docker.pkg.dev --quiet", { slice: phaseName }).code;
40+
41+
if (rcDocker != 0 || rcDockerRegistry != 0) {
42+
throw new Error("Failed to configure docker with gcloud.")
2343
}
2444
}
45+
46+
function configureCoreDevAccess() {
47+
const rc = exec('gcloud container clusters get-credentials core-dev --zone europe-west1-b --project gitpod-core-dev', { slice: phaseName }).code;
48+
49+
if (rc != 0) {
50+
throw new Error("Failed to get core-dev kubeconfig credentials.")
51+
}
52+
}

0 commit comments

Comments
 (0)