@catladder/cli 2.1.0 → 2.2.0

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.
@@ -14,7 +14,7 @@ const createMainPipeline = async (pipelineType, config) => {
14
14
  // for all triggers create jobs and add base rules
15
15
  const allJobsPerTrigger = await Promise.all(config_1.ALL_PIPELINE_TRIGGERS.map(async (trigger) => await (0, createGitlabJobs_1.createGitlabJobs)(await (0, createAllJobs_1.createAllJobs)({ config, trigger, pipelineType }), getGitlabRulesForTrigger(trigger)))).then((j) => j.flat());
16
16
  const allWorkspaceJobs = allJobsPerTrigger
17
- .filter((j) => j.context.type === "workspace") // sort by componentName in the same order as they appear in the config
17
+ .filter((j) => { var _a; return ((_a = j.context) === null || _a === void 0 ? void 0 : _a.type) === "workspace"; }) // sort by componentName in the same order as they appear in the config
18
18
  // this is purely for better readability in git diffs when you add new components
19
19
  .sort((a, b) => {
20
20
  var _a;
@@ -24,7 +24,7 @@ const createMainPipeline = async (pipelineType, config) => {
24
24
  return aIndex - bIndex;
25
25
  });
26
26
  const allComponentJobs = allJobsPerTrigger
27
- .filter((j) => j.context.type === "component")
27
+ .filter((j) => { var _a; return ((_a = j.context) === null || _a === void 0 ? void 0 : _a.type) === "component"; })
28
28
  // sort by componentName in the same order as they appear in the config
29
29
  // this is purely for better readability in git diffs when you add new components
30
30
  .sort((a, b) => {
@@ -33,18 +33,18 @@ const createMainPipeline = async (pipelineType, config) => {
33
33
  const bIndex = componentNames.findIndex((c) => c === b.context.name);
34
34
  return aIndex - bIndex;
35
35
  });
36
- const allJobs = [...allWorkspaceJobs, ...allComponentJobs].reduce((acc, { gitlabJob, name }) => {
36
+ const allJobs = [...allWorkspaceJobs, ...allComponentJobs].reduce((acc, { gitlabJob, name, context }) => {
37
37
  var _a, _b;
38
38
  // merge jobs, if a job is already there, merge the rules
39
39
  // this is currently needed because of envMode: "none", which creates the same job for all triggers, so it can appear multiple times
40
40
  if (acc[name]) {
41
- acc[name].rules = [
42
- ...((_a = acc[name].rules) !== null && _a !== void 0 ? _a : []),
41
+ acc[name].gitlabJob.rules = [
42
+ ...((_a = acc[name].gitlabJob.rules) !== null && _a !== void 0 ? _a : []),
43
43
  ...((_b = gitlabJob.rules) !== null && _b !== void 0 ? _b : []),
44
44
  ];
45
45
  }
46
46
  else {
47
- acc[name] = gitlabJob;
47
+ acc[name] = { context, gitlabJob };
48
48
  }
49
49
  return acc;
50
50
  }, {});
@@ -52,7 +52,13 @@ const createMainPipeline = async (pipelineType, config) => {
52
52
  stages: [...stages, "release"],
53
53
  jobs: {
54
54
  ...allJobs,
55
- ...(0, gitlabReleaseJobs_1.getGitlabReleaseJobs)(),
55
+ ...Object.fromEntries(Object.entries((0, gitlabReleaseJobs_1.getGitlabReleaseJobs)()).map(([name, gitlabJob]) => [
56
+ name,
57
+ {
58
+ gitlabJob,
59
+ context: null,
60
+ },
61
+ ])),
56
62
  },
57
63
  variables: config.runnerVariables,
58
64
  });
@@ -1 +1 @@
1
- {"version":3,"file":"createMainPipeline.js","sourceRoot":"","sources":["../../../../../pipeline/src/pipeline/createMainPipeline.ts"],"names":[],"mappings":";;;AAAA,oCAKkB;AAUlB,4CAAqE;AACrE,mDAAgD;AAChD,2DAAwD;AACxD,gEAA6D;AAC7D,wEAAiF;AACjF,kEAAkE;AAE3D,MAAM,kBAAkB,GAAG,KAAK,EACrC,YAAe,EACf,MAAc,EACQ,EAAE;IACxB,MAAM,MAAM,GAAG,IAAA,qCAAiB,EAAC,MAAM,CAAC,CAAC;IAEzC,IAAI,YAAY,KAAK,QAAQ,EAAE,CAAC;QAC9B,kDAAkD;QAElD,MAAM,iBAAiB,GAAG,MAAM,OAAO,CAAC,GAAG,CACzC,8BAAqB,CAAC,GAAG,CACvB,KAAK,EAAE,OAAO,EAAE,EAAE,CAChB,MAAM,IAAA,mCAAgB,EACpB,MAAM,IAAA,6BAAa,EAAC,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC,EACtD,wBAAwB,CAAC,OAAO,CAAC,CAClC,CACJ,CACF,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QAExB,MAAM,gBAAgB,GAAG,iBAAiB;aACvC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC,uEAAuE;YACtH,iFAAiF;aAChF,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;;YACb,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,MAAA,MAAM,CAAC,MAAM,mCAAI,EAAE,CAAC,CAAC;YACxD,MAAM,MAAM,GAAG,cAAc,CAAC,SAAS,CACrC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAM,CAAC,CAAC,OAA4B,CAAC,IAAI,CAClD,CAAC;YACF,MAAM,MAAM,GAAG,cAAc,CAAC,SAAS,CACrC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAM,CAAC,CAAC,OAA4B,CAAC,IAAI,CAClD,CAAC;YACF,OAAO,MAAM,GAAG,MAAM,CAAC;QACzB,CAAC,CAAC,CAAC;QAEL,MAAM,gBAAgB,GAAG,iBAAiB;aACvC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,KAAK,WAAW,CAAC;YAC9C,uEAAuE;YACvE,iFAAiF;aAChF,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YACb,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YACtD,MAAM,MAAM,GAAG,cAAc,CAAC,SAAS,CACrC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAM,CAAC,CAAC,OAA4B,CAAC,IAAI,CAClD,CAAC;YACF,MAAM,MAAM,GAAG,cAAc,CAAC,SAAS,CACrC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAM,CAAC,CAAC,OAA4B,CAAC,IAAI,CAClD,CAAC;YACF,OAAO,MAAM,GAAG,MAAM,CAAC;QACzB,CAAC,CAAC,CAAC;QACL,MAAM,OAAO,GAAG,CAAC,GAAG,gBAAgB,EAAE,GAAG,gBAAgB,CAAC,CAAC,MAAM,CAC/D,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,EAAE;;YAC3B,yDAAyD;YACzD,oIAAoI;YACpI,IAAI,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBACd,GAAG,CAAC,IAAI,CAAC,CAAC,KAAK,GAAG;oBAChB,GAAG,CAAC,MAAA,GAAG,CAAC,IAAI,CAAC,CAAC,KAAK,mCAAI,EAAE,CAAC;oBAC1B,GAAG,CAAC,MAAA,SAAS,CAAC,KAAK,mCAAI,EAAE,CAAC;iBAC3B,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,GAAG,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC;YACxB,CAAC;YAED,OAAO,GAAG,CAAC;QACb,CAAC,EACD,EAAqC,CACtC,CAAC;QAEF,OAAO,IAAA,uDAAgC,EAAC;YACtC,MAAM,EAAE,CAAC,GAAG,MAAM,EAAE,SAAS,CAAC;YAC9B,IAAI,EAAE;gBACJ,GAAG,OAAO;gBACV,GAAG,IAAA,wCAAoB,GAAE;aAC1B;YACD,SAAS,EAAE,MAAM,CAAC,eAAe;SAClC,CAAgB,CAAC;IACpB,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,GAAG,YAAY,mBAAmB,CAAC,CAAC;AACtD,CAAC,CAAC;AA3EW,QAAA,kBAAkB,sBA2E7B;AACF,SAAS,wBAAwB,CAAC,OAAwB;IACxD,qCAAqC;IACrC,uBAAuB;IACvB,wBAAwB;IACxB,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,YAAY;YACf,OAAO,CAAC,oCAA4B,EAAE,2BAAmB,CAAC,CAAC;QAC7D,KAAK,IAAI;YACP,OAAO,CAAC,6BAAqB,CAAC,CAAC;QACjC,KAAK,eAAe;YAClB,OAAO,CAAC,8BAAsB,CAAC,CAAC;IACpC,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"createMainPipeline.js","sourceRoot":"","sources":["../../../../../pipeline/src/pipeline/createMainPipeline.ts"],"names":[],"mappings":"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"}
@@ -1,21 +1,7 @@
1
1
  import type { Config, PipelineType } from "../types";
2
- export declare function generateLocalPipelineContent<T extends PipelineType>(config: Config, pipelineType: T): Promise<{
3
- image: string;
4
- stages: string[];
5
- variables: import("../types/gitlab-ci-yml").JobVariables1;
6
- workflow: {
7
- rules: {
8
- if?: string;
9
- changes?: import("../types/gitlab-ci-yml").Changes;
10
- exists?: import("../types/gitlab-ci-yml").Exists;
11
- variables?: import("../types/gitlab-ci-yml").RulesVariables;
12
- when?: import("../types/gitlab-ci-yml").When;
13
- start_in?: string;
14
- allow_failure?: import("../types/gitlab-ci-yml").AllowFailure;
15
- needs?: import("../types/gitlab-ci-yml").RulesNeeds;
16
- }[];
17
- };
18
- } & Omit<import("../types").Pipeline<T>, "image" | "jobs" | "variables" | "workflow" | "stages"> & {
19
- [k: string]: import("../types").GitlabJobDef;
20
- }>;
21
2
  export declare function generatePipelineFiles<T extends PipelineType>(config: Config, pipelineType: T): Promise<void>;
3
+ /**
4
+ *
5
+ * for testing purposes
6
+ */
7
+ export declare function getGitlabCompletePipeline(config: Config): Promise<{}>;
@@ -1,29 +1,80 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.generatePipelineFiles = exports.generateLocalPipelineContent = void 0;
3
+ exports.getGitlabCompletePipeline = exports.generatePipelineFiles = void 0;
4
+ const promises_1 = require("fs/promises");
5
+ const path_1 = require("path");
4
6
  const writeFiles_1 = require("../utils/writeFiles");
5
7
  const createMainPipeline_1 = require("./createMainPipeline");
6
8
  const sortGitLabJobDefProps_1 = require("./gitlab/sortGitLabJobDefProps");
7
- async function generateLocalPipelineContent(config, pipelineType) {
8
- const { jobs, image, stages, variables, workflow, ...pipelineRest } = await (0, createMainPipeline_1.createMainPipeline)(pipelineType, config);
9
- const jobsWithSortedProps = Object.fromEntries(Object.entries(jobs).map(([jobName, job]) => [
10
- jobName,
11
- (0, sortGitLabJobDefProps_1.sortGitLabJobDefProps)(job),
12
- ]));
13
- return {
14
- image,
15
- stages,
16
- variables,
17
- workflow,
18
- ...pipelineRest,
19
- // jobs need to be spread into main YAML, because GitLab pipeline YAML has no jobs key - jobs are top level with their key as their name
20
- ...jobsWithSortedProps,
21
- };
22
- }
23
- exports.generateLocalPipelineContent = generateLocalPipelineContent;
9
+ const CATLADDER_GENERATED_FOLDER = ".catladder-generated";
10
+ const GITLAB_GENERATED_FOLDER = CATLADDER_GENERATED_FOLDER + "/gitlab";
24
11
  async function generatePipelineFiles(config, pipelineType) {
25
- const pipelineContent = await generateLocalPipelineContent(config, pipelineType);
26
- return (0, writeFiles_1.writeYamlfile)(`.gitlab-ci.yml`, pipelineContent);
12
+ if (pipelineType !== "gitlab") {
13
+ throw new Error("Pipeline type not supported");
14
+ }
15
+ const includes = await getGitlabPipelineIncludes(config);
16
+ const mainFile = {
17
+ path: ".gitlab-ci.yml",
18
+ content: {
19
+ include: includes.map((i) => i.path),
20
+ },
21
+ };
22
+ const files = [mainFile, ...includes];
23
+ // first clean up the folder
24
+ await (0, promises_1.rm)(GITLAB_GENERATED_FOLDER, { recursive: true });
25
+ // write files
26
+ await Promise.all(files.map(async ({ path, content }) => {
27
+ await (0, promises_1.mkdir)((0, path_1.dirname)(path), { recursive: true });
28
+ await (0, writeFiles_1.writeYamlfile)(path, content);
29
+ }));
27
30
  }
28
31
  exports.generatePipelineFiles = generatePipelineFiles;
32
+ async function getGitlabPipelineIncludes(config) {
33
+ const { jobs, image, stages, variables, workflow, ...pipelineRest } = await (0, createMainPipeline_1.createMainPipeline)("gitlab", config);
34
+ // we will create 1 include per component or workspace
35
+ // this is for better readability in git diffs and to avoid problems with yaml files beeing too large
36
+ // group by context
37
+ const groups = Object.entries(jobs).reduce((acc, [jobName, { gitlabJob, context }]) => {
38
+ const group = !context
39
+ ? "global-jobs"
40
+ : (context === null || context === void 0 ? void 0 : context.type) + "/" + context.name;
41
+ if (!acc[group]) {
42
+ acc[group] = {};
43
+ }
44
+ acc[group][jobName] = (0, sortGitLabJobDefProps_1.sortGitLabJobDefProps)(gitlabJob); // also sort properties for more consistent diffing
45
+ return acc;
46
+ }, {});
47
+ const componentIncludes = Object.entries(groups).map(([group, jobs]) => {
48
+ return {
49
+ path: GITLAB_GENERATED_FOLDER + "/" + group + ".yaml",
50
+ content: jobs,
51
+ };
52
+ });
53
+ const mainInclude = {
54
+ path: GITLAB_GENERATED_FOLDER + "/main.yaml",
55
+ content: {
56
+ image,
57
+ stages,
58
+ variables,
59
+ workflow,
60
+ ...pipelineRest,
61
+ },
62
+ };
63
+ const includes = [mainInclude, ...componentIncludes];
64
+ return includes;
65
+ }
66
+ /**
67
+ *
68
+ * for testing purposes
69
+ */
70
+ async function getGitlabCompletePipeline(config) {
71
+ const includes = await getGitlabPipelineIncludes(config);
72
+ return includes.reduce((acc, { content }) => {
73
+ return {
74
+ ...acc,
75
+ ...content, // merge all includes into one object
76
+ };
77
+ }, {});
78
+ }
79
+ exports.getGitlabCompletePipeline = getGitlabCompletePipeline;
29
80
  //# sourceMappingURL=generatePipelineFiles.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"generatePipelineFiles.js","sourceRoot":"","sources":["../../../../../pipeline/src/pipeline/generatePipelineFiles.ts"],"names":[],"mappings":";;;AACA,oDAAoD;AACpD,6DAA0D;AAC1D,0EAAuE;AAEhE,KAAK,UAAU,4BAA4B,CAChD,MAAc,EACd,YAAe;IAEf,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,YAAY,EAAE,GACjE,MAAM,IAAA,uCAAkB,EAAC,YAAY,EAAE,MAAM,CAAC,CAAC;IAEjD,MAAM,mBAAmB,GAAG,MAAM,CAAC,WAAW,CAC5C,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC;QAC3C,OAAO;QACP,IAAA,6CAAqB,EAAC,GAAG,CAAC;KAC3B,CAAC,CACH,CAAC;IAEF,OAAO;QACL,KAAK;QACL,MAAM;QACN,SAAS;QACT,QAAQ;QACR,GAAG,YAAY;QACf,wIAAwI;QACxI,GAAG,mBAAmB;KACvB,CAAC;AACJ,CAAC;AAvBD,oEAuBC;AAEM,KAAK,UAAU,qBAAqB,CACzC,MAAc,EACd,YAAe;IAEf,MAAM,eAAe,GAAG,MAAM,4BAA4B,CACxD,MAAM,EACN,YAAY,CACb,CAAC;IACF,OAAO,IAAA,0BAAa,EAAC,gBAAgB,EAAE,eAAe,CAAC,CAAC;AAC1D,CAAC;AATD,sDASC"}
1
+ {"version":3,"file":"generatePipelineFiles.js","sourceRoot":"","sources":["../../../../../pipeline/src/pipeline/generatePipelineFiles.ts"],"names":[],"mappings":";;;AAAA,0CAAwC;AACxC,+BAA+B;AAE/B,oDAAoD;AACpD,6DAA0D;AAC1D,0EAAuE;AAEvE,MAAM,0BAA0B,GAAG,sBAAsB,CAAC;AAE1D,MAAM,uBAAuB,GAAG,0BAA0B,GAAG,SAAS,CAAC;AAMhE,KAAK,UAAU,qBAAqB,CACzC,MAAc,EACd,YAAe;IAEf,IAAI,YAAY,KAAK,QAAQ,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;IACjD,CAAC;IACD,MAAM,QAAQ,GAAG,MAAM,yBAAyB,CAAC,MAAM,CAAC,CAAC;IAEzD,MAAM,QAAQ,GAAa;QACzB,IAAI,EAAE,gBAAgB;QACtB,OAAO,EAAE;YACP,OAAO,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;SACrC;KACF,CAAC;IAEF,MAAM,KAAK,GAAG,CAAC,QAAQ,EAAE,GAAG,QAAQ,CAAC,CAAC;IAEtC,4BAA4B;IAC5B,MAAM,IAAA,aAAE,EAAC,uBAAuB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACvD,cAAc;IACd,MAAM,OAAO,CAAC,GAAG,CACf,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE;QACpC,MAAM,IAAA,gBAAK,EAAC,IAAA,cAAO,EAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAChD,MAAM,IAAA,0BAAa,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACrC,CAAC,CAAC,CACH,CAAC;AACJ,CAAC;AA3BD,sDA2BC;AACD,KAAK,UAAU,yBAAyB,CAAC,MAAc;IACrD,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,YAAY,EAAE,GACjE,MAAM,IAAA,uCAAkB,EAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC7C,sDAAsD;IACtD,qGAAqG;IACrG,mBAAmB;IACnB,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,CACxC,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE;QACzC,MAAM,KAAK,GAAG,CAAC,OAAO;YACpB,CAAC,CAAC,aAAa;YACf,CAAC,CAAC,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,IAAG,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;QACvC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YAChB,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;QAClB,CAAC;QAED,GAAG,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,IAAA,6CAAqB,EAAC,SAAS,CAAC,CAAC,CAAC,mDAAmD;QAC3G,OAAO,GAAG,CAAC;IACb,CAAC,EACD,EAAkD,CACnD,CAAC;IAEF,MAAM,iBAAiB,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,EAAE;QACrE,OAAO;YACL,IAAI,EAAE,uBAAuB,GAAG,GAAG,GAAG,KAAK,GAAG,OAAO;YACrD,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,MAAM,WAAW,GAAa;QAC5B,IAAI,EAAE,uBAAuB,GAAG,YAAY;QAC5C,OAAO,EAAE;YACP,KAAK;YACL,MAAM;YACN,SAAS;YACT,QAAQ;YACR,GAAG,YAAY;SAChB;KACF,CAAC;IAEF,MAAM,QAAQ,GAAG,CAAC,WAAW,EAAE,GAAG,iBAAiB,CAAC,CAAC;IACrD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;GAGG;AACI,KAAK,UAAU,yBAAyB,CAAC,MAAc;IAC5D,MAAM,QAAQ,GAAG,MAAM,yBAAyB,CAAC,MAAM,CAAC,CAAC;IAEzD,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;QAC1C,OAAO;YACL,GAAG,GAAG;YACN,GAAG,OAAO,EAAE,qCAAqC;SAClD,CAAC;IACJ,CAAC,EAAE,EAAE,CAAC,CAAC;AACT,CAAC;AATD,8DASC"}
@@ -1,11 +1,13 @@
1
1
  import type { Context, GitlabJobDef, GitlabRule } from "../../types";
2
2
  import type { CatladderJob } from "../../types/jobs";
3
3
  import type { AllCatladderJobs } from "../createAllJobs";
4
- export type AllGitlabJobs = {
5
- name: string;
4
+ export type GitlabJobWithContext = {
6
5
  gitlabJob: GitlabJobDef;
7
- context: Context;
8
- }[];
6
+ context: Context | null;
7
+ };
8
+ export type AllGitlabJobs = (GitlabJobWithContext & {
9
+ name: string;
10
+ })[];
9
11
  export declare const GITLAB_ENVIRONMENT_URL_VARIABLE = "CL_GITLAB_ENVIRONMENT_URL";
10
12
  export declare const makeGitlabJob: (context: Context, job: CatladderJob<string>, allJobs: AllCatladderJobs, baseRules?: GitlabRule[]) => [fullName: string, job: GitlabJobDef];
11
13
  export declare const createGitlabJobs: (allJobs: AllCatladderJobs, baseRules?: GitlabRule[]) => Promise<AllGitlabJobs>;
@@ -1,3 +1,4 @@
1
+ import type { GitlabJobWithContext } from "../pipeline/gitlab/createGitlabJobs";
1
2
  import type { Artifacts as GitlabCiArtifacts, JobTemplate, Cache as GitlabJobCache, Rules } from "./gitlab-ci-yml";
2
3
  export { Retry, Image as GitlabJobImage } from "./gitlab-ci-yml";
3
4
  export type Artifacts = GitlabCiArtifacts;
@@ -22,6 +23,6 @@ export interface GitlabPipeline extends Pick<JobTemplate, "variables"> {
22
23
  rules: GitlabRule[];
23
24
  };
24
25
  stages: string[];
25
- jobs: Record<string, GitlabJobDef>;
26
+ jobs: Record<string, GitlabJobWithContext>;
26
27
  before_script?: string[];
27
28
  }