@catladder/cli 0.0.0-next-dccc0a36 → 0.0.0-next-89bce6d0
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/apps/cli/src/catci.js +23 -0
- package/dist/apps/cli/src/catci.js.map +1 -1
- package/dist/apps/cli/src/release/githubQueuedRelease.d.ts +14 -0
- package/dist/apps/cli/src/release/githubQueuedRelease.js +152 -0
- package/dist/apps/cli/src/release/githubQueuedRelease.js.map +1 -0
- package/dist/bundles/catci/index.js +3 -3
- package/dist/bundles/catenv/index.js +340 -109
- package/dist/bundles/cli/index.js +340 -109
- package/dist/bundles/skills/catladder-deploys/references/deploy-types.md +1 -1
- package/dist/bundles/skills/catladder-releases/SKILL.md +13 -2
- package/dist/packages/bash/src/variables/VariableValueContainingReferences.d.ts +6 -0
- package/dist/packages/bash/src/variables/VariableValueContainingReferences.js +8 -0
- package/dist/packages/bash/src/variables/VariableValueContainingReferences.js.map +1 -1
- package/dist/packages/bash/src/variables/resolveAllReferences.d.ts +1 -2
- package/dist/packages/bash/src/variables/resolveAllReferences.js +4 -2
- package/dist/packages/bash/src/variables/resolveAllReferences.js.map +1 -1
- package/dist/packages/bash/src/variables/resolveAllReferencesOnce.d.ts +1 -4
- package/dist/packages/bash/src/variables/resolveAllReferencesOnce.js +4 -2
- package/dist/packages/bash/src/variables/resolveAllReferencesOnce.js.map +1 -1
- package/dist/packages/pipeline/src/backends/github/GithubBackend.js +7 -0
- package/dist/packages/pipeline/src/backends/github/GithubBackend.js.map +1 -1
- package/dist/packages/pipeline/src/backends/github/githubReleaseJobs.d.ts +18 -2
- package/dist/packages/pipeline/src/backends/github/githubReleaseJobs.js +92 -10
- package/dist/packages/pipeline/src/backends/github/githubReleaseJobs.js.map +1 -1
- package/dist/packages/pipeline/src/backends/gitlab/GitlabBackend.js +31 -5
- package/dist/packages/pipeline/src/backends/gitlab/GitlabBackend.js.map +1 -1
- package/dist/packages/pipeline/src/backends/gitlab/gitlabReleaseJobs.d.ts +285 -3
- package/dist/packages/pipeline/src/backends/gitlab/gitlabReleaseJobs.js +142 -54
- package/dist/packages/pipeline/src/backends/gitlab/gitlabReleaseJobs.js.map +1 -1
- package/dist/packages/pipeline/src/context/getEnvironmentVariables.js +17 -9
- package/dist/packages/pipeline/src/context/getEnvironmentVariables.js.map +1 -1
- package/dist/packages/pipeline/src/deploy/cloudRun/index.js +2 -2
- package/dist/packages/pipeline/src/deploy/cloudRun/index.js.map +1 -1
- package/dist/packages/pipeline/src/deploy/cloudRun/utils/database.d.ts +7 -9
- package/dist/packages/pipeline/src/deploy/cloudRun/utils/database.js +32 -24
- package/dist/packages/pipeline/src/deploy/cloudRun/utils/database.js.map +1 -1
- package/dist/packages/pipeline/src/deploy/index.d.ts +2 -2
- package/dist/packages/pipeline/src/types/github-types.d.ts +1 -0
- package/dist/packages/pipeline/src/types/release.d.ts +7 -1
- package/dist/skills/catladder-deploys/references/deploy-types.md +1 -1
- package/dist/skills/catladder-releases/SKILL.md +13 -2
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/src/catci.ts +30 -0
- package/src/release/githubQueuedRelease.ts +173 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../../packages/pipeline/src/deploy/cloudRun/index.ts"],"names":[],"mappings":";;;AACA,0CAAsD;AAEtD,2CAAiD;AACjD,uCAAqD;AAErD,+CAG4B;AAC5B,6CAAkD;AAClD,6CAA8D;AAC9D,uEAAwE;AACxE,+CAI0B;AAC1B,2DAAqE;AAExD,QAAA,6BAA6B,GAAG,8BAA8B,CAAC;AAE5E,MAAM,oBAAoB,GAAG,CAAC,EAC5B,eAAe,EACf,qBAAqB,EACrB,GAAG,EACH,aAAa,EACb,UAAU,GAC4C,EAAE,EAAE;;IAC1D,IAAI,eAAe,IAAI,eAAe,CAAC,QAAQ,EAAE,CAAC;QAChD,MAAM,OAAO,GAAG,IAAA,qBAAa,EAC3B,eAAe,CAAC,QAAQ,EACxB,UAAU,EACV,qBAAqB,EACrB,aAAa,CACd,CAAC;QAEF,MAAM,2BAA2B,GAAG,MAAM,CAAC,OAAO,CAChD,MAAA,eAAe,CAAC,QAAQ,CAAC,uBAAuB,mCAAI,EAAE,CACvD;aACE,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,IAAI,GAAG,IAAI,KAAK,EAAE,CAAC;aACzC,IAAI,CAAC,EAAE,CAAC,CAAC;QAEZ,MAAM,MAAM,GAAG;YACb,kCAAkC,EAChC,eAAe,CAAC,QAAQ,CAAC,sBAAsB;YACjD,OAAO,EAAE,OAAO;YAChB,OAAO,EAAE,MAAA,eAAe,CAAC,QAAQ,CAAC,MAAM,mCAAI,UAAU;YACtD,WAAW,EAAE,GAAG,GAAG,IAAA,0BAAgB,EAAC,GAAG,EAAE,aAAa,EAAE,aAAa,CAAC;SACvE,CAAC;QACF,OAAO;YACL,GAAG,MAAM;YACT,YAAY,EAAE,IAAA,sCAA2B,EACvC,eAAe,CAAC,QAAQ,EACxB,MAAM,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../../packages/pipeline/src/deploy/cloudRun/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type StringOrBashExpression } from "../../../../../bash/src/index.js";
|
|
1
|
+
import { type StringOrBashExpression, type VariableValue } from "../../../../../bash/src/index.js";
|
|
2
2
|
import type { ComponentContext } from "../../../types";
|
|
3
3
|
import type { DeployConfigCloudRun, DeployConfigCloudRunCloudSql } from "../../types";
|
|
4
4
|
export declare const getDatabaseDeleteScript: (context: ComponentContext, deployConfig: DeployConfigCloudRun) => string[];
|
|
@@ -12,14 +12,12 @@ export type DBVariables = {
|
|
|
12
12
|
/**
|
|
13
13
|
* controls how variables in the connection string are handled
|
|
14
14
|
*
|
|
15
|
-
* -
|
|
16
|
-
* -
|
|
17
|
-
*
|
|
18
|
-
* We will remove the legacy mode in the future, as it is confusing. But its unclear whether its a breaking change in some edge cases
|
|
15
|
+
* - embedded (default): variables are replaced with the component's final values in the connection string. This makes the connection string usable from other components (e.g. via ${otherComponent:DATABASE_URL}) and respects overrides of DB_USER, DB_PASSWORD, etc. in vars.public (e.g. DB_PASSWORD: "${otherComponent:DB_PASSWORD}" when reusing another component's database)
|
|
16
|
+
* - legacy: variables like $DB_USER are kept as environment variable names to be expanded by the shell that consumes the string. Only correct within the component's own jobs; referencing such a connection string from another component yields the wrong values. Kept as an escape hatch, will be removed in a future major
|
|
19
17
|
*/
|
|
20
18
|
export type DBVariablesMode = "legacy" | "embedded";
|
|
21
19
|
export declare const DEFAULT_DB_VARIABLES_MODE: DBVariablesMode;
|
|
22
|
-
export declare const getDatabaseJdbcUrl: (variables: DBVariables, mode: DBVariablesMode) =>
|
|
23
|
-
export declare const getRailsDatabaseConnectionString: (variables: DBVariables, mode: DBVariablesMode) =>
|
|
24
|
-
export declare const getPrismaDatabaseConnectionString: (variables: DBVariables, mode: DBVariablesMode) =>
|
|
25
|
-
export declare const getDatabaseConnectionString: (config: DeployConfigCloudRunCloudSql, variables: DBVariables) =>
|
|
20
|
+
export declare const getDatabaseJdbcUrl: (variables: DBVariables, mode: DBVariablesMode, componentName: string) => VariableValue;
|
|
21
|
+
export declare const getRailsDatabaseConnectionString: (variables: DBVariables, mode: DBVariablesMode, componentName: string) => VariableValue;
|
|
22
|
+
export declare const getPrismaDatabaseConnectionString: (variables: DBVariables, mode: DBVariablesMode, componentName: string) => VariableValue;
|
|
23
|
+
export declare const getDatabaseConnectionString: (config: DeployConfigCloudRunCloudSql, variables: DBVariables, componentName: string) => VariableValue;
|
|
@@ -42,64 +42,72 @@ const getDatabaseCreateScript = (context, deployConfig) => {
|
|
|
42
42
|
]);
|
|
43
43
|
};
|
|
44
44
|
exports.getDatabaseCreateScript = getDatabaseCreateScript;
|
|
45
|
-
exports.DEFAULT_DB_VARIABLES_MODE = "
|
|
46
|
-
const getVariableOrValue = (key,
|
|
47
|
-
|
|
45
|
+
exports.DEFAULT_DB_VARIABLES_MODE = "embedded";
|
|
46
|
+
const getVariableOrValue = (key, mode, componentName) => {
|
|
47
|
+
// in embedded mode we reference the component's own env var, which gets
|
|
48
|
+
// resolved to its final value (including vars.public overrides) after all
|
|
49
|
+
// env vars have been merged
|
|
50
|
+
return mode === "legacy"
|
|
51
|
+
? `$${key}`
|
|
52
|
+
: new bash_1.VariableReference(componentName, key);
|
|
48
53
|
};
|
|
49
|
-
const
|
|
54
|
+
const joinDbUrlParts = (parts, mode) => mode === "legacy"
|
|
55
|
+
? (0, bash_1.joinBashExpressions)(parts)
|
|
56
|
+
: new bash_1.VariableValueContainingReferences(parts);
|
|
57
|
+
const getDatabaseJdbcUrl = (variables, mode, componentName) => {
|
|
50
58
|
const parts = [
|
|
51
59
|
"jdbc:postgresql:///",
|
|
52
|
-
getVariableOrValue("DB_NAME",
|
|
60
|
+
getVariableOrValue("DB_NAME", mode, componentName),
|
|
53
61
|
"?cloudSqlInstance=",
|
|
54
|
-
getVariableOrValue("CLOUD_SQL_INSTANCE_CONNECTION_NAME",
|
|
62
|
+
getVariableOrValue("CLOUD_SQL_INSTANCE_CONNECTION_NAME", mode, componentName),
|
|
55
63
|
"&socketFactory=com.google.cloud.sql.postgres.SocketFactory&user=",
|
|
56
|
-
getVariableOrValue("DB_USER",
|
|
64
|
+
getVariableOrValue("DB_USER", mode, componentName),
|
|
57
65
|
"&password=",
|
|
58
|
-
getVariableOrValue("DB_PASSWORD",
|
|
66
|
+
getVariableOrValue("DB_PASSWORD", mode, componentName),
|
|
59
67
|
];
|
|
60
|
-
return (
|
|
68
|
+
return joinDbUrlParts(parts, mode);
|
|
61
69
|
};
|
|
62
70
|
exports.getDatabaseJdbcUrl = getDatabaseJdbcUrl;
|
|
63
|
-
const getRailsDatabaseConnectionString = (variables, mode) => {
|
|
71
|
+
const getRailsDatabaseConnectionString = (variables, mode, componentName) => {
|
|
64
72
|
const parts = [
|
|
65
73
|
"postgresql://",
|
|
66
|
-
getVariableOrValue("DB_USER",
|
|
74
|
+
getVariableOrValue("DB_USER", mode, componentName),
|
|
67
75
|
":",
|
|
68
|
-
getVariableOrValue("DB_PASSWORD",
|
|
76
|
+
getVariableOrValue("DB_PASSWORD", mode, componentName),
|
|
69
77
|
"@",
|
|
70
78
|
encodeURIComponent(`/cloudsql/${variables.CLOUD_SQL_INSTANCE_CONNECTION_NAME}`),
|
|
71
79
|
"/",
|
|
72
|
-
getVariableOrValue("DB_NAME",
|
|
80
|
+
getVariableOrValue("DB_NAME", mode, componentName),
|
|
73
81
|
"?",
|
|
74
82
|
];
|
|
75
|
-
return (
|
|
83
|
+
return joinDbUrlParts(parts, mode);
|
|
76
84
|
};
|
|
77
85
|
exports.getRailsDatabaseConnectionString = getRailsDatabaseConnectionString;
|
|
78
|
-
const getPrismaDatabaseConnectionString = (variables, mode) => {
|
|
86
|
+
const getPrismaDatabaseConnectionString = (variables, mode, componentName) => {
|
|
79
87
|
const parts = [
|
|
80
88
|
"postgresql://",
|
|
81
|
-
getVariableOrValue("DB_USER",
|
|
89
|
+
getVariableOrValue("DB_USER", mode, componentName),
|
|
82
90
|
":",
|
|
83
|
-
getVariableOrValue("DB_PASSWORD",
|
|
91
|
+
getVariableOrValue("DB_PASSWORD", mode, componentName),
|
|
84
92
|
"@localhost/",
|
|
85
|
-
getVariableOrValue("DB_NAME",
|
|
93
|
+
getVariableOrValue("DB_NAME", mode, componentName),
|
|
86
94
|
"?host=/cloudsql/",
|
|
87
|
-
getVariableOrValue("CLOUD_SQL_INSTANCE_CONNECTION_NAME",
|
|
95
|
+
getVariableOrValue("CLOUD_SQL_INSTANCE_CONNECTION_NAME", mode, componentName),
|
|
88
96
|
];
|
|
89
|
-
return (
|
|
97
|
+
return joinDbUrlParts(parts, mode);
|
|
90
98
|
};
|
|
91
99
|
exports.getPrismaDatabaseConnectionString = getPrismaDatabaseConnectionString;
|
|
92
|
-
const getDatabaseConnectionString = (config, variables) => {
|
|
100
|
+
const getDatabaseConnectionString = (config, variables, componentName) => {
|
|
93
101
|
var _a;
|
|
94
102
|
const mode = (_a = config.dbConnectionStringVariablesMode) !== null && _a !== void 0 ? _a : exports.DEFAULT_DB_VARIABLES_MODE;
|
|
95
103
|
switch (config.dbConnectionStringFormat) {
|
|
96
104
|
case "jdbc":
|
|
97
|
-
return (0, exports.getDatabaseJdbcUrl)(variables, mode);
|
|
105
|
+
return (0, exports.getDatabaseJdbcUrl)(variables, mode, componentName);
|
|
98
106
|
case "rails":
|
|
99
|
-
return (0, exports.getRailsDatabaseConnectionString)(variables, mode);
|
|
107
|
+
return (0, exports.getRailsDatabaseConnectionString)(variables, mode, componentName);
|
|
100
108
|
default:
|
|
101
109
|
// prisma
|
|
102
|
-
return (0, exports.getPrismaDatabaseConnectionString)(variables, mode);
|
|
110
|
+
return (0, exports.getPrismaDatabaseConnectionString)(variables, mode, componentName);
|
|
103
111
|
}
|
|
104
112
|
};
|
|
105
113
|
exports.getDatabaseConnectionString = getDatabaseConnectionString;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"database.js","sourceRoot":"","sources":["../../../../../../../../../packages/pipeline/src/deploy/cloudRun/utils/database.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"database.js","sourceRoot":"","sources":["../../../../../../../../../packages/pipeline/src/deploy/cloudRun/utils/database.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { BuildConfig, SecretEnvVar } from "..";
|
|
2
|
-
import type {
|
|
2
|
+
import type { VariableValue } from "../../../bash/src/index.js";
|
|
3
3
|
import type { ComponentContext } from "../types/context";
|
|
4
4
|
import type { EnvironmentContext } from "../types/environmentContext";
|
|
5
5
|
import type { CatladderJob } from "../types/jobs";
|
|
@@ -15,7 +15,7 @@ export type DeployTypeDefinition<D extends DeployConfig> = {
|
|
|
15
15
|
jobs: (context: ComponentContext) => CatladderJob[] | Promise<CatladderJob[]>;
|
|
16
16
|
defaults: (envContext: EnvironmentContext<BuildConfig, D>) => PartialDeep<D>;
|
|
17
17
|
additionalSecretKeys: (envContext: EnvironmentContext<BuildConfig, D>) => SecretEnvVar[];
|
|
18
|
-
getAdditionalEnvVars: (envContext: EnvironmentContext<BuildConfig, D>) => Record<string,
|
|
18
|
+
getAdditionalEnvVars: (envContext: EnvironmentContext<BuildConfig, D>) => Record<string, VariableValue | undefined | null>;
|
|
19
19
|
/**
|
|
20
20
|
* script lines the deploy type contributes to the start of the verify job,
|
|
21
21
|
* e.g. to authenticate against a non-public service
|
|
@@ -14,7 +14,13 @@ export type ReleaseMethod = "semantic-release" | "changesets";
|
|
|
14
14
|
export type ReleaseConfig = {
|
|
15
15
|
/**
|
|
16
16
|
* Whether to release automatically or manually on main branch.
|
|
17
|
-
*
|
|
17
|
+
* - "manual" (default): the pipeline offers a `create release`
|
|
18
|
+
* button that can be clicked at any time — the release then runs
|
|
19
|
+
* automatically as soon as every other job of the pipeline
|
|
20
|
+
* succeeded (clicking after a green pipeline releases right away).
|
|
21
|
+
* A `force create release` button releases immediately, ignoring
|
|
22
|
+
* the pipeline state.
|
|
23
|
+
* - "auto": every main-branch pipeline releases at the end.
|
|
18
24
|
*/
|
|
19
25
|
when?: "manual" | "auto";
|
|
20
26
|
/**
|
|
@@ -43,7 +43,7 @@ resources with `yarn catladder project setup`; detect drift with
|
|
|
43
43
|
- `additionalServices?: Record<string, service | false | null>`.
|
|
44
44
|
- `jobs?: Record<string, DeployConfigCloudRunJob | false | null>` — `{ command, args?, image?, cpu?, memory? (512Mi), timeout? (10min), parallelism? (1), maxRetries? (0) }`. The per-job `when`/`schedule`/`waitForCompletion` fields are **deprecated** — use `execute`.
|
|
45
45
|
- `workerPools?: Record<string, DeployConfigCloudRunWorkerPool | false | null>` — always-on background work, no endpoint, no autoscaling: `{ command, instances? (1), cpu?, memory?, image?, args?, gpu?/gpuType? }`.
|
|
46
|
-
- `cloudSql?: DeployConfigCloudRunCloudSql | false` — `{ type: "unmanaged", instanceConnectionName, dbUser?, dbNamePrefix?, dbBaseName?, deleteDatabaseOnStop?, dbConnectionStringFormat? ("prisma" default | "rails" | "jdbc"), dbConnectionStringVariablesMode? ("
|
|
46
|
+
- `cloudSql?: DeployConfigCloudRunCloudSql | false` — `{ type: "unmanaged", instanceConnectionName, dbUser?, dbNamePrefix?, dbBaseName?, deleteDatabaseOnStop?, dbConnectionStringFormat? ("prisma" default | "rails" | "jdbc"), dbConnectionStringVariablesMode? ("embedded" default | "legacy"), dbAdditionalQueryParams? }`. Injects `DB_*` vars plus `DATABASE_URL`/`DATABASE_JDBC_URL`; in the default `"embedded"` mode the connection strings contain the component's final values (referenceable from other components, `vars.public` overrides of `DB_*` flow in). To share another component's database: `dbBaseName: "<owner>"` + `DB_PASSWORD: "${<owner>:DB_PASSWORD}"` in `vars.public`.
|
|
47
47
|
- `execute?: Record<string, DeployConfigCloudRunExecute | null>` — run a script / job / HTTP call at a lifecycle point (`when`: `preDeploy` | `postDeploy` | `preStop` | `postStop`) or on a `schedule`.
|
|
48
48
|
- `debug?: boolean`.
|
|
49
49
|
|
|
@@ -23,12 +23,23 @@ are generated, never hand-edited.
|
|
|
23
23
|
## `when` — who triggers the release
|
|
24
24
|
|
|
25
25
|
- **`manual`** (default) — the `create release` job on the main branch
|
|
26
|
-
|
|
26
|
+
can be clicked **at any time**, even while the pipeline is still
|
|
27
|
+
running: it queues the release, which then runs automatically as soon
|
|
28
|
+
as every other job of the pipeline succeeded (and is skipped if the
|
|
29
|
+
pipeline fails). Clicking after a green pipeline releases right away.
|
|
30
|
+
- On GitLab the button is a quick no-op job; the actual release runs
|
|
31
|
+
in the automatic `🚀 release once pipeline succeeds` job (skipped
|
|
32
|
+
when the button was never clicked — never run it by hand).
|
|
33
|
+
- On GitHub the `create-release` dispatch task releases immediately
|
|
34
|
+
when the main workflow for HEAD is green, queues the release when
|
|
35
|
+
it is still running (the `catladder release on green` workflow then
|
|
36
|
+
picks it up on completion), and fails when the run concluded red.
|
|
27
37
|
- **`auto`** — the release job runs automatically on every main-branch
|
|
28
38
|
pipeline (it still no-ops when there is nothing to release).
|
|
29
39
|
|
|
30
40
|
There is always also a manual **`⚠️ force create release`** job as an
|
|
31
|
-
escape hatch
|
|
41
|
+
escape hatch: it releases **immediately**, ignoring the state of the
|
|
42
|
+
pipeline. With `method: "changesets"` it has an extra meaning: it
|
|
32
43
|
releases **even when no changesets are pending** (patch bump with a
|
|
33
44
|
generic changelog entry) — the recovery path when a change was merged
|
|
34
45
|
without a changeset and must ship now.
|