@catladder/pipeline 3.19.0 → 3.20.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.
- package/dist/constants.js +1 -1
- package/dist/pipeline/createMainPipeline.js +1 -1
- package/dist/pipeline/gitlab/gitlabReleaseJobs.d.ts +2 -1
- package/dist/pipeline/gitlab/gitlabReleaseJobs.js +48 -3
- package/dist/rules/index.d.ts +1 -3
- package/dist/rules/index.js +2 -19
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/types/config.d.ts +5 -0
- package/dist/types/release.d.ts +7 -0
- package/dist/types/release.js +5 -0
- package/examples/__snapshots__/automatic-releases.test.ts.snap +1484 -0
- package/examples/__snapshots__/cloud-run-health-check-defaults.test.ts.snap +0 -2
- package/examples/__snapshots__/cloud-run-health-check-only-startup.test.ts.snap +0 -2
- package/examples/__snapshots__/cloud-run-health-check.test.ts.snap +0 -2
- package/examples/__snapshots__/cloud-run-http2.test.ts.snap +0 -2
- package/examples/__snapshots__/cloud-run-llama.test.ts.snap +0 -2
- package/examples/__snapshots__/cloud-run-memory-limit.test.ts.snap +0 -2
- package/examples/__snapshots__/cloud-run-meteor-with-worker.test.ts.snap +0 -2
- package/examples/__snapshots__/cloud-run-nextjs.test.ts.snap +0 -2
- package/examples/__snapshots__/cloud-run-no-cpu-throttling.test.ts.snap +0 -2
- package/examples/__snapshots__/cloud-run-no-service.test.ts.snap +0 -2
- package/examples/__snapshots__/cloud-run-non-public.test.ts.snap +0 -2
- package/examples/__snapshots__/cloud-run-post-stop-job.test.ts.snap +0 -2
- package/examples/__snapshots__/cloud-run-service-custom-vpc-connector.test.ts.snap +0 -2
- package/examples/__snapshots__/cloud-run-service-custom-vpc.test.ts.snap +0 -2
- package/examples/__snapshots__/cloud-run-service-gen2.test.ts.snap +0 -2
- package/examples/__snapshots__/cloud-run-service-increase-timout.test.ts.snap +0 -2
- package/examples/__snapshots__/cloud-run-service-with-volumes.test.ts.snap +0 -2
- package/examples/__snapshots__/cloud-run-storybook.test.ts.snap +0 -2
- package/examples/__snapshots__/cloud-run-with-agents.test.ts.snap +0 -2
- package/examples/__snapshots__/cloud-run-with-gpu.test.ts.snap +0 -2
- package/examples/__snapshots__/cloud-run-with-ngnix.test.ts.snap +0 -2
- package/examples/__snapshots__/cloud-run-with-sql-legacy-jobs.test.ts.snap +0 -2
- package/examples/__snapshots__/cloud-run-with-sql-multiple-dbs.test.ts.snap +0 -2
- package/examples/__snapshots__/cloud-run-with-sql-reuse-db.test.ts.snap +0 -2
- package/examples/__snapshots__/cloud-run-with-sql.test.ts.snap +0 -2
- package/examples/__snapshots__/cloud-run-with-worker.test.ts.snap +0 -2
- package/examples/__snapshots__/custom-build-job-with-tests.test.ts.snap +0 -2
- package/examples/__snapshots__/custom-build-job.test.ts.snap +0 -2
- package/examples/__snapshots__/custom-deploy.test.ts.snap +0 -2
- package/examples/__snapshots__/custom-envs.test.ts.snap +0 -2
- package/examples/__snapshots__/custom-sbom-java.test.ts.snap +0 -2
- package/examples/__snapshots__/custom-verify-job.test.ts.snap +0 -2
- package/examples/__snapshots__/git-submodule.test.ts.snap +0 -2
- package/examples/__snapshots__/kubernetes-application-customization.test.ts.snap +0 -2
- package/examples/__snapshots__/kubernetes-with-cloud-sql.test.ts.snap +0 -2
- package/examples/__snapshots__/kubernetes-with-jobs.test.ts.snap +0 -2
- package/examples/__snapshots__/kubernetes-with-mongodb.test.ts.snap +0 -2
- package/examples/__snapshots__/local-dot-env.test.ts.snap +0 -2
- package/examples/__snapshots__/meteor-kubernetes.test.ts.snap +0 -2
- package/examples/__snapshots__/modify-generated-files.test.ts.snap +0 -2
- package/examples/__snapshots__/multiline-var.test.ts.snap +0 -2
- package/examples/__snapshots__/native-app.test.ts.snap +0 -2
- package/examples/__snapshots__/node-build-with-custom-image.test.ts.snap +0 -2
- package/examples/__snapshots__/node-build-with-docker-additions.test.ts.snap +0 -2
- package/examples/__snapshots__/override-secrets.test.ts.snap +0 -2
- package/examples/__snapshots__/rails-k8s-with-worker-dockerfile.test.ts.snap +0 -2
- package/examples/__snapshots__/rails-k8s-with-worker.test.ts.snap +0 -2
- package/examples/__snapshots__/referencing-other-vars.test.ts.snap +0 -2
- package/examples/__snapshots__/wait-for-other-deploy.test.ts.snap +0 -2
- package/examples/__snapshots__/workspace-api-www-turbo-cache.test.ts.snap +0 -2
- package/examples/__snapshots__/workspace-api-www.test.ts.snap +0 -2
- package/examples/automatic-releases.test.ts +11 -0
- package/examples/automatic-releases.ts +28 -0
- package/package.json +1 -1
- package/src/pipeline/createMainPipeline.ts +9 -7
- package/src/pipeline/gitlab/gitlabReleaseJobs.ts +37 -4
- package/src/rules/index.ts +0 -32
- package/src/types/config.ts +6 -0
- package/src/types/release.ts +7 -0
|
@@ -1,23 +1,56 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import {
|
|
2
|
+
RULE_CONDITION_HOTFIX_BRANCH,
|
|
3
|
+
RULE_CONDITION_MAIN_BRANCH,
|
|
4
|
+
RULE_NEVER_ON_AGENT_TRIGGER,
|
|
5
|
+
RULE_NEVER_ON_RELEASE_COMMIT,
|
|
6
|
+
RULE_NEVER_ON_SCHEDULE,
|
|
7
|
+
} from "../../rules";
|
|
2
8
|
import { getRunnerImage } from "../../runner";
|
|
9
|
+
import type { Config } from "../../types/config";
|
|
10
|
+
import type { GitlabRule } from "../../types";
|
|
3
11
|
|
|
4
12
|
const EXPIRED_TOKEN_HELP =
|
|
5
13
|
"echo '👉 The project access token might be invald - run `project-renew-token` in catladder CLI to fix.'";
|
|
6
14
|
|
|
7
|
-
|
|
15
|
+
const baseReleaseRules = [
|
|
16
|
+
RULE_NEVER_ON_RELEASE_COMMIT,
|
|
17
|
+
RULE_NEVER_ON_AGENT_TRIGGER,
|
|
18
|
+
RULE_NEVER_ON_SCHEDULE,
|
|
19
|
+
];
|
|
20
|
+
export const getGitlabReleaseJobs = (config: Config) => {
|
|
8
21
|
return {
|
|
9
22
|
["create release"]: {
|
|
10
23
|
stage: "release",
|
|
11
24
|
image: getRunnerImage("semantic-release"),
|
|
12
25
|
script: ["semanticRelease", EXPIRED_TOKEN_HELP],
|
|
13
|
-
rules:
|
|
26
|
+
rules: [
|
|
27
|
+
...baseReleaseRules,
|
|
28
|
+
{
|
|
29
|
+
if: RULE_CONDITION_MAIN_BRANCH,
|
|
30
|
+
when: config.releases?.when === "auto" ? "on_success" : "manual",
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
if: RULE_CONDITION_HOTFIX_BRANCH,
|
|
34
|
+
when: "manual",
|
|
35
|
+
},
|
|
36
|
+
] satisfies GitlabRule[],
|
|
14
37
|
},
|
|
15
38
|
["⚠️ force create release"]: {
|
|
16
39
|
stage: "release",
|
|
17
40
|
image: getRunnerImage("semantic-release"),
|
|
18
41
|
script: ["semanticRelease", EXPIRED_TOKEN_HELP],
|
|
19
42
|
needs: [],
|
|
20
|
-
rules:
|
|
43
|
+
rules: [
|
|
44
|
+
...baseReleaseRules,
|
|
45
|
+
{
|
|
46
|
+
if: RULE_CONDITION_MAIN_BRANCH,
|
|
47
|
+
when: "manual",
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
if: RULE_CONDITION_HOTFIX_BRANCH,
|
|
51
|
+
when: "manual",
|
|
52
|
+
},
|
|
53
|
+
] satisfies GitlabRule[],
|
|
21
54
|
},
|
|
22
55
|
};
|
|
23
56
|
};
|
package/src/rules/index.ts
CHANGED
|
@@ -39,35 +39,3 @@ export const RULE_IS_TAGGED_RELEASE: GitlabRule = {
|
|
|
39
39
|
|
|
40
40
|
export const RULE_CONDITION_HOTFIX_BRANCH =
|
|
41
41
|
"$CI_COMMIT_BRANCH =~ /^[0-9]+.([0-9]+|x).x$/";
|
|
42
|
-
|
|
43
|
-
export const RULES_RELEASE: GitlabRule[] = [
|
|
44
|
-
RULE_NEVER_ON_RELEASE_COMMIT,
|
|
45
|
-
RULE_NEVER_ON_AGENT_TRIGGER,
|
|
46
|
-
RULE_NEVER_ON_SCHEDULE,
|
|
47
|
-
{
|
|
48
|
-
if: RULE_CONDITION_MAIN_BRANCH + ' && $AUTO_RELEASE == "true"',
|
|
49
|
-
when: "on_success",
|
|
50
|
-
},
|
|
51
|
-
{
|
|
52
|
-
if: RULE_CONDITION_MAIN_BRANCH,
|
|
53
|
-
when: "manual",
|
|
54
|
-
},
|
|
55
|
-
{
|
|
56
|
-
if: RULE_CONDITION_HOTFIX_BRANCH,
|
|
57
|
-
when: "manual",
|
|
58
|
-
},
|
|
59
|
-
];
|
|
60
|
-
|
|
61
|
-
export const RULES_MANUAL_RELEASE: GitlabRule[] = [
|
|
62
|
-
RULE_NEVER_ON_RELEASE_COMMIT,
|
|
63
|
-
RULE_NEVER_ON_AGENT_TRIGGER,
|
|
64
|
-
RULE_NEVER_ON_SCHEDULE,
|
|
65
|
-
{
|
|
66
|
-
if: RULE_CONDITION_MAIN_BRANCH,
|
|
67
|
-
when: "manual",
|
|
68
|
-
},
|
|
69
|
-
{
|
|
70
|
-
if: RULE_CONDITION_HOTFIX_BRANCH,
|
|
71
|
-
when: "manual",
|
|
72
|
-
},
|
|
73
|
-
];
|
package/src/types/config.ts
CHANGED
|
@@ -7,6 +7,7 @@ import type { PartialDeep } from "./utils";
|
|
|
7
7
|
import type { PipelineType, WorkspaceBuildConfig } from "..";
|
|
8
8
|
import type { AgentConfig } from "./agent";
|
|
9
9
|
import type { Hooks } from "./hooks";
|
|
10
|
+
import type { ReleaseConfig } from "./release";
|
|
10
11
|
|
|
11
12
|
export const ALL_PIPELINE_TRIGGERS = [
|
|
12
13
|
"mainBranch",
|
|
@@ -237,4 +238,9 @@ export type Config<C extends ConfigProps = never> = {
|
|
|
237
238
|
* hook into catladder generation
|
|
238
239
|
*/
|
|
239
240
|
hooks?: Hooks;
|
|
241
|
+
|
|
242
|
+
/**
|
|
243
|
+
* configure tagged releases
|
|
244
|
+
*/
|
|
245
|
+
releases?: ReleaseConfig;
|
|
240
246
|
};
|