@catladder/cli 0.0.0-next-e7541a00 → 0.0.0-next-4e7c6848

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. package/dist/bundles/catenv/index.js +626 -15
  2. package/dist/bundles/cli/index.js +628 -16
  3. package/dist/cli/src/apps/catenv/catenv.js +1 -2
  4. package/dist/cli/src/apps/catenv/catenv.js.map +1 -1
  5. package/dist/pipeline/src/backends/github/GithubBackend.d.ts +12 -0
  6. package/dist/pipeline/src/backends/github/GithubBackend.js +170 -0
  7. package/dist/pipeline/src/backends/github/GithubBackend.js.map +1 -0
  8. package/dist/pipeline/src/backends/github/ciVariables.d.ts +14 -0
  9. package/dist/pipeline/src/backends/github/ciVariables.js +31 -0
  10. package/dist/pipeline/src/backends/github/ciVariables.js.map +1 -0
  11. package/dist/pipeline/src/backends/github/createGithubJobs.d.ts +17 -0
  12. package/dist/pipeline/src/backends/github/createGithubJobs.js +208 -0
  13. package/dist/pipeline/src/backends/github/createGithubJobs.js.map +1 -0
  14. package/dist/pipeline/src/backends/github/githubReleaseJobs.d.ts +15 -0
  15. package/dist/pipeline/src/backends/github/githubReleaseJobs.js +65 -0
  16. package/dist/pipeline/src/backends/github/githubReleaseJobs.js.map +1 -0
  17. package/dist/pipeline/src/backends/github/index.d.ts +2 -0
  18. package/dist/pipeline/src/backends/github/index.js +26 -0
  19. package/dist/pipeline/src/backends/github/index.js.map +1 -0
  20. package/dist/pipeline/src/backends/github/scriptFunctions.d.ts +6 -0
  21. package/dist/pipeline/src/backends/github/scriptFunctions.js +30 -0
  22. package/dist/pipeline/src/backends/github/scriptFunctions.js.map +1 -0
  23. package/dist/pipeline/src/backends/gitlab/GitlabBackend.d.ts +1 -0
  24. package/dist/pipeline/src/backends/gitlab/GitlabBackend.js +7 -0
  25. package/dist/pipeline/src/backends/gitlab/GitlabBackend.js.map +1 -1
  26. package/dist/pipeline/src/backends/index.d.ts +8 -2
  27. package/dist/pipeline/src/backends/index.js +25 -3
  28. package/dist/pipeline/src/backends/index.js.map +1 -1
  29. package/dist/pipeline/src/backends/types.d.ts +7 -3
  30. package/dist/pipeline/src/bash/ciVariables.js +4 -2
  31. package/dist/pipeline/src/bash/ciVariables.js.map +1 -1
  32. package/dist/pipeline/src/constants.js +1 -1
  33. package/dist/pipeline/src/context/getReviewSlug.js +3 -1
  34. package/dist/pipeline/src/context/getReviewSlug.js.map +1 -1
  35. package/dist/pipeline/src/pipeline/generatePipelineFiles.d.ts +6 -1
  36. package/dist/pipeline/src/pipeline/generatePipelineFiles.js +14 -7
  37. package/dist/pipeline/src/pipeline/generatePipelineFiles.js.map +1 -1
  38. package/dist/pipeline/src/types/config.d.ts +20 -0
  39. package/dist/pipeline/src/types/github-types.d.ts +47 -0
  40. package/dist/pipeline/src/types/github-types.js +9 -0
  41. package/dist/pipeline/src/types/github-types.js.map +1 -0
  42. package/dist/pipeline/src/types/pipeline.d.ts +4 -3
  43. package/dist/tsconfig.tsbuildinfo +1 -1
  44. package/package.json +1 -1
  45. package/src/apps/catenv/catenv.ts +1 -1
@@ -10,7 +10,6 @@ const writeDotEnvFiles_1 = require("./writeDotEnvFiles");
10
10
  const writeEnvDTs_1 = require("./writeEnvDTs");
11
11
  const pipeline_1 = require("../../../../pipeline/src/index.js");
12
12
  exports.default = async (choice, options) => {
13
- var _a;
14
13
  const config = await (0, getProjectConfig_1.getProjectConfig)();
15
14
  if (!config) {
16
15
  return;
@@ -19,5 +18,5 @@ exports.default = async (choice, options) => {
19
18
  if (options === null || options === void 0 ? void 0 : options.verbose) {
20
19
  (0, verboseBanner_1.printVerboseBanner)();
21
20
  }
22
- await Promise.all([(0, pipeline_1.generatePipelineFiles)(context, (_a = config.pipelineType) !== null && _a !== void 0 ? _a : "gitlab"), (0, writeDotEnvFiles_1.writeDotEnvFiles)(context, choice), (0, writeEnvDTs_1.writeDTsFiles)(context, choice), (options === null || options === void 0 ? void 0 : options.printVariables) ? (0, printVariables_1.printVariables)(context, choice) : Promise.resolve()]);
21
+ await Promise.all([(0, pipeline_1.generatePipelineFiles)(context), (0, writeDotEnvFiles_1.writeDotEnvFiles)(context, choice), (0, writeEnvDTs_1.writeDTsFiles)(context, choice), (options === null || options === void 0 ? void 0 : options.printVariables) ? (0, printVariables_1.printVariables)(context, choice) : Promise.resolve()]);
23
22
  };
@@ -1 +1 @@
1
- {"version":3,"file":"catenv.js","sourceRoot":"","sources":["../../../../../src/apps/catenv/catenv.ts"],"names":[],"mappings":";;AAAA,oEAAiE;AACjE,qDAAkD;AAElD,mDAAqD;AACrD,yDAAsD;AACtD,+CAA8C;AAC9C,kDAG6B;AAM7B,kBAAe,KAAK,EAAE,MAAe,EAAE,OAAiB,EAAE,EAAE;;IAC1D,MAAM,MAAM,GAAG,MAAM,IAAA,mCAAgB,GAAE,CAAC;IACxC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO;IACT,CAAC;IAED,MAAM,OAAO,GAAG,IAAA,8BAAmB,EAAC,MAAM,CAAC,CAAC;IAC5C,IAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO,EAAE,CAAC;QACrB,IAAA,kCAAkB,GAAE,CAAC;IACvB,CAAC;IAED,MAAM,OAAO,CAAC,GAAG,CAAC;QAChB,IAAA,gCAAqB,EAAC,OAAO,EAAE,MAAA,MAAM,CAAC,YAAY,mCAAI,QAAQ,CAAC;QAC/D,IAAA,mCAAgB,EAAC,OAAO,EAAE,MAAM,CAAC;QAEjC,IAAA,2BAAa,EAAC,OAAO,EAAE,MAAM,CAAC;QAC9B,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,cAAc;YACrB,CAAC,CAAC,IAAA,+BAAc,EAAC,OAAO,EAAE,MAAM,CAAC;YACjC,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE;KACtB,CAAC,CAAC;AACL,CAAC,CAAC"}
1
+ {"version":3,"file":"catenv.js","sourceRoot":"","sources":["../../../../../src/apps/catenv/catenv.ts"],"names":[],"mappings":";;AAAA,oEAAiE;AACjE,qDAAkD;AAElD,mDAAqD;AACrD,yDAAsD;AACtD,+CAA8C;AAC9C,kDAG6B;AAM7B,kBAAe,KAAK,EAAE,MAAe,EAAE,OAAiB,EAAE,EAAE;IAC1D,MAAM,MAAM,GAAG,MAAM,IAAA,mCAAgB,GAAE,CAAC;IACxC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO;IACT,CAAC;IAED,MAAM,OAAO,GAAG,IAAA,8BAAmB,EAAC,MAAM,CAAC,CAAC;IAC5C,IAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO,EAAE,CAAC;QACrB,IAAA,kCAAkB,GAAE,CAAC;IACvB,CAAC;IAED,MAAM,OAAO,CAAC,GAAG,CAAC;QAChB,IAAA,gCAAqB,EAAC,OAAO,CAAC;QAC9B,IAAA,mCAAgB,EAAC,OAAO,EAAE,MAAM,CAAC;QAEjC,IAAA,2BAAa,EAAC,OAAO,EAAE,MAAM,CAAC;QAC9B,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,cAAc;YACrB,CAAC,CAAC,IAAA,+BAAc,EAAC,OAAO,EAAE,MAAM,CAAC;YACjC,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE;KACtB,CAAC,CAAC;AACL,CAAC,CAAC"}
@@ -0,0 +1,12 @@
1
+ import type { Config } from "../../types";
2
+ import type { GithubWorkflow } from "../../types/github-types";
3
+ import type { PipelineBackend, PipelineFile } from "../types";
4
+ export declare class GithubBackend implements PipelineBackend {
5
+ readonly type: "github";
6
+ cleanup(): Promise<void>;
7
+ createFiles(config: Config): Promise<PipelineFile[]>;
8
+ /**
9
+ * all workflows keyed by file name, mainly for testing purposes
10
+ */
11
+ createWorkflows(config: Config): Promise<Record<string, GithubWorkflow>>;
12
+ }
@@ -0,0 +1,170 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.GithubBackend = void 0;
7
+ const promises_1 = require("fs/promises");
8
+ const path_1 = require("path");
9
+ const createAllJobs_1 = require("../../pipeline/createAllJobs");
10
+ const config_1 = require("../../types/config");
11
+ const ciVariables_1 = require("./ciVariables");
12
+ const createGithubJobs_1 = require("./createGithubJobs");
13
+ const githubReleaseJobs_1 = require("./githubReleaseJobs");
14
+ const WORKFLOWS_FOLDER = ".github/workflows";
15
+ /**
16
+ * generated workflow files are prefixed so that cleanup never touches
17
+ * user-maintained workflows in the same folder
18
+ */
19
+ const GENERATED_FILE_PREFIX = "catladder-";
20
+ const TRIGGER_WORKFLOWS = {
21
+ mr: {
22
+ name: "catladder review",
23
+ on: {
24
+ pull_request: {
25
+ types: ["opened", "synchronize", "reopened"]
26
+ }
27
+ },
28
+ concurrency: {
29
+ group: "catladder-review-${{ github.event.number }}",
30
+ "cancel-in-progress": true
31
+ }
32
+ },
33
+ mainBranch: {
34
+ name: "catladder main",
35
+ // TODO: make the default branch configurable
36
+ on: {
37
+ push: {
38
+ branches: ["main"]
39
+ }
40
+ }
41
+ },
42
+ taggedRelease: {
43
+ name: "catladder release",
44
+ on: {
45
+ push: {
46
+ tags: ["v*"]
47
+ }
48
+ }
49
+ }
50
+ };
51
+ class GithubBackend {
52
+ constructor() {
53
+ this.type = "github";
54
+ }
55
+ async cleanup() {
56
+ const entries = await (0, promises_1.readdir)(WORKFLOWS_FOLDER).catch(() => []);
57
+ await Promise.all(entries.filter(file => file.startsWith(GENERATED_FILE_PREFIX)).map(file => (0, promises_1.unlink)((0, path_1.join)(WORKFLOWS_FOLDER, file))));
58
+ }
59
+ async createFiles(config) {
60
+ const workflows = await this.createWorkflows(config);
61
+ return Object.entries(workflows).map(([fileName, workflow]) => ({
62
+ path: (0, path_1.join)(WORKFLOWS_FOLDER, fileName),
63
+ content: workflow
64
+ }));
65
+ }
66
+ /**
67
+ * all workflows keyed by file name, mainly for testing purposes
68
+ */
69
+ async createWorkflows(config) {
70
+ const workflows = {};
71
+ const reviewStopJobs = {};
72
+ const manualJobs = {};
73
+ for (const trigger of config_1.ALL_PIPELINE_TRIGGERS) {
74
+ const allJobs = await (0, createAllJobs_1.createAllJobs)({
75
+ config,
76
+ trigger,
77
+ pipelineType: this.type
78
+ });
79
+ const uploadProviderIds = (0, createGithubJobs_1.getUploadProviderIds)(allJobs);
80
+ const jobs = {};
81
+ // NOTE: agent jobs are gitlab-only and skipped on github
82
+ [...allJobs.workspaces, ...allJobs.components].forEach(({
83
+ context,
84
+ jobs: contextJobs
85
+ }) => contextJobs.forEach(job => {
86
+ const [id, githubJob] = (0, createGithubJobs_1.makeGithubJob)(context, job, allJobs, uploadProviderIds);
87
+ if (isReviewStopJob(context, job)) {
88
+ reviewStopJobs[id] = githubJob;
89
+ } else if (isManualTaskJob(job)) {
90
+ manualJobs[id] = githubJob;
91
+ } else {
92
+ jobs[id] = githubJob;
93
+ }
94
+ }));
95
+ if (trigger === "mainBranch") {
96
+ const releaseJobs = (0, githubReleaseJobs_1.getGithubReleaseJobs)(config, Object.keys(jobs));
97
+ Object.assign(jobs, releaseJobs.main);
98
+ Object.assign(manualJobs, releaseJobs.manual);
99
+ }
100
+ if (Object.keys(jobs).length > 0) {
101
+ workflows[`${GENERATED_FILE_PREFIX}${workflowFileName(trigger)}`] = {
102
+ ...TRIGGER_WORKFLOWS[trigger],
103
+ env: ciVariables_1.GITHUB_INJECTED_WORKFLOW_ENV,
104
+ jobs
105
+ };
106
+ }
107
+ }
108
+ if (Object.keys(reviewStopJobs).length > 0) {
109
+ workflows[`${GENERATED_FILE_PREFIX}review-stop.yml`] = {
110
+ name: "catladder review stop",
111
+ on: {
112
+ pull_request: {
113
+ types: ["closed"]
114
+ }
115
+ },
116
+ env: ciVariables_1.GITHUB_INJECTED_WORKFLOW_ENV,
117
+ jobs: reviewStopJobs
118
+ };
119
+ }
120
+ if (Object.keys(manualJobs).length > 0) {
121
+ workflows[`${GENERATED_FILE_PREFIX}manual.yml`] = {
122
+ name: "catladder manual tasks",
123
+ on: {
124
+ workflow_dispatch: {
125
+ inputs: {
126
+ job: {
127
+ description: "the task to run",
128
+ required: true,
129
+ type: "choice",
130
+ options: Object.keys(manualJobs)
131
+ }
132
+ }
133
+ }
134
+ },
135
+ env: ciVariables_1.GITHUB_INJECTED_WORKFLOW_ENV,
136
+ jobs: Object.fromEntries(Object.entries(manualJobs).map(([id, job]) => [id, {
137
+ ...job,
138
+ if: `\${{ inputs.job == '${id}' }}`
139
+ }]))
140
+ };
141
+ }
142
+ return workflows;
143
+ }
144
+ }
145
+ exports.GithubBackend = GithubBackend;
146
+ const workflowFileName = trigger => {
147
+ switch (trigger) {
148
+ case "mr":
149
+ return "review.yml";
150
+ case "mainBranch":
151
+ return "main.yml";
152
+ case "taggedRelease":
153
+ return "release.yml";
154
+ }
155
+ throw new Error(`${trigger} is not supported`);
156
+ };
157
+ /**
158
+ * stop jobs of review environments run in their own workflow when the
159
+ * pull request is closed (the counterpart of gitlab's on_stop wiring)
160
+ */
161
+ const isReviewStopJob = (context, job) => {
162
+ var _a;
163
+ return ((_a = job.environment) === null || _a === void 0 ? void 0 : _a.action) === "stop" && context.type === "component" && context.environment.envType === "review";
164
+ };
165
+ /**
166
+ * stop/rollback jobs of non-review environments have no automatic
167
+ * trigger; they are collected in a workflow_dispatch workflow
168
+ * (gitlab runs them as manual jobs inside the pipeline)
169
+ */
170
+ const isManualTaskJob = job => job.stage === "stop" || job.stage === "rollback";
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GithubBackend.js","sourceRoot":"","sources":["../../../../../../pipeline/src/backends/github/GithubBackend.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import type { CiVariableName } from "../../bash/ciVariables";
2
+ /**
3
+ * how the github backend names the predefined CI variables.
4
+ *
5
+ * GITHUB_* variables are provided by github actions natively; the CL_*
6
+ * variables are injected by the {@link GithubBackend} itself (workflow or
7
+ * job level), because github has no direct counterpart.
8
+ */
9
+ export declare const GITHUB_CI_VARIABLES: Record<CiVariableName, string>;
10
+ /**
11
+ * the workflow-level env the backend injects to provide the CL_*
12
+ * variables referenced by {@link GITHUB_CI_VARIABLES}
13
+ */
14
+ export declare const GITHUB_INJECTED_WORKFLOW_ENV: Record<string, string>;
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.GITHUB_INJECTED_WORKFLOW_ENV = exports.GITHUB_CI_VARIABLES = void 0;
7
+ /**
8
+ * how the github backend names the predefined CI variables.
9
+ *
10
+ * GITHUB_* variables are provided by github actions natively; the CL_*
11
+ * variables are injected by the {@link GithubBackend} itself (workflow or
12
+ * job level), because github has no direct counterpart.
13
+ */
14
+ exports.GITHUB_CI_VARIABLES = {
15
+ commitSha: "GITHUB_SHA",
16
+ jobToken: "CL_JOB_TOKEN",
17
+ jobImage: "CL_JOB_IMAGE",
18
+ registry: "CL_REGISTRY",
19
+ registryImage: "CL_REGISTRY_IMAGE"
20
+ };
21
+ /**
22
+ * the workflow-level env the backend injects to provide the CL_*
23
+ * variables referenced by {@link GITHUB_CI_VARIABLES}
24
+ */
25
+ exports.GITHUB_INJECTED_WORKFLOW_ENV = {
26
+ CL_JOB_TOKEN: "${{ github.token }}",
27
+ CL_REGISTRY: "ghcr.io",
28
+ CL_REGISTRY_IMAGE: "ghcr.io/${{ github.repository }}",
29
+ // empty outside of pull request events
30
+ CL_PR_NUMBER: "${{ github.event.number }}"
31
+ };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ciVariables.js","sourceRoot":"","sources":["../../../../../../pipeline/src/backends/github/ciVariables.ts"],"names":[],"mappings":";;;AAEA;;;;;;GAMG;AACU,QAAA,mBAAmB,GAAmC;IACjE,SAAS,EAAE,YAAY;IACvB,QAAQ,EAAE,cAAc;IACxB,QAAQ,EAAE,cAAc;IACxB,QAAQ,EAAE,aAAa;IACvB,aAAa,EAAE,mBAAmB;CACnC,CAAC;AAEF;;;GAGG;AACU,QAAA,4BAA4B,GAA2B;IAClE,YAAY,EAAE,qBAAqB;IACnC,WAAW,EAAE,SAAS;IACtB,iBAAiB,EAAE,kCAAkC;IACrD,uCAAuC;IACvC,YAAY,EAAE,4BAA4B;CAC3C,CAAC"}
@@ -0,0 +1,17 @@
1
+ import type { AllCatladderJobs } from "../../pipeline/createAllJobs";
2
+ import type { Context } from "../../types";
3
+ import type { GithubJob } from "../../types/github-types";
4
+ import type { CatladderJob } from "../../types/jobs";
5
+ export declare const githubJobId: (context: Context, jobName: string) => string;
6
+ type ResolvedNeed = {
7
+ id: string;
8
+ artifacts: boolean;
9
+ };
10
+ export declare const resolveGithubNeeds: (context: Context, job: CatladderJob, allJobs: AllCatladderJobs) => ResolvedNeed[];
11
+ export declare const makeGithubJob: (context: Context, job: CatladderJob, allJobs: AllCatladderJobs, uploadProviderIds: Set<string>) => [id: string, githubJob: GithubJob];
12
+ /**
13
+ * the ids of all jobs whose artifacts are consumed by other jobs
14
+ * (they need an upload step)
15
+ */
16
+ export declare const getUploadProviderIds: (allJobs: AllCatladderJobs) => Set<string>;
17
+ export {};
@@ -0,0 +1,208 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.getUploadProviderIds = exports.makeGithubJob = exports.resolveGithubNeeds = exports.githubJobId = void 0;
7
+ const lodash_es_1 = require("lodash-es");
8
+ const getInjectVarsScript_1 = require("../../bash/getInjectVarsScript");
9
+ const createJobCache_1 = require("../../build/cache/createJobCache");
10
+ const getEnvironmentVariables_1 = require("../../context/getEnvironmentVariables");
11
+ const utils_1 = require("../../utils");
12
+ const gitlab_1 = require("../../utils/gitlab");
13
+ const scriptFunctions_1 = require("./scriptFunctions");
14
+ /**
15
+ * runner variables that only make sense on gitlab runners and must not
16
+ * leak into github jobs (docker-in-docker daemon config, kubernetes
17
+ * executor resource requests, gitlab clone strategy)
18
+ */
19
+ const GITLAB_ONLY_RUNNER_VARIABLES = new Set(["DOCKER_HOST", "DOCKER_TLS_CERTDIR", "DOCKER_DRIVER", "KUBERNETES_CPU_REQUEST", "KUBERNETES_MEMORY_REQUEST", "KUBERNETES_CPU_LIMIT", "KUBERNETES_MEMORY_LIMIT", "GIT_STRATEGY"]);
20
+ /**
21
+ * github runs docker natively on its runners, gitlab needs a
22
+ * docker-in-docker service for it
23
+ */
24
+ const isDindService = image => /(^|\/)docker:.*dind/.test(image);
25
+ const slug = value => {
26
+ const slugged = value.toLowerCase().replace(/[^a-z0-9]+/g, "-").replace(/^-+|-+$/g, "");
27
+ // job ids must start with a letter or _
28
+ return /^[a-z_]/.test(slugged) ? slugged : `job-${slugged}`;
29
+ };
30
+ const githubJobId = (context, jobName) => slug(`${context.type === "workspace" ? "ws-" : ""}${context.name}-${jobName}-${context.env}`);
31
+ exports.githubJobId = githubJobId;
32
+ const githubJobName = (context, jobName) => `${context.name} ${jobName} | ${context.env}`;
33
+ const resolveNeed = (context, need, allJobs) => {
34
+ var _a;
35
+ const env = context.env;
36
+ const findComponentJob = (componentName, jobName) => {
37
+ const provider = allJobs.components.find(c => c.context.name === componentName && c.context.env === env);
38
+ const job = provider === null || provider === void 0 ? void 0 : provider.jobs.find(j => j.name === jobName);
39
+ if (!provider || !job) {
40
+ throw new Error(`unknown job referenced: '${jobName}' from '${env}:${componentName}'`);
41
+ }
42
+ return (0, exports.githubJobId)(provider.context, jobName);
43
+ };
44
+ const findWorkspaceJob = (workspaceName, jobName) => {
45
+ const provider = allJobs.workspaces.find(w => w.context.name === workspaceName && w.context.env === env);
46
+ const job = provider === null || provider === void 0 ? void 0 : provider.jobs.find(j => j.name === jobName);
47
+ if (!provider || !job) {
48
+ throw new Error(`unknown job referenced: '${jobName}' from workspace '${env}:${workspaceName}'`);
49
+ }
50
+ return (0, exports.githubJobId)(provider.context, jobName);
51
+ };
52
+ if ((0, lodash_es_1.isObject)(need)) {
53
+ if ("workspaceName" in need && need.workspaceName) {
54
+ return {
55
+ id: findWorkspaceJob(need.workspaceName, need.job),
56
+ artifacts: need.artifacts
57
+ };
58
+ }
59
+ return {
60
+ id: findComponentJob((_a = "componentName" in need ? need.componentName : undefined) !== null && _a !== void 0 ? _a : context.name, need.job),
61
+ artifacts: need.artifacts
62
+ };
63
+ }
64
+ return {
65
+ id: context.type === "workspace" ? findWorkspaceJob(context.name, need) : findComponentJob(context.name, need),
66
+ // plain string needs download artifacts by default (gitlab semantics)
67
+ artifacts: true
68
+ };
69
+ };
70
+ const resolveGithubNeeds = (context, job, allJobs) => {
71
+ var _a;
72
+ const resolved = ((_a = job.needs) !== null && _a !== void 0 ? _a : []).map(need => resolveNeed(context, need, allJobs));
73
+ // deduplicate by provider id, explicit entries win (they come last)
74
+ return [...new Map(resolved.map(n => [n.id, n])).values()].sort((a, b) => a.id.localeCompare(b.id));
75
+ };
76
+ exports.resolveGithubNeeds = resolveGithubNeeds;
77
+ const createCacheSteps = (context, job) => {
78
+ var _a, _b;
79
+ if (!((_a = job.caches) === null || _a === void 0 ? void 0 : _a.length)) {
80
+ return [];
81
+ }
82
+ const lowered = (_b = (0, createJobCache_1.createJobCacheFromCacheConfigs)(context, job.caches)) !== null && _b !== void 0 ? _b : [];
83
+ return (0, utils_1.ensureArray)(lowered).map(cache => {
84
+ var _a, _b, _c, _d, _e, _f;
85
+ const paths = (0, utils_1.ensureArray)((_a = cache.paths) !== null && _a !== void 0 ? _a : []);
86
+ const key = cache.key;
87
+ const {
88
+ cacheKey,
89
+ restoreKeyPrefix,
90
+ label
91
+ } = typeof key === "string" || key === undefined ? {
92
+ // unique key per run so the cache is re-saved, restored via prefix
93
+ cacheKey: `${key !== null && key !== void 0 ? key : "cache"}-\${{ github.run_id }}`,
94
+ restoreKeyPrefix: `${key !== null && key !== void 0 ? key : "cache"}-`,
95
+ label: key !== null && key !== void 0 ? key : "cache"
96
+ } : {
97
+ cacheKey: `${(_b = key.prefix) !== null && _b !== void 0 ? _b : "files"}-\${{ hashFiles(${((_c = key.files) !== null && _c !== void 0 ? _c : []).map(f => `'${f}'`).join(", ")}) }}`,
98
+ restoreKeyPrefix: `${(_d = key.prefix) !== null && _d !== void 0 ? _d : "files"}-`,
99
+ label: (_e = key.prefix) !== null && _e !== void 0 ? _e : ((_f = key.files) !== null && _f !== void 0 ? _f : []).join(",")
100
+ };
101
+ return {
102
+ name: `Cache ${label}`,
103
+ // pull-only caches are restored but never saved
104
+ uses: cache.policy === "pull" ? "actions/cache/restore@v4" : "actions/cache@v4",
105
+ with: {
106
+ path: paths.join("\n"),
107
+ key: cacheKey,
108
+ "restore-keys": restoreKeyPrefix
109
+ }
110
+ };
111
+ });
112
+ };
113
+ const getSecretsEnv = context => {
114
+ var _a, _b;
115
+ const keys = [...context.environment.secretEnvVarKeys, ...((_a = context.environment.jobOnlyVars.build.secretEnvVarKeys) !== null && _a !== void 0 ? _a : []), ...((_b = context.environment.jobOnlyVars.deploy.secretEnvVarKeys) !== null && _b !== void 0 ? _b : [])];
116
+ return Object.fromEntries(keys.map(({
117
+ key
118
+ }) => {
119
+ const name = (0, getEnvironmentVariables_1.getSecretVarName)(context.env, context.name, key);
120
+ return [name, `\${{ secrets.${name} }}`];
121
+ }));
122
+ };
123
+ const makeGithubJob = (context, job, allJobs, uploadProviderIds) => {
124
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j;
125
+ const id = (0, exports.githubJobId)(context, job.name);
126
+ const isComponent = context.type === "component";
127
+ const createsJobEnv = !!job.environment && isComponent && (!job.environment.action || job.environment.action === "start");
128
+ const skipCheckout = ((_a = job.runnerVariables) === null || _a === void 0 ? void 0 : _a.GIT_STRATEGY) === "none";
129
+ const needs = (0, exports.resolveGithubNeeds)(context, job, allJobs);
130
+ const image = typeof job.image === "string" ? job.image : Array.isArray(job.image) ? job.image[0] : (_b = job.image) === null || _b === void 0 ? void 0 : _b.name;
131
+ const runScript = [...(0, scriptFunctions_1.getGithubScriptFunctionDefinitions)(), ...(0, gitlab_1.collapseableSection)("injectvars", "Injecting variables")((0, getInjectVarsScript_1.getInjectVarsScript)((_c = job.variables) !== null && _c !== void 0 ? _c : {})), ...((_e = (_d = job.script) === null || _d === void 0 ? void 0 : _d.filter(utils_1.notNil)) !== null && _e !== void 0 ? _e : []), ...(createsJobEnv ? [`echo "url=$ROOT_URL" >> "$GITHUB_OUTPUT"`] : [])].join("\n");
132
+ const artifactPaths = (_g = (_f = job.artifacts) === null || _f === void 0 ? void 0 : _f.paths) !== null && _g !== void 0 ? _g : [];
133
+ const services = Object.fromEntries(((_h = job.services) !== null && _h !== void 0 ? _h : []).map(service => typeof service === "string" ? {
134
+ name: service
135
+ } : service).filter(service => !isDindService(service.name)).map(service => [slug("alias" in service && service.alias ? service.alias : service.name), {
136
+ image: service.name,
137
+ ...("variables" in service && service.variables ? {
138
+ env: service.variables
139
+ } : {})
140
+ }]));
141
+ const env = {
142
+ ...Object.fromEntries(Object.entries((_j = job.runnerVariables) !== null && _j !== void 0 ? _j : {}).filter(([key]) => !GITLAB_ONLY_RUNNER_VARIABLES.has(key))),
143
+ ...(isComponent ? getSecretsEnv(context) : {}),
144
+ CL_JOB_IMAGE: image !== null && image !== void 0 ? image : "runner"
145
+ };
146
+ const githubJob = {
147
+ name: githubJobName(context, job.name),
148
+ "runs-on": "ubuntu-latest",
149
+ ...(needs.length > 0 ? {
150
+ needs: needs.map(n => n.id)
151
+ } : {}),
152
+ ...(image ? {
153
+ container: {
154
+ image
155
+ }
156
+ } : {}),
157
+ ...(Object.keys(services).length > 0 ? {
158
+ services
159
+ } : {}),
160
+ ...(job.environment && isComponent ? {
161
+ environment: {
162
+ name: context.environment.envType === "review" ? `review-pr\${{ github.event.number }}-${context.name}` : `${context.env}-${context.name}`,
163
+ ...(createsJobEnv ? {
164
+ url: "${{ steps.main.outputs.url }}"
165
+ } : {})
166
+ }
167
+ } : {}),
168
+ env,
169
+ steps: [...(skipCheckout ? [] : [{
170
+ name: "Checkout",
171
+ uses: "actions/checkout@v4"
172
+ }]), ...createCacheSteps(context, job), ...needs.filter(n => n.artifacts).map(n => ({
173
+ name: `Download artifacts from ${n.id}`,
174
+ uses: "actions/download-artifact@v4",
175
+ with: {
176
+ name: n.id
177
+ }
178
+ })), {
179
+ name: job.name,
180
+ id: "main",
181
+ run: runScript,
182
+ shell: "bash"
183
+ }, ...(uploadProviderIds.has(id) || artifactPaths.length > 0 ? artifactPaths.length > 0 ? [{
184
+ name: "Upload artifacts",
185
+ uses: "actions/upload-artifact@v4",
186
+ with: {
187
+ name: id,
188
+ path: artifactPaths.join("\n"),
189
+ "if-no-files-found": "warn"
190
+ }
191
+ }] : [] : [])]
192
+ };
193
+ return [id, githubJob];
194
+ };
195
+ exports.makeGithubJob = makeGithubJob;
196
+ /**
197
+ * the ids of all jobs whose artifacts are consumed by other jobs
198
+ * (they need an upload step)
199
+ */
200
+ const getUploadProviderIds = allJobs => {
201
+ const ids = new Set();
202
+ [...allJobs.workspaces, ...allJobs.components].forEach(({
203
+ context,
204
+ jobs
205
+ }) => jobs.forEach(job => (0, exports.resolveGithubNeeds)(context, job, allJobs).filter(n => n.artifacts).forEach(n => ids.add(n.id))));
206
+ return ids;
207
+ };
208
+ exports.getUploadProviderIds = getUploadProviderIds;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createGithubJobs.js","sourceRoot":"","sources":["../../../../../../pipeline/src/backends/github/createGithubJobs.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import type { Config } from "../../types";
2
+ import type { GithubJob } from "../../types/github-types";
3
+ /**
4
+ * the release jobs for the github backend (the counterpart of the
5
+ * gitlab release jobs):
6
+ * - releases.when === "auto": the release job runs in the main-branch
7
+ * workflow after all other jobs; a force variant goes to the manual
8
+ * tasks workflow
9
+ * - otherwise (manual, the default): the release job goes to the
10
+ * manual tasks workflow
11
+ */
12
+ export declare const getGithubReleaseJobs: (config: Config, mainWorkflowJobIds: string[]) => {
13
+ main: Record<string, GithubJob>;
14
+ manual: Record<string, GithubJob>;
15
+ };
@@ -0,0 +1,65 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.getGithubReleaseJobs = void 0;
7
+ const runner_1 = require("../../runner");
8
+ const createReleaseJob = needs => ({
9
+ name: "create release",
10
+ "runs-on": "ubuntu-latest",
11
+ container: {
12
+ image: (0, runner_1.getRunnerImage)("semantic-release")
13
+ },
14
+ // semantic-release pushes the version tag and release commit
15
+ permissions: {
16
+ contents: "write"
17
+ },
18
+ ...(needs && needs.length > 0 ? {
19
+ needs
20
+ } : {}),
21
+ env: {
22
+ GITHUB_TOKEN: "${{ github.token }}"
23
+ },
24
+ steps: [{
25
+ name: "Checkout",
26
+ uses: "actions/checkout@v4",
27
+ // semantic-release needs the full history to determine the version
28
+ with: {
29
+ "fetch-depth": 0
30
+ }
31
+ }, {
32
+ name: "create release",
33
+ run: "semanticRelease",
34
+ shell: "bash"
35
+ }]
36
+ });
37
+ /**
38
+ * the release jobs for the github backend (the counterpart of the
39
+ * gitlab release jobs):
40
+ * - releases.when === "auto": the release job runs in the main-branch
41
+ * workflow after all other jobs; a force variant goes to the manual
42
+ * tasks workflow
43
+ * - otherwise (manual, the default): the release job goes to the
44
+ * manual tasks workflow
45
+ */
46
+ const getGithubReleaseJobs = (config, mainWorkflowJobIds) => {
47
+ var _a;
48
+ if (((_a = config.releases) === null || _a === void 0 ? void 0 : _a.when) === "auto") {
49
+ return {
50
+ main: {
51
+ "create-release": createReleaseJob(mainWorkflowJobIds)
52
+ },
53
+ manual: {
54
+ "force-create-release": createReleaseJob()
55
+ }
56
+ };
57
+ }
58
+ return {
59
+ main: {},
60
+ manual: {
61
+ "create-release": createReleaseJob()
62
+ }
63
+ };
64
+ };
65
+ exports.getGithubReleaseJobs = getGithubReleaseJobs;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"githubReleaseJobs.js","sourceRoot":"","sources":["../../../../../../pipeline/src/backends/github/githubReleaseJobs.ts"],"names":[],"mappings":";;;AAAA,yCAA8C;AAI9C,MAAM,gBAAgB,GAAG,CAAC,KAAgB,EAAa,EAAE,CAAC,CAAC;IACzD,IAAI,EAAE,gBAAgB;IACtB,SAAS,EAAE,eAAe;IAC1B,SAAS,EAAE,EAAE,KAAK,EAAE,IAAA,uBAAc,EAAC,kBAAkB,CAAC,EAAE;IACxD,6DAA6D;IAC7D,WAAW,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE;IAClC,GAAG,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAC/C,GAAG,EAAE;QACH,YAAY,EAAE,qBAAqB;KACpC;IACD,KAAK,EAAE;QACL;YACE,IAAI,EAAE,UAAU;YAChB,IAAI,EAAE,qBAAqB;YAC3B,mEAAmE;YACnE,IAAI,EAAE,EAAE,aAAa,EAAE,CAAC,EAAE;SAC3B;QACD;YACE,IAAI,EAAE,gBAAgB;YACtB,GAAG,EAAE,iBAAiB;YACtB,KAAK,EAAE,MAAM;SACd;KACF;CACF,CAAC,CAAC;AAEH;;;;;;;;GAQG;AACI,MAAM,oBAAoB,GAAG,CAClC,MAAc,EACd,kBAA4B,EAI5B,EAAE;;IACF,IAAI,CAAA,MAAA,MAAM,CAAC,QAAQ,0CAAE,IAAI,MAAK,MAAM,EAAE,CAAC;QACrC,OAAO;YACL,IAAI,EAAE,EAAE,gBAAgB,EAAE,gBAAgB,CAAC,kBAAkB,CAAC,EAAE;YAChE,MAAM,EAAE,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,EAAE;SACvD,CAAC;IACJ,CAAC;IACD,OAAO;QACL,IAAI,EAAE,EAAE;QACR,MAAM,EAAE,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,EAAE;KACjD,CAAC;AACJ,CAAC,CAAC;AAjBW,QAAA,oBAAoB,wBAiB/B"}
@@ -0,0 +1,2 @@
1
+ export * from "./GithubBackend";
2
+ export * from "./ciVariables";
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+
3
+ var __createBinding = this && this.__createBinding || (Object.create ? function (o, m, k, k2) {
4
+ if (k2 === undefined) k2 = k;
5
+ var desc = Object.getOwnPropertyDescriptor(m, k);
6
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
7
+ desc = {
8
+ enumerable: true,
9
+ get: function () {
10
+ return m[k];
11
+ }
12
+ };
13
+ }
14
+ Object.defineProperty(o, k2, desc);
15
+ } : function (o, m, k, k2) {
16
+ if (k2 === undefined) k2 = k;
17
+ o[k2] = m[k];
18
+ });
19
+ var __exportStar = this && this.__exportStar || function (m, exports) {
20
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
21
+ };
22
+ Object.defineProperty(exports, "__esModule", {
23
+ value: true
24
+ });
25
+ __exportStar(require("./GithubBackend"), exports);
26
+ __exportStar(require("./ciVariables"), exports);
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../pipeline/src/backends/github/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,kDAAgC;AAChC,gDAA8B"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * the bash function definitions to prepend to every job script.
3
+ * github has no pipeline-wide before_script like gitlab, so each job
4
+ * carries its own definitions.
5
+ */
6
+ export declare const getGithubScriptFunctionDefinitions: () => string[];