@catladder/pipeline
Version:
Panter workflow for cloud CI/CD and DevOps
52 lines (46 loc) • 1.53 kB
text/typescript
import { getRunnerImage } from "../../../runner";
import type { ComponentContext } from "../../../types/context";
import type { CatladderJob } from "../../../types/jobs";
import { allowFailureInScripts } from "../../../utils/gitlab";
import { createDeployementJobs } from "../../base";
import { isOfDeployType } from "../../types";
import { ENV_VARS_FILENAME } from "./constants";
import { getCloudRunDeployScripts } from "./getCloudRunDeployScripts";
import { getCloudRunStopScripts } from "./getCloudRunStopScripts";
export const createGoogleCloudRunDeployJobs = (
context: ComponentContext,
): CatladderJob[] => {
const deployConfig = context.deploy?.config;
if (!isOfDeployType(deployConfig, "google-cloudrun")) {
// should not happen
throw new Error("deploy config is wrong");
}
const deployScripts = getCloudRunDeployScripts(context);
const stopScripts = getCloudRunStopScripts(context);
return createDeployementJobs(context, {
deploy: {
variables: {
CLOUDSDK_CORE_DISABLE_PROMPTS: "1",
},
...(deployConfig.debug
? {
artifacts: {
paths: [
ENV_VARS_FILENAME, // debug
],
when: "always",
},
}
: {}),
image: getRunnerImage("gcloud"),
script: deployScripts,
},
stop: {
image: getRunnerImage("gcloud"),
variables: {
CLOUDSDK_CORE_DISABLE_PROMPTS: "1",
},
script: allowFailureInScripts(stopScripts),
},
});
};