@catladder/pipeline 0.0.0-node16-ddfae617 → 0.0.0-prettier-cbceeed9
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/bin/catladder-gitlab-dev.js +3 -0
- package/bin/catladder-gitlab.js +1 -1
- package/dist/build/base/createBuildJob.d.ts +2 -2
- package/dist/build/base/createBuildJob.js +15 -30
- package/dist/build/base/writeBuildInfo.d.ts +2 -0
- package/dist/build/base/{getBuildInfo.js → writeBuildInfo.js} +3 -6
- package/dist/build/custom/buildJob.d.ts +3 -0
- package/dist/build/custom/buildJob.js +83 -0
- package/dist/build/custom/index.d.ts +3 -0
- package/dist/build/custom/index.js +40 -0
- package/dist/build/docker.d.ts +33 -9
- package/dist/build/docker.js +51 -54
- package/dist/build/index.d.ts +6 -5
- package/dist/build/index.js +20 -6
- package/dist/build/node/buildJob.d.ts +2 -2
- package/dist/build/node/buildJob.js +3 -25
- package/dist/build/node/cache.d.ts +2 -2
- package/dist/build/node/cache.js +19 -22
- package/dist/build/node/index.d.ts +1 -1
- package/dist/build/node/index.js +3 -16
- package/dist/build/node/meteor.d.ts +1 -1
- package/dist/build/node/meteor.js +9 -20
- package/dist/build/node/testJob.d.ts +2 -2
- package/dist/build/node/testJob.js +7 -21
- package/dist/build/node/yarn.d.ts +1 -1
- package/dist/build/node/yarn.js +14 -15
- package/dist/build/rails/build.d.ts +3 -0
- package/dist/build/rails/build.js +51 -0
- package/dist/build/rails/index.d.ts +3 -0
- package/dist/build/rails/index.js +41 -0
- package/dist/build/rails/test.d.ts +3 -0
- package/dist/build/rails/test.js +94 -0
- package/dist/build/types.d.ts +84 -9
- package/dist/build/types.js +0 -4
- package/dist/bundles/catladder-gitlab/index.js +32979 -0
- package/dist/catladder-gitlab.js +7 -26
- package/dist/config/{configruedEnvs.test.d.ts → __tests__/configruedEnvs.test.d.ts} +0 -0
- package/dist/config/{configruedEnvs.test.js → __tests__/configruedEnvs.test.js} +10 -12
- package/dist/config/configruedEnvs.d.ts +1 -1
- package/dist/config/configruedEnvs.js +7 -22
- package/dist/config/index.js +0 -4
- package/dist/config/readConfig.d.ts +1 -1
- package/dist/config/readConfig.js +2 -13
- package/dist/constants.js +1 -1
- package/dist/context/{resolveReferences.test.d.ts → __tests__/resolveReferences.test.d.ts} +0 -0
- package/dist/context/__tests__/resolveReferences.test.js +336 -0
- package/dist/context/getEnvConfig.d.ts +2 -0
- package/dist/context/getEnvConfig.js +18 -0
- package/dist/context/getEnvType.d.ts +4 -0
- package/dist/context/getEnvType.js +13 -0
- package/dist/context/getEnvironment.d.ts +3 -0
- package/dist/{pipeline/createChildPipeline.test.js → context/getEnvironment.js} +42 -84
- package/dist/context/getEnvironmentContext.d.ts +4 -0
- package/dist/context/getEnvironmentContext.js +33 -0
- package/dist/context/getEnvironmentVariables.d.ts +10 -0
- package/dist/context/getEnvironmentVariables.js +260 -0
- package/dist/context/getLabels.d.ts +8 -0
- package/dist/context/getLabels.js +38 -0
- package/dist/context/index.d.ts +5 -6
- package/dist/context/index.js +158 -208
- package/dist/context/resolveReferences.d.ts +1 -3
- package/dist/context/resolveReferences.js +213 -52
- package/dist/defaults/index.d.ts +1 -1
- package/dist/deploy/base.d.ts +4 -2
- package/dist/deploy/base.js +38 -33
- package/dist/deploy/cloudRun/deployJob.d.ts +3 -0
- package/dist/deploy/cloudRun/deployJob.js +238 -0
- package/dist/deploy/cloudRun/index.d.ts +4 -0
- package/dist/deploy/cloudRun/index.js +112 -0
- package/dist/deploy/cloudRun/utils/createArgsString.d.ts +11 -0
- package/dist/deploy/cloudRun/utils/createArgsString.js +55 -0
- package/dist/deploy/cloudRun/utils/database.d.ts +4 -0
- package/dist/deploy/cloudRun/utils/database.js +64 -0
- package/dist/deploy/cloudRun/utils/gcloudServiceAccountLoginCommands.d.ts +2 -0
- package/dist/deploy/cloudRun/utils/gcloudServiceAccountLoginCommands.js +10 -0
- package/dist/deploy/cloudRun/utils/jobName.d.ts +1 -0
- package/dist/deploy/cloudRun/utils/jobName.js +8 -0
- package/dist/deploy/custom/deployJob.d.ts +2 -2
- package/dist/deploy/custom/deployJob.js +10 -16
- package/dist/deploy/custom/index.d.ts +2 -1
- package/dist/deploy/custom/index.js +14 -19
- package/dist/deploy/dockerTag/deployJob.d.ts +3 -0
- package/dist/deploy/dockerTag/deployJob.js +24 -0
- package/dist/deploy/dockerTag/index.d.ts +2 -0
- package/dist/deploy/dockerTag/index.js +17 -0
- package/dist/deploy/index.d.ts +12 -8
- package/dist/deploy/index.js +7 -20
- package/dist/deploy/kubernetes/additionalSecretKeys.d.ts +4 -0
- package/dist/deploy/kubernetes/additionalSecretKeys.js +24 -0
- package/dist/deploy/kubernetes/cloudSql/index.d.ts +13 -0
- package/dist/deploy/kubernetes/cloudSql/index.js +30 -0
- package/dist/deploy/kubernetes/deployJob.d.ts +2 -2
- package/dist/deploy/kubernetes/deployJob.js +17 -91
- package/dist/deploy/kubernetes/index.d.ts +3 -1
- package/dist/deploy/kubernetes/index.js +42 -4
- package/dist/deploy/kubernetes/kubeEnv.d.ts +9 -0
- package/dist/deploy/kubernetes/kubeEnv.js +72 -0
- package/dist/deploy/kubernetes/kubeValues.d.ts +97 -0
- package/dist/deploy/kubernetes/kubeValues.js +124 -0
- package/dist/deploy/kubernetes/mongodb.d.ts +18 -5
- package/dist/deploy/kubernetes/mongodb.js +96 -10
- package/dist/deploy/kubernetes/processSecretsAsFiles.d.ts +25 -21
- package/dist/deploy/kubernetes/processSecretsAsFiles.js +2 -10
- package/dist/deploy/types/base.d.ts +14 -0
- package/dist/deploy/types/base.js +3 -0
- package/dist/deploy/types/custom.d.ts +33 -0
- package/dist/deploy/types/custom.js +3 -0
- package/dist/deploy/types/dockerTag.d.ts +10 -0
- package/dist/deploy/types/dockerTag.js +3 -0
- package/dist/deploy/types/googleCloudRun.d.ts +121 -0
- package/dist/deploy/types/googleCloudRun.js +3 -0
- package/dist/deploy/types/index.d.ts +22 -0
- package/dist/deploy/types/index.js +31 -0
- package/dist/deploy/types/kubernetes.d.ts +276 -0
- package/dist/deploy/types/kubernetes.js +3 -0
- package/dist/deploy/utils.d.ts +2 -2
- package/dist/deploy/utils.js +3 -10
- package/dist/index.js +0 -10
- package/dist/pipeline/commitInfo/getBuildId.d.ts +1 -0
- package/dist/pipeline/commitInfo/getBuildId.js +135 -0
- package/dist/pipeline/commitInfo/getCommitInfo.d.ts +2 -0
- package/dist/pipeline/commitInfo/getCommitInfo.js +140 -0
- package/dist/pipeline/createAllJobs.d.ts +8 -0
- package/dist/{build/tests/storybook.test.js → pipeline/createAllJobs.js} +54 -104
- package/dist/pipeline/createChildPipeline.d.ts +2 -2
- package/dist/pipeline/createChildPipeline.js +40 -121
- package/dist/pipeline/createJobsForComponent.d.ts +3 -0
- package/dist/pipeline/{createJobs.js → createJobsForComponent.js} +33 -192
- package/dist/pipeline/gitlab/createGitlabJobs.d.ts +14 -0
- package/dist/pipeline/gitlab/createGitlabJobs.js +260 -0
- package/dist/pipeline/index.d.ts +1 -1
- package/dist/pipeline/index.js +1 -5
- package/dist/pipeline/packageManager.d.ts +1 -1
- package/dist/pipeline/packageManager.js +20 -173
- package/dist/pipeline/yarn/yarnUtils.d.ts +4 -0
- package/dist/pipeline/yarn/yarnUtils.js +193 -0
- package/dist/rules/index.d.ts +3 -1
- package/dist/rules/index.js +7 -6
- package/dist/runner/index.d.ts +2 -3
- package/dist/runner/index.js +0 -3
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/types/config.d.ts +19 -25
- package/dist/types/config.js +6 -16
- package/dist/types/context.d.ts +16 -3
- package/dist/types/environmentContext.d.ts +28 -0
- package/dist/types/environmentContext.js +3 -0
- package/dist/types/gitlab-types.d.ts +39 -7
- package/dist/types/index.js +0 -6
- package/dist/types/jobs.d.ts +25 -17
- package/dist/types/jobs.js +1 -1
- package/dist/types/pipeline.d.ts +1 -1
- package/dist/types/utils.d.ts +1 -0
- package/dist/types/utils.js +3 -0
- package/dist/utils/gitlab.d.ts +5 -0
- package/dist/utils/gitlab.js +48 -0
- package/dist/utils/index.js +5 -15
- package/examples/__snapshots__/cloud-run-memory-limit.ts.snap +1560 -0
- package/examples/__snapshots__/cloud-run-no-cpu-throttling.ts.snap +1560 -0
- package/examples/__snapshots__/cloud-run-non-public.ts.snap +1560 -0
- package/examples/__snapshots__/cloud-run-with-sql-reuse-db.ts.snap +3092 -0
- package/examples/__snapshots__/cloud-run-with-sql.ts.snap +3103 -0
- package/examples/__snapshots__/custom-build-job.ts.snap +1162 -0
- package/examples/__snapshots__/custom-envs.ts.snap +261 -0
- package/examples/__snapshots__/kubernetes-application-customization.ts.snap +2280 -0
- package/examples/__snapshots__/kubernetes-with-jobs.ts.snap +4077 -0
- package/examples/__snapshots__/rails-k8s-with-worker.ts.snap +1911 -0
- package/examples/__snapshots__/wait-for-other-deploy.ts.snap +1626 -0
- package/examples/__utils__/helpers.ts +14 -0
- package/examples/cloud-run-memory-limit.ts +28 -0
- package/examples/cloud-run-no-cpu-throttling.ts +33 -0
- package/examples/cloud-run-non-public.ts +27 -0
- package/examples/cloud-run-with-sql-reuse-db.ts +54 -0
- package/examples/cloud-run-with-sql.ts +61 -0
- package/examples/custom-build-job.ts +28 -0
- package/examples/custom-envs.ts +31 -0
- package/examples/kubernetes-application-customization.ts +57 -0
- package/examples/kubernetes-with-jobs.ts +68 -0
- package/examples/rails-k8s-with-worker.ts +95 -0
- package/examples/wait-for-other-deploy.ts +36 -0
- package/package.json +16 -13
- package/scripts/bundle +2 -0
- package/src/build/base/createBuildJob.ts +12 -5
- package/src/build/base/{getBuildInfo.ts → writeBuildInfo.ts} +2 -2
- package/src/build/custom/buildJob.ts +64 -0
- package/src/build/custom/index.ts +7 -0
- package/src/build/docker.ts +58 -33
- package/src/build/index.ts +24 -5
- package/src/build/node/buildJob.ts +2 -2
- package/src/build/node/cache.ts +19 -8
- package/src/build/node/index.ts +1 -1
- package/src/build/node/meteor.ts +8 -2
- package/src/build/node/testJob.ts +4 -2
- package/src/build/node/yarn.ts +21 -10
- package/src/build/rails/build.ts +38 -0
- package/src/build/rails/index.ts +8 -0
- package/src/build/rails/test.ts +86 -0
- package/src/build/types.ts +97 -2
- package/src/catladder-gitlab.ts +4 -2
- package/src/config/{configruedEnvs.test.ts → __tests__/configruedEnvs.test.ts} +3 -3
- package/src/config/configruedEnvs.ts +2 -7
- package/src/config/readConfig.ts +1 -1
- package/src/context/{resolveReferences.test.ts → __tests__/resolveReferences.test.ts} +23 -38
- package/src/context/getEnvConfig.ts +21 -0
- package/src/context/getEnvType.ts +17 -0
- package/src/context/getEnvironment.ts +40 -0
- package/src/context/getEnvironmentContext.ts +57 -0
- package/src/context/getEnvironmentVariables.ts +155 -0
- package/src/context/getLabels.ts +20 -0
- package/src/context/index.ts +28 -193
- package/src/context/resolveReferences.ts +35 -31
- package/src/defaults/index.ts +1 -1
- package/src/deploy/base.ts +43 -19
- package/src/deploy/cloudRun/deployJob.ts +276 -0
- package/src/deploy/cloudRun/index.ts +95 -0
- package/src/deploy/cloudRun/utils/createArgsString.ts +26 -0
- package/src/deploy/cloudRun/utils/database.ts +55 -0
- package/src/deploy/cloudRun/utils/gcloudServiceAccountLoginCommands.ts +14 -0
- package/src/deploy/cloudRun/utils/jobName.ts +2 -0
- package/src/deploy/custom/deployJob.ts +13 -3
- package/src/deploy/custom/index.ts +9 -1
- package/src/deploy/dockerTag/deployJob.ts +31 -0
- package/src/deploy/dockerTag/index.ts +9 -0
- package/src/deploy/index.ts +26 -17
- package/src/deploy/kubernetes/additionalSecretKeys.ts +23 -0
- package/src/deploy/kubernetes/cloudSql/index.ts +28 -0
- package/src/deploy/kubernetes/deployJob.ts +21 -78
- package/src/deploy/kubernetes/index.ts +42 -1
- package/src/deploy/kubernetes/kubeEnv.ts +48 -0
- package/src/deploy/kubernetes/kubeValues.ts +96 -0
- package/src/deploy/kubernetes/mongodb.ts +104 -7
- package/src/deploy/kubernetes/processSecretsAsFiles.ts +1 -1
- package/src/deploy/types/base.ts +17 -0
- package/src/deploy/types/custom.ts +36 -0
- package/src/deploy/types/dockerTag.ts +12 -0
- package/src/deploy/types/googleCloudRun.ts +179 -0
- package/src/deploy/types/index.ts +28 -0
- package/src/deploy/types/kubernetes.ts +301 -0
- package/src/deploy/utils.ts +6 -2
- package/src/pipeline/commitInfo/getBuildId.ts +6 -0
- package/src/pipeline/commitInfo/getCommitInfo.ts +12 -0
- package/src/pipeline/createAllJobs.ts +38 -0
- package/src/pipeline/createChildPipeline.ts +9 -20
- package/src/pipeline/createJobsForComponent.ts +64 -0
- package/src/pipeline/gitlab/createGitlabJobs.ts +149 -0
- package/src/pipeline/index.ts +1 -1
- package/src/pipeline/packageManager.ts +4 -38
- package/src/pipeline/yarn/yarnUtils.ts +37 -0
- package/src/rules/index.ts +9 -6
- package/src/runner/index.ts +2 -1
- package/src/types/config.ts +26 -13
- package/src/types/context.ts +23 -2
- package/src/types/environmentContext.ts +33 -0
- package/src/types/gitlab-types.ts +36 -6
- package/src/types/jobs.ts +30 -6
- package/src/types/pipeline.ts +1 -1
- package/src/types/utils.ts +7 -0
- package/src/utils/gitlab.ts +23 -0
- package/tsconfig.json +3 -1
- package/dist/build/base/getBuildInfo.d.ts +0 -2
- package/dist/build/tests/storybook.test.d.ts +0 -1
- package/dist/context/resolveReferences.test.js +0 -141
- package/dist/deploy/kubernetes/cloudsql.d.ts +0 -6
- package/dist/deploy/kubernetes/cloudsql.js +0 -16
- package/dist/deploy/types.d.ts +0 -196
- package/dist/deploy/types.js +0 -16
- package/dist/pipeline/createChildPipeline.test.d.ts +0 -1
- package/dist/pipeline/createJobs.d.ts +0 -3
- package/dist/pipeline/gitlab/makeGitlabJob.d.ts +0 -8
- package/dist/pipeline/gitlab/makeGitlabJob.js +0 -45
- package/src/build/tests/storybook.test.ts +0 -54
- package/src/deploy/kubernetes/cloudsql.ts +0 -12
- package/src/deploy/types.ts +0 -189
- package/src/pipeline/createChildPipeline.test.ts +0 -49
- package/src/pipeline/createJobs.ts +0 -195
- package/src/pipeline/gitlab/makeGitlabJob.ts +0 -16
|
@@ -0,0 +1,276 @@
|
|
|
1
|
+
import type { AllowUnknownProps, DeployConfigBase } from "./base";
|
|
2
|
+
export declare type DeployConfigKubernetesClusterGCloud = {
|
|
3
|
+
type: "gcloud";
|
|
4
|
+
/**
|
|
5
|
+
* gcoud name of the cluster
|
|
6
|
+
*/
|
|
7
|
+
name: string;
|
|
8
|
+
/**
|
|
9
|
+
* google cloud project id
|
|
10
|
+
*/
|
|
11
|
+
projectId: string;
|
|
12
|
+
/**
|
|
13
|
+
* region
|
|
14
|
+
*/
|
|
15
|
+
region: string;
|
|
16
|
+
/**
|
|
17
|
+
* domain of the cluster, for canonical domains without custom host (e.g. review and dev apps)
|
|
18
|
+
*/
|
|
19
|
+
domainCanonical?: string;
|
|
20
|
+
};
|
|
21
|
+
export declare type DeployConfigKubernetesCluster = DeployConfigKubernetesClusterGCloud;
|
|
22
|
+
export declare type KubernetesAutoscaleMetricResourceTarget = {
|
|
23
|
+
type: "Utilization";
|
|
24
|
+
averageUtilization: number;
|
|
25
|
+
} | {
|
|
26
|
+
type: "AverageValue";
|
|
27
|
+
averageValue: number | string;
|
|
28
|
+
};
|
|
29
|
+
export declare type KubernetesAutoscaleMetric = {
|
|
30
|
+
type: "Resource";
|
|
31
|
+
resource: {
|
|
32
|
+
name: "cpu" | "memory";
|
|
33
|
+
target: KubernetesAutoscaleMetricResourceTarget;
|
|
34
|
+
};
|
|
35
|
+
};
|
|
36
|
+
export declare type KubernetesAutoscale = {
|
|
37
|
+
minReplicas: number;
|
|
38
|
+
maxReplicas: number;
|
|
39
|
+
/**
|
|
40
|
+
* declare a number of metrics (at least one). Usually you would use cpu as a metric
|
|
41
|
+
*/
|
|
42
|
+
metrics: KubernetesAutoscaleMetric[];
|
|
43
|
+
};
|
|
44
|
+
export declare type KubernetesResourcesDef = {
|
|
45
|
+
limits?: {
|
|
46
|
+
cpu?: string;
|
|
47
|
+
memory?: string;
|
|
48
|
+
};
|
|
49
|
+
requests?: {
|
|
50
|
+
cpu?: string;
|
|
51
|
+
memory?: string;
|
|
52
|
+
};
|
|
53
|
+
};
|
|
54
|
+
declare type KubernetesHealthDef = {
|
|
55
|
+
httpGet?: {
|
|
56
|
+
path?: string;
|
|
57
|
+
port?: number;
|
|
58
|
+
httpHeaders?: {
|
|
59
|
+
name: string;
|
|
60
|
+
value: string;
|
|
61
|
+
}[];
|
|
62
|
+
failureThreshold?: number;
|
|
63
|
+
timeoutSeconds?: number;
|
|
64
|
+
periodSeconds?: number;
|
|
65
|
+
successThreshold?: number;
|
|
66
|
+
};
|
|
67
|
+
};
|
|
68
|
+
export declare type KubernetesUpdateStrategy = {
|
|
69
|
+
rollingUpdate: {
|
|
70
|
+
/**
|
|
71
|
+
* how many pods can be created additionally to the target number
|
|
72
|
+
* can be absolute number or percentage.
|
|
73
|
+
* defaults to 1 (kube default is 25%)
|
|
74
|
+
*/
|
|
75
|
+
maxSurge: number | string;
|
|
76
|
+
/**
|
|
77
|
+
* how many pods are allowed to be unavailable
|
|
78
|
+
* can be absolute number or percentage
|
|
79
|
+
* defaults to 0 (kube default is 25%)
|
|
80
|
+
*/
|
|
81
|
+
maxUnavailable: number | string;
|
|
82
|
+
};
|
|
83
|
+
type: "RollingUpdate";
|
|
84
|
+
};
|
|
85
|
+
export declare type KubernetesWorkerDef = {
|
|
86
|
+
enabled: boolean;
|
|
87
|
+
/**
|
|
88
|
+
* which command to run. defaults to `yarn start`
|
|
89
|
+
*/
|
|
90
|
+
command?: string;
|
|
91
|
+
resources?: KubernetesResourcesDef;
|
|
92
|
+
service?: {
|
|
93
|
+
enabled?: boolean;
|
|
94
|
+
};
|
|
95
|
+
};
|
|
96
|
+
export declare type DeployConfigMongodbBase = {
|
|
97
|
+
enabled?: boolean;
|
|
98
|
+
dbName?: string;
|
|
99
|
+
persistence?: {
|
|
100
|
+
/**
|
|
101
|
+
* set premium-rwo for ssd
|
|
102
|
+
*/
|
|
103
|
+
storageClass?: "standard-rwo" | "premium-rwo";
|
|
104
|
+
/**
|
|
105
|
+
* size of the volume, defaults to 8Gi
|
|
106
|
+
*/
|
|
107
|
+
size?: string;
|
|
108
|
+
};
|
|
109
|
+
resources?: KubernetesResourcesDef;
|
|
110
|
+
};
|
|
111
|
+
export declare type DeployConfigMongodbStandalone = {
|
|
112
|
+
architecture: "standalone";
|
|
113
|
+
};
|
|
114
|
+
export declare type DeployConfigMongodbReplicaset = {
|
|
115
|
+
architecture: "replicaset";
|
|
116
|
+
/**
|
|
117
|
+
* defaults to 2
|
|
118
|
+
*/
|
|
119
|
+
replicaCount?: number;
|
|
120
|
+
};
|
|
121
|
+
export declare type DeployConfigMongodb = DeployConfigMongodbBase & (DeployConfigMongodbStandalone | DeployConfigMongodbReplicaset);
|
|
122
|
+
export declare type DeployConfigKubernetesValues = AllowUnknownProps<{
|
|
123
|
+
/**
|
|
124
|
+
* enable cloudsql db. Currently you have to manually set it up
|
|
125
|
+
*/
|
|
126
|
+
cloudsql?: {
|
|
127
|
+
enabled: boolean;
|
|
128
|
+
instanceId?: string;
|
|
129
|
+
projectId?: string;
|
|
130
|
+
region?: string;
|
|
131
|
+
};
|
|
132
|
+
/**
|
|
133
|
+
* enable mongodb. The mongodb is deployed using a helm chart.
|
|
134
|
+
* See https://github.com/bitnami/charts/tree/master/bitnami/mongodb
|
|
135
|
+
*/
|
|
136
|
+
mongodb?: DeployConfigMongodb;
|
|
137
|
+
/**
|
|
138
|
+
* enable mailhog. Mailhog is a virtual mail server that catches all outgoing mailsl and show them in a mailbox.
|
|
139
|
+
* This is great for development as it prevents to accidentially send out real emails and helps with debugging outgoing mails.
|
|
140
|
+
*
|
|
141
|
+
* It will automaticaly inject a MAIL_URL env var.
|
|
142
|
+
*
|
|
143
|
+
* Turn it of for production.
|
|
144
|
+
*/
|
|
145
|
+
mailhog?: {
|
|
146
|
+
enabled: boolean;
|
|
147
|
+
};
|
|
148
|
+
/**
|
|
149
|
+
* post-install/upgrade jobs. These use the app image and have all env vars available.
|
|
150
|
+
* Typically used for migrations and seeds
|
|
151
|
+
*/
|
|
152
|
+
jobs?: Record<string, false | AllowUnknownProps<{
|
|
153
|
+
/**
|
|
154
|
+
* the command to execute
|
|
155
|
+
*/
|
|
156
|
+
command: string;
|
|
157
|
+
/**
|
|
158
|
+
* comma-separated list of helm hooks, see https://helm.sh/docs/topics/charts_hooks/
|
|
159
|
+
*
|
|
160
|
+
* defaults to post-install,post-upgrade
|
|
161
|
+
*/
|
|
162
|
+
hook?: string;
|
|
163
|
+
}>>;
|
|
164
|
+
/**
|
|
165
|
+
* cronjobs that run periodically. These use the app image have all env vars available.
|
|
166
|
+
*/
|
|
167
|
+
cronjobs?: Record<string, false | AllowUnknownProps<{
|
|
168
|
+
schedule: string;
|
|
169
|
+
command: string;
|
|
170
|
+
concurrencyPolicy?: "Forbid" | "Allow" | "Replace";
|
|
171
|
+
}>>;
|
|
172
|
+
/**
|
|
173
|
+
* configuration for the application ("Deployment" in kubernetes)
|
|
174
|
+
*/
|
|
175
|
+
application?: false | AllowUnknownProps<{
|
|
176
|
+
/**
|
|
177
|
+
* command to start, defaults to build's startCommand
|
|
178
|
+
*/
|
|
179
|
+
command?: string;
|
|
180
|
+
/**
|
|
181
|
+
* enable, disable app deployment, defaults to true
|
|
182
|
+
*/
|
|
183
|
+
enabled?: boolean;
|
|
184
|
+
/**
|
|
185
|
+
* redirects
|
|
186
|
+
*/
|
|
187
|
+
redirects?: AllowUnknownProps<{
|
|
188
|
+
host: string;
|
|
189
|
+
}>[];
|
|
190
|
+
/**
|
|
191
|
+
* Host aliases
|
|
192
|
+
*/
|
|
193
|
+
hostAliases?: string[];
|
|
194
|
+
/**
|
|
195
|
+
* how many pods will be started
|
|
196
|
+
*/
|
|
197
|
+
replicas?: number;
|
|
198
|
+
/**
|
|
199
|
+
* autoscale the pods horizontally
|
|
200
|
+
*/
|
|
201
|
+
autoscale?: KubernetesAutoscale;
|
|
202
|
+
/**
|
|
203
|
+
* the update strategy, see https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#rolling-update-deployment
|
|
204
|
+
*/
|
|
205
|
+
updateStrategy?: KubernetesUpdateStrategy;
|
|
206
|
+
/**
|
|
207
|
+
* kubernetes resources
|
|
208
|
+
*/
|
|
209
|
+
resources?: KubernetesResourcesDef;
|
|
210
|
+
healthRoute?: string;
|
|
211
|
+
startupProbe?: KubernetesHealthDef;
|
|
212
|
+
readinessProbe?: KubernetesHealthDef;
|
|
213
|
+
livenessProbe?: KubernetesHealthDef;
|
|
214
|
+
/**
|
|
215
|
+
* specify a worker. A worker is a separate deployment that runs continously in the background.
|
|
216
|
+
* The worker pod can use the same entry point as the app or a different one (specify command).
|
|
217
|
+
* It has the same environment variables as the application and an additional IS_WORKER="true" variable
|
|
218
|
+
*/
|
|
219
|
+
worker?: KubernetesWorkerDef;
|
|
220
|
+
/**
|
|
221
|
+
* kubernetes resources for jobs and cronjobs
|
|
222
|
+
*/
|
|
223
|
+
jobDefaults?: {
|
|
224
|
+
resources: KubernetesResourcesDef;
|
|
225
|
+
};
|
|
226
|
+
}>;
|
|
227
|
+
/**
|
|
228
|
+
* load secrets from other components.
|
|
229
|
+
* Use this only in cases where the secret is not known on pipeline-time
|
|
230
|
+
* and only if the component is also in the same cluster.
|
|
231
|
+
*
|
|
232
|
+
* a typical case is reusing mongo_url from other component
|
|
233
|
+
*
|
|
234
|
+
* also make sure that the other component deploys first
|
|
235
|
+
*
|
|
236
|
+
* in all other cases use normal env var handling
|
|
237
|
+
*/
|
|
238
|
+
secretsFromOtherComponent?: {
|
|
239
|
+
[envVar: string]: string;
|
|
240
|
+
};
|
|
241
|
+
/**
|
|
242
|
+
* map another services internal endpoint into a env var.
|
|
243
|
+
*/
|
|
244
|
+
mapServiceUrlToEnv?: {
|
|
245
|
+
[envVar: string]: string;
|
|
246
|
+
};
|
|
247
|
+
/**
|
|
248
|
+
* Mount secrets as files in the filesystem.
|
|
249
|
+
* These secrets are still available as env vars, but will contain the path of the file instead
|
|
250
|
+
*
|
|
251
|
+
* @deprecated this will be removed in the future, because its very niche and not used
|
|
252
|
+
*/
|
|
253
|
+
secretsAsFile?: string[];
|
|
254
|
+
}>;
|
|
255
|
+
export declare type DeployConfigKubernetes = {
|
|
256
|
+
type: "kubernetes";
|
|
257
|
+
/**
|
|
258
|
+
* cluster config to use.
|
|
259
|
+
*/
|
|
260
|
+
cluster: DeployConfigKubernetesCluster;
|
|
261
|
+
/**
|
|
262
|
+
* prints out debug info (helm --debug)
|
|
263
|
+
*/
|
|
264
|
+
debug?: boolean;
|
|
265
|
+
additionalHelmArgs?: string[];
|
|
266
|
+
/**
|
|
267
|
+
* values to configure the app
|
|
268
|
+
*/
|
|
269
|
+
values?: DeployConfigKubernetesValues;
|
|
270
|
+
/**
|
|
271
|
+
* Custom Helm chart location.
|
|
272
|
+
* Not recommended to use.
|
|
273
|
+
*/
|
|
274
|
+
chartName?: string;
|
|
275
|
+
} & DeployConfigBase;
|
|
276
|
+
export {};
|
package/dist/deploy/utils.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Config, Context } from "../types";
|
|
2
|
-
import { DeployConfigKubernetesCluster } from "./types";
|
|
1
|
+
import type { Config, Context } from "../types";
|
|
2
|
+
import type { DeployConfigKubernetesCluster } from "./types";
|
|
3
3
|
export declare const getFullKubernetesClusterName: (cluster: DeployConfigKubernetesCluster) => string | undefined;
|
|
4
4
|
export declare const getKubernetesNamespace: (config: Pick<Config, "customerName" | "appName">, env: string) => string;
|
|
5
5
|
export declare const contextIsStoppable: (context: Context) => boolean;
|
package/dist/deploy/utils.js
CHANGED
|
@@ -2,35 +2,28 @@
|
|
|
2
2
|
|
|
3
3
|
exports.__esModule = true;
|
|
4
4
|
exports.contextIsStoppable = exports.getKubernetesNamespace = exports.getFullKubernetesClusterName = void 0;
|
|
5
|
-
|
|
6
5
|
var types_1 = require("./types");
|
|
7
|
-
|
|
8
6
|
var getFullKubernetesClusterName = function (cluster) {
|
|
9
7
|
if (cluster.type === "gcloud") {
|
|
10
8
|
return "gke_".concat(cluster.projectId, "_").concat(cluster.region, "_").concat(cluster.name);
|
|
11
9
|
}
|
|
12
10
|
};
|
|
13
|
-
|
|
14
11
|
exports.getFullKubernetesClusterName = getFullKubernetesClusterName;
|
|
15
|
-
|
|
16
12
|
var getKubernetesNamespace = function (config, env) {
|
|
17
13
|
return "".concat(config.customerName, "-").concat(config.appName, "-").concat(env);
|
|
18
14
|
};
|
|
19
|
-
|
|
20
15
|
exports.getKubernetesNamespace = getKubernetesNamespace;
|
|
21
|
-
|
|
22
16
|
var contextIsStoppable = function (context) {
|
|
23
17
|
var deployConfig = context.componentConfig.deploy;
|
|
24
|
-
|
|
25
18
|
if ((0, types_1.isOfDeployType)(deployConfig, "kubernetes")) {
|
|
26
19
|
return true;
|
|
27
20
|
}
|
|
28
|
-
|
|
21
|
+
if ((0, types_1.isOfDeployType)(deployConfig, "google-cloudrun")) {
|
|
22
|
+
return true;
|
|
23
|
+
}
|
|
29
24
|
if ((0, types_1.isOfDeployType)(deployConfig, "custom") && deployConfig.stopScript) {
|
|
30
25
|
return true;
|
|
31
26
|
}
|
|
32
|
-
|
|
33
27
|
return false;
|
|
34
28
|
};
|
|
35
|
-
|
|
36
29
|
exports.contextIsStoppable = contextIsStoppable;
|
package/dist/index.js
CHANGED
|
@@ -12,25 +12,15 @@ var __createBinding = this && this.__createBinding || (Object.create ? function
|
|
|
12
12
|
if (k2 === undefined) k2 = k;
|
|
13
13
|
o[k2] = m[k];
|
|
14
14
|
});
|
|
15
|
-
|
|
16
15
|
var __exportStar = this && this.__exportStar || function (m, exports) {
|
|
17
16
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
18
17
|
};
|
|
19
|
-
|
|
20
18
|
exports.__esModule = true;
|
|
21
|
-
|
|
22
19
|
__exportStar(require("./pipeline/"), exports);
|
|
23
|
-
|
|
24
20
|
__exportStar(require("./types"), exports);
|
|
25
|
-
|
|
26
21
|
__exportStar(require("./rules"), exports);
|
|
27
|
-
|
|
28
22
|
__exportStar(require("./runner"), exports);
|
|
29
|
-
|
|
30
23
|
__exportStar(require("./config"), exports);
|
|
31
|
-
|
|
32
24
|
__exportStar(require("./context"), exports);
|
|
33
|
-
|
|
34
25
|
__exportStar(require("./build"), exports);
|
|
35
|
-
|
|
36
26
|
__exportStar(require("./deploy"), exports);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const getBuildId: () => Promise<string>;
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) {
|
|
4
|
+
function adopt(value) {
|
|
5
|
+
return value instanceof P ? value : new P(function (resolve) {
|
|
6
|
+
resolve(value);
|
|
7
|
+
});
|
|
8
|
+
}
|
|
9
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
10
|
+
function fulfilled(value) {
|
|
11
|
+
try {
|
|
12
|
+
step(generator.next(value));
|
|
13
|
+
} catch (e) {
|
|
14
|
+
reject(e);
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
function rejected(value) {
|
|
18
|
+
try {
|
|
19
|
+
step(generator["throw"](value));
|
|
20
|
+
} catch (e) {
|
|
21
|
+
reject(e);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
function step(result) {
|
|
25
|
+
result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
|
|
26
|
+
}
|
|
27
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
28
|
+
});
|
|
29
|
+
};
|
|
30
|
+
var __generator = this && this.__generator || function (thisArg, body) {
|
|
31
|
+
var _ = {
|
|
32
|
+
label: 0,
|
|
33
|
+
sent: function () {
|
|
34
|
+
if (t[0] & 1) throw t[1];
|
|
35
|
+
return t[1];
|
|
36
|
+
},
|
|
37
|
+
trys: [],
|
|
38
|
+
ops: []
|
|
39
|
+
},
|
|
40
|
+
f,
|
|
41
|
+
y,
|
|
42
|
+
t,
|
|
43
|
+
g;
|
|
44
|
+
return g = {
|
|
45
|
+
next: verb(0),
|
|
46
|
+
"throw": verb(1),
|
|
47
|
+
"return": verb(2)
|
|
48
|
+
}, typeof Symbol === "function" && (g[Symbol.iterator] = function () {
|
|
49
|
+
return this;
|
|
50
|
+
}), g;
|
|
51
|
+
function verb(n) {
|
|
52
|
+
return function (v) {
|
|
53
|
+
return step([n, v]);
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
function step(op) {
|
|
57
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
58
|
+
while (_) try {
|
|
59
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
60
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
61
|
+
switch (op[0]) {
|
|
62
|
+
case 0:
|
|
63
|
+
case 1:
|
|
64
|
+
t = op;
|
|
65
|
+
break;
|
|
66
|
+
case 4:
|
|
67
|
+
_.label++;
|
|
68
|
+
return {
|
|
69
|
+
value: op[1],
|
|
70
|
+
done: false
|
|
71
|
+
};
|
|
72
|
+
case 5:
|
|
73
|
+
_.label++;
|
|
74
|
+
y = op[1];
|
|
75
|
+
op = [0];
|
|
76
|
+
continue;
|
|
77
|
+
case 7:
|
|
78
|
+
op = _.ops.pop();
|
|
79
|
+
_.trys.pop();
|
|
80
|
+
continue;
|
|
81
|
+
default:
|
|
82
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
|
|
83
|
+
_ = 0;
|
|
84
|
+
continue;
|
|
85
|
+
}
|
|
86
|
+
if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
|
|
87
|
+
_.label = op[1];
|
|
88
|
+
break;
|
|
89
|
+
}
|
|
90
|
+
if (op[0] === 6 && _.label < t[1]) {
|
|
91
|
+
_.label = t[1];
|
|
92
|
+
t = op;
|
|
93
|
+
break;
|
|
94
|
+
}
|
|
95
|
+
if (t && _.label < t[2]) {
|
|
96
|
+
_.label = t[2];
|
|
97
|
+
_.ops.push(op);
|
|
98
|
+
break;
|
|
99
|
+
}
|
|
100
|
+
if (t[2]) _.ops.pop();
|
|
101
|
+
_.trys.pop();
|
|
102
|
+
continue;
|
|
103
|
+
}
|
|
104
|
+
op = body.call(thisArg, _);
|
|
105
|
+
} catch (e) {
|
|
106
|
+
op = [6, e];
|
|
107
|
+
y = 0;
|
|
108
|
+
} finally {
|
|
109
|
+
f = t = 0;
|
|
110
|
+
}
|
|
111
|
+
if (op[0] & 5) throw op[1];
|
|
112
|
+
return {
|
|
113
|
+
value: op[0] ? op[1] : void 0,
|
|
114
|
+
done: true
|
|
115
|
+
};
|
|
116
|
+
}
|
|
117
|
+
};
|
|
118
|
+
exports.__esModule = true;
|
|
119
|
+
exports.getBuildId = void 0;
|
|
120
|
+
var child_process_promise_1 = require("child-process-promise");
|
|
121
|
+
var getBuildId = function () {
|
|
122
|
+
return __awaiter(void 0, void 0, void 0, function () {
|
|
123
|
+
return __generator(this, function (_a) {
|
|
124
|
+
switch (_a.label) {
|
|
125
|
+
case 0:
|
|
126
|
+
return [4 /*yield*/, (0, child_process_promise_1.exec)("git describe --tags || git rev-parse HEAD").then(function (s) {
|
|
127
|
+
return s.stdout.trim();
|
|
128
|
+
})];
|
|
129
|
+
case 1:
|
|
130
|
+
return [2 /*return*/, _a.sent()];
|
|
131
|
+
}
|
|
132
|
+
});
|
|
133
|
+
});
|
|
134
|
+
};
|
|
135
|
+
exports.getBuildId = getBuildId;
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) {
|
|
4
|
+
function adopt(value) {
|
|
5
|
+
return value instanceof P ? value : new P(function (resolve) {
|
|
6
|
+
resolve(value);
|
|
7
|
+
});
|
|
8
|
+
}
|
|
9
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
10
|
+
function fulfilled(value) {
|
|
11
|
+
try {
|
|
12
|
+
step(generator.next(value));
|
|
13
|
+
} catch (e) {
|
|
14
|
+
reject(e);
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
function rejected(value) {
|
|
18
|
+
try {
|
|
19
|
+
step(generator["throw"](value));
|
|
20
|
+
} catch (e) {
|
|
21
|
+
reject(e);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
function step(result) {
|
|
25
|
+
result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
|
|
26
|
+
}
|
|
27
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
28
|
+
});
|
|
29
|
+
};
|
|
30
|
+
var __generator = this && this.__generator || function (thisArg, body) {
|
|
31
|
+
var _ = {
|
|
32
|
+
label: 0,
|
|
33
|
+
sent: function () {
|
|
34
|
+
if (t[0] & 1) throw t[1];
|
|
35
|
+
return t[1];
|
|
36
|
+
},
|
|
37
|
+
trys: [],
|
|
38
|
+
ops: []
|
|
39
|
+
},
|
|
40
|
+
f,
|
|
41
|
+
y,
|
|
42
|
+
t,
|
|
43
|
+
g;
|
|
44
|
+
return g = {
|
|
45
|
+
next: verb(0),
|
|
46
|
+
"throw": verb(1),
|
|
47
|
+
"return": verb(2)
|
|
48
|
+
}, typeof Symbol === "function" && (g[Symbol.iterator] = function () {
|
|
49
|
+
return this;
|
|
50
|
+
}), g;
|
|
51
|
+
function verb(n) {
|
|
52
|
+
return function (v) {
|
|
53
|
+
return step([n, v]);
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
function step(op) {
|
|
57
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
58
|
+
while (_) try {
|
|
59
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
60
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
61
|
+
switch (op[0]) {
|
|
62
|
+
case 0:
|
|
63
|
+
case 1:
|
|
64
|
+
t = op;
|
|
65
|
+
break;
|
|
66
|
+
case 4:
|
|
67
|
+
_.label++;
|
|
68
|
+
return {
|
|
69
|
+
value: op[1],
|
|
70
|
+
done: false
|
|
71
|
+
};
|
|
72
|
+
case 5:
|
|
73
|
+
_.label++;
|
|
74
|
+
y = op[1];
|
|
75
|
+
op = [0];
|
|
76
|
+
continue;
|
|
77
|
+
case 7:
|
|
78
|
+
op = _.ops.pop();
|
|
79
|
+
_.trys.pop();
|
|
80
|
+
continue;
|
|
81
|
+
default:
|
|
82
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
|
|
83
|
+
_ = 0;
|
|
84
|
+
continue;
|
|
85
|
+
}
|
|
86
|
+
if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
|
|
87
|
+
_.label = op[1];
|
|
88
|
+
break;
|
|
89
|
+
}
|
|
90
|
+
if (op[0] === 6 && _.label < t[1]) {
|
|
91
|
+
_.label = t[1];
|
|
92
|
+
t = op;
|
|
93
|
+
break;
|
|
94
|
+
}
|
|
95
|
+
if (t && _.label < t[2]) {
|
|
96
|
+
_.label = t[2];
|
|
97
|
+
_.ops.push(op);
|
|
98
|
+
break;
|
|
99
|
+
}
|
|
100
|
+
if (t[2]) _.ops.pop();
|
|
101
|
+
_.trys.pop();
|
|
102
|
+
continue;
|
|
103
|
+
}
|
|
104
|
+
op = body.call(thisArg, _);
|
|
105
|
+
} catch (e) {
|
|
106
|
+
op = [6, e];
|
|
107
|
+
y = 0;
|
|
108
|
+
} finally {
|
|
109
|
+
f = t = 0;
|
|
110
|
+
}
|
|
111
|
+
if (op[0] & 5) throw op[1];
|
|
112
|
+
return {
|
|
113
|
+
value: op[0] ? op[1] : void 0,
|
|
114
|
+
done: true
|
|
115
|
+
};
|
|
116
|
+
}
|
|
117
|
+
};
|
|
118
|
+
exports.__esModule = true;
|
|
119
|
+
exports.getBaseCommitInfo = void 0;
|
|
120
|
+
var getBuildId_1 = require("./getBuildId");
|
|
121
|
+
var getBaseCommitInfo = function () {
|
|
122
|
+
return __awaiter(void 0, void 0, void 0, function () {
|
|
123
|
+
var _a;
|
|
124
|
+
var _b;
|
|
125
|
+
return __generator(this, function (_c) {
|
|
126
|
+
switch (_c.label) {
|
|
127
|
+
case 0:
|
|
128
|
+
_a = {
|
|
129
|
+
refName: (_b = process.env.CI_COMMIT_REF_NAME) !== null && _b !== void 0 ? _b : "unknown",
|
|
130
|
+
reviewSlug: process.env.CI_MERGE_REQUEST_IID ? "mr".concat(process.env.CI_MERGE_REQUEST_IID) : "unknown",
|
|
131
|
+
buildTime: new Date().toISOString()
|
|
132
|
+
};
|
|
133
|
+
return [4 /*yield*/, (0, getBuildId_1.getBuildId)()];
|
|
134
|
+
case 1:
|
|
135
|
+
return [2 /*return*/, (_a.buildId = _c.sent(), _a)];
|
|
136
|
+
}
|
|
137
|
+
});
|
|
138
|
+
});
|
|
139
|
+
};
|
|
140
|
+
exports.getBaseCommitInfo = getBaseCommitInfo;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { Config, PipelineTrigger } from "../types";
|
|
2
|
+
import type { CatladderJob } from "../types/jobs";
|
|
3
|
+
export declare type AllCatladderJobs = {
|
|
4
|
+
[componentName: string]: {
|
|
5
|
+
[env: string]: Array<CatladderJob>;
|
|
6
|
+
};
|
|
7
|
+
};
|
|
8
|
+
export declare const createAllJobs: (config: Config, trigger: PipelineTrigger) => Promise<AllCatladderJobs>;
|