@catladder/pipeline 0.0.0-node16-ddfae617 → 0.0.0-perf-cli-reduce-bundle-size-with-tsconfig-optimization-3556aaa4
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/README.md +17 -0
- package/bin/catladder-gitlab-dev.js +3 -0
- package/bin/catladder-gitlab.js +1 -1
- package/dist/bash/BashExpression.d.ts +40 -0
- package/dist/bash/BashExpression.js +124 -0
- package/dist/bash/bashExpressionPerPipelineType.d.ts +6 -0
- package/dist/bash/bashExpressionPerPipelineType.js +11 -0
- package/dist/bash/bashYaml.d.ts +10 -0
- package/dist/bash/bashYaml.js +46 -0
- package/dist/bash/getInjectVarsScript.d.ts +2 -0
- package/dist/bash/getInjectVarsScript.js +45 -0
- package/dist/bash/replaceAsync.d.ts +2 -0
- package/dist/bash/replaceAsync.js +171 -0
- package/dist/build/artifacts/createBuildJobArtifact.d.ts +3 -0
- package/dist/build/artifacts/createBuildJobArtifact.js +97 -0
- package/dist/build/base/__tests__/createArtifactsConfig.test.js +42 -0
- package/dist/build/base/constants.d.ts +0 -1
- package/dist/build/base/constants.js +4 -3
- package/dist/build/base/createAppBuildJob.d.ts +9 -0
- package/dist/build/base/createAppBuildJob.js +87 -0
- package/dist/build/base/createArtifactsConfig.d.ts +4 -0
- package/dist/build/base/createArtifactsConfig.js +65 -0
- package/dist/build/base/index.d.ts +12 -0
- package/dist/build/base/index.js +68 -0
- package/dist/build/base/writeBuildInfo.d.ts +2 -0
- package/dist/build/base/writeBuildInfo.js +10 -0
- package/dist/build/base/writeDotEnv.d.ts +8 -0
- package/dist/build/base/writeDotEnv.js +66 -0
- package/dist/build/custom/__tests__/testJob.test.js +36 -0
- package/dist/build/custom/buildJob.d.ts +3 -0
- package/dist/build/custom/buildJob.js +67 -0
- package/dist/build/custom/index.d.ts +3 -0
- package/dist/build/custom/index.js +43 -0
- package/dist/build/custom/testJob.d.ts +7 -0
- package/dist/build/custom/testJob.js +100 -0
- package/dist/build/docker.d.ts +61 -22
- package/dist/build/docker.js +110 -73
- package/dist/build/index.d.ts +16 -8
- package/dist/build/index.js +61 -19
- package/dist/build/node/buildJob.d.ts +8 -3
- package/dist/build/node/buildJob.js +48 -68
- package/dist/build/node/cache.d.ts +4 -3
- package/dist/build/node/cache.js +45 -32
- package/dist/build/node/constants.d.ts +0 -1
- package/dist/build/node/constants.js +5 -4
- package/dist/build/node/index.d.ts +5 -5
- package/dist/build/node/index.js +6 -17
- package/dist/build/node/meteor.d.ts +3 -3
- package/dist/build/node/meteor.js +26 -37
- package/dist/build/node/testJob.d.ts +4 -3
- package/dist/build/node/testJob.js +35 -36
- package/dist/build/node/yarn.d.ts +6 -6
- package/dist/build/node/yarn.js +40 -25
- package/dist/build/rails/build.d.ts +3 -0
- package/dist/build/rails/build.js +90 -0
- package/dist/build/rails/index.d.ts +3 -0
- package/dist/build/rails/index.js +43 -0
- package/dist/build/rails/test.d.ts +3 -0
- package/dist/build/rails/test.js +103 -0
- package/dist/build/sbom.d.ts +5 -0
- package/dist/build/sbom.js +32 -0
- package/dist/build/types.d.ts +251 -33
- package/dist/build/types.js +10 -6
- package/dist/bundles/catladder-gitlab/index.js +41626 -0
- package/dist/catladder-gitlab.js +130 -68
- package/dist/config/{configruedEnvs.test.js → __tests__/configruedEnvs.test.js} +13 -13
- package/dist/config/__tests__/getAllEnvs.test.js +79 -0
- package/dist/config/__tests__/getAllEnvsInAllComponents.test.d.ts +1 -0
- package/dist/config/__tests__/getAllEnvsInAllComponents.test.js +73 -0
- package/dist/config/configruedEnvs.d.ts +1 -1
- package/dist/config/configruedEnvs.js +10 -23
- package/dist/config/index.js +13 -11
- package/dist/config/readConfig.d.ts +3 -3
- package/dist/config/readConfig.js +193 -52
- package/dist/constants.js +5 -3
- package/dist/context/__tests__/resolveReferences.test.d.ts +1 -0
- package/dist/context/__tests__/resolveReferences.test.js +368 -0
- package/dist/context/createAllComponentsContext.d.ts +12 -0
- package/dist/context/createAllComponentsContext.js +159 -0
- package/dist/context/createComponentContext.d.ts +11 -0
- package/dist/context/createComponentContext.js +256 -0
- package/dist/context/createWorkspaceContext.d.ts +16 -0
- package/dist/context/createWorkspaceContext.js +173 -0
- package/dist/context/getBuildInfoVariables.d.ts +6 -0
- package/dist/context/getBuildInfoVariables.js +55 -0
- package/dist/context/getEnvConfig.d.ts +2 -0
- package/dist/context/getEnvConfig.js +20 -0
- package/dist/context/getEnvType.d.ts +4 -0
- package/dist/context/getEnvType.js +15 -0
- package/dist/context/getEnvironment.d.ts +3 -0
- package/dist/{pipeline/createChildPipeline.test.js → context/getEnvironment.js} +50 -86
- package/dist/context/getEnvironmentContext.d.ts +8 -0
- package/dist/context/getEnvironmentContext.js +43 -0
- package/dist/context/getEnvironmentVariables.d.ts +27 -0
- package/dist/context/getEnvironmentVariables.js +285 -0
- package/dist/context/getLabels.d.ts +9 -0
- package/dist/context/getLabels.js +41 -0
- package/dist/context/getReviewSlug.d.ts +4 -0
- package/dist/context/getReviewSlug.js +22 -0
- package/dist/context/index.d.ts +3 -6
- package/dist/context/index.js +22 -219
- package/dist/context/resolveReferences.d.ts +3 -3
- package/dist/context/resolveReferences.js +248 -55
- package/dist/context/transformJobOnlyVars.d.ts +13 -0
- package/dist/{build/tests/storybook.test.js → context/transformJobOnlyVars.js} +54 -106
- package/dist/context/utils/envVars.d.ts +8 -0
- package/dist/context/utils/envVars.js +55 -0
- package/dist/defaults/index.d.ts +1 -1
- package/dist/defaults/index.js +3 -1
- package/dist/deploy/base/deploy.d.ts +5 -0
- package/dist/deploy/base/deploy.js +121 -0
- package/dist/deploy/base/index.d.ts +10 -0
- package/dist/deploy/base/index.js +44 -0
- package/dist/deploy/base/rollback.d.ts +5 -0
- package/dist/deploy/base/rollback.js +41 -0
- package/dist/deploy/base/stop.d.ts +5 -0
- package/dist/deploy/base/stop.js +46 -0
- package/dist/deploy/base/types.d.ts +2 -0
- package/dist/deploy/base/types.js +5 -0
- package/dist/deploy/base/variables.d.ts +5 -0
- package/dist/deploy/base/variables.js +11 -0
- package/dist/deploy/cloudRun/artifactsRegistry.d.ts +19 -0
- package/dist/deploy/cloudRun/artifactsRegistry.js +125 -0
- package/dist/deploy/cloudRun/cleanup.d.ts +2 -0
- package/dist/deploy/cloudRun/cleanup.js +53 -0
- package/dist/deploy/cloudRun/cloudRunRevisions.d.ts +2 -0
- package/dist/deploy/cloudRun/cloudRunRevisions.js +62 -0
- package/dist/deploy/cloudRun/createJobs/cloudRunJobs.d.ts +7 -0
- package/dist/deploy/cloudRun/createJobs/cloudRunJobs.js +187 -0
- package/dist/deploy/cloudRun/createJobs/cloudRunServices.d.ts +4 -0
- package/dist/deploy/cloudRun/createJobs/cloudRunServices.js +93 -0
- package/dist/deploy/cloudRun/createJobs/common.d.ts +18 -0
- package/dist/deploy/cloudRun/createJobs/common.js +93 -0
- package/dist/deploy/cloudRun/createJobs/constants.d.ts +1 -0
- package/dist/deploy/cloudRun/createJobs/constants.js +7 -0
- package/dist/deploy/cloudRun/createJobs/getCloudRunDeployScripts.d.ts +2 -0
- package/dist/deploy/cloudRun/createJobs/getCloudRunDeployScripts.js +62 -0
- package/dist/deploy/cloudRun/createJobs/getCloudRunStopScripts.d.ts +2 -0
- package/dist/deploy/cloudRun/createJobs/getCloudRunStopScripts.js +54 -0
- package/dist/deploy/cloudRun/createJobs/index.d.ts +3 -0
- package/dist/deploy/cloudRun/createJobs/index.js +58 -0
- package/dist/deploy/cloudRun/createJobs/volumes.d.ts +3 -0
- package/dist/deploy/cloudRun/createJobs/volumes.js +58 -0
- package/dist/deploy/cloudRun/index.d.ts +4 -0
- package/dist/deploy/cloudRun/index.js +128 -0
- package/dist/deploy/cloudRun/utils/createArgsString.d.ts +13 -0
- package/dist/deploy/cloudRun/utils/createArgsString.js +63 -0
- package/dist/deploy/cloudRun/utils/database.d.ts +6 -0
- package/dist/deploy/cloudRun/utils/database.js +77 -0
- package/dist/deploy/cloudRun/utils/gcloudServiceAccountLoginCommands.d.ts +2 -0
- package/dist/deploy/cloudRun/utils/gcloudServiceAccountLoginCommands.js +12 -0
- package/dist/deploy/cloudRun/utils/getServiceName.d.ts +2 -0
- package/dist/deploy/cloudRun/utils/getServiceName.js +10 -0
- package/dist/deploy/cloudRun/utils/jobName.d.ts +2 -0
- package/dist/deploy/cloudRun/utils/jobName.js +10 -0
- package/dist/deploy/cloudRun/utils/removeFirstLinesFromCommandOutput.d.ts +9 -0
- package/dist/deploy/cloudRun/utils/removeFirstLinesFromCommandOutput.js +18 -0
- package/dist/deploy/cloudSql/utils.d.ts +4 -0
- package/dist/deploy/cloudSql/utils.js +14 -0
- package/dist/deploy/custom/deployJob.d.ts +3 -3
- package/dist/deploy/custom/deployJob.js +28 -25
- package/dist/deploy/custom/index.d.ts +2 -1
- package/dist/deploy/custom/index.js +16 -19
- package/dist/deploy/dockerTag/deployJob.d.ts +3 -0
- package/dist/deploy/dockerTag/deployJob.js +65 -0
- package/dist/deploy/dockerTag/index.d.ts +2 -0
- package/dist/deploy/dockerTag/index.js +19 -0
- package/dist/deploy/index.d.ts +15 -9
- package/dist/deploy/index.js +20 -27
- package/dist/deploy/kubernetes/additionalSecretKeys.d.ts +8 -0
- package/dist/deploy/kubernetes/additionalSecretKeys.js +30 -0
- package/dist/deploy/kubernetes/cloudSql/index.d.ts +14 -0
- package/dist/deploy/kubernetes/cloudSql/index.js +55 -0
- package/dist/deploy/kubernetes/deployJob.d.ts +3 -3
- package/dist/deploy/kubernetes/deployJob.js +43 -124
- package/dist/deploy/kubernetes/index.d.ts +3 -1
- package/dist/deploy/kubernetes/index.js +86 -11
- package/dist/deploy/kubernetes/kubeEnv.d.ts +10 -0
- package/dist/deploy/kubernetes/kubeEnv.js +76 -0
- package/dist/deploy/kubernetes/kubeValues.d.ts +90 -0
- package/dist/deploy/kubernetes/kubeValues.js +123 -0
- package/dist/deploy/kubernetes/mongodb.d.ts +19 -6
- package/dist/deploy/kubernetes/mongodb.js +100 -11
- package/dist/deploy/kubernetes/processSecretsAsFiles.d.ts +27 -29
- package/dist/deploy/kubernetes/processSecretsAsFiles.js +5 -11
- package/dist/deploy/sbom.d.ts +4 -0
- package/dist/deploy/sbom.js +20 -0
- package/dist/deploy/types/base.d.ts +36 -0
- package/dist/deploy/types/base.js +5 -0
- package/dist/deploy/types/custom.d.ts +33 -0
- package/dist/deploy/types/custom.js +5 -0
- package/dist/deploy/types/dockerTag.d.ts +12 -0
- package/dist/deploy/types/dockerTag.js +5 -0
- package/dist/deploy/types/googleCloudRun.d.ts +208 -0
- package/dist/deploy/types/googleCloudRun.js +5 -0
- package/dist/deploy/types/index.d.ts +22 -0
- package/dist/deploy/types/index.js +37 -0
- package/dist/deploy/types/kubernetes.d.ts +355 -0
- package/dist/deploy/types/kubernetes.js +5 -0
- package/dist/deploy/utils.d.ts +3 -3
- package/dist/deploy/utils.js +8 -12
- package/dist/index.d.ts +3 -2
- package/dist/index.js +16 -19
- package/dist/packageInfos.d.ts +4 -0
- package/dist/packageInfos.js +20 -0
- package/dist/pipeline/__tests__/getPipelineStages.test.d.ts +1 -0
- package/dist/pipeline/__tests__/getPipelineStages.test.js +73 -0
- package/dist/pipeline/createAllJobs.d.ts +18 -0
- package/dist/pipeline/createAllJobs.js +236 -0
- package/dist/pipeline/createChildPipeline.d.ts +3 -3
- package/dist/pipeline/createChildPipeline.js +45 -157
- package/dist/pipeline/createJobsForComponent.d.ts +3 -0
- package/dist/{build/base/createBuildJob.js → pipeline/createJobsForComponent.js} +32 -51
- package/dist/pipeline/createJobsForWorkspace.d.ts +3 -0
- package/dist/pipeline/createJobsForWorkspace.js +12 -0
- package/dist/pipeline/createMainPipeline.d.ts +3 -0
- package/dist/pipeline/createMainPipeline.js +269 -0
- package/dist/pipeline/generatePipelineFiles.d.ts +40 -0
- package/dist/pipeline/generatePipelineFiles.js +240 -0
- package/dist/pipeline/getPipelineStages.d.ts +7 -0
- package/dist/pipeline/getPipelineStages.js +56 -0
- package/dist/pipeline/gitlab/createGitlabJobs.d.ts +11 -0
- package/dist/pipeline/gitlab/createGitlabJobs.js +461 -0
- package/dist/pipeline/gitlab/createGitlabPipeline.d.ts +8 -0
- package/dist/pipeline/gitlab/createGitlabPipeline.js +41 -0
- package/dist/pipeline/gitlab/getPipelineTriggerForGitlabChildPipeline.d.ts +1 -0
- package/dist/pipeline/gitlab/getPipelineTriggerForGitlabChildPipeline.js +29 -0
- package/dist/pipeline/gitlab/gitlabReleaseJobs.d.ts +35 -0
- package/dist/pipeline/gitlab/gitlabReleaseJobs.js +27 -0
- package/dist/pipeline/gitlab/sortGitLabJobDefProps.d.ts +7 -0
- package/dist/pipeline/gitlab/sortGitLabJobDefProps.js +27 -0
- package/dist/pipeline/index.d.ts +3 -1
- package/dist/pipeline/index.js +16 -12
- package/dist/pipeline/packageManager.d.ts +3 -2
- package/dist/pipeline/packageManager.js +69 -196
- package/dist/pipeline/yarn/yarnUtils.d.ts +5 -0
- package/dist/pipeline/yarn/yarnUtils.js +241 -0
- package/dist/rules/index.d.ts +10 -2
- package/dist/rules/index.js +36 -16
- package/dist/runner/index.d.ts +2 -3
- package/dist/runner/index.js +3 -4
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/types/config.d.ts +56 -32
- package/dist/types/config.js +11 -18
- package/dist/types/context.d.ts +143 -27
- package/dist/types/context.js +12 -1
- package/dist/types/environmentContext.d.ts +31 -0
- package/dist/types/environmentContext.js +5 -0
- package/dist/types/gitlab-ci-yml.d.ts +769 -0
- package/dist/types/gitlab-ci-yml.js +10 -0
- package/dist/types/gitlab-types.d.ts +12 -60
- package/dist/types/gitlab-types.js +3 -1
- package/dist/types/index.js +13 -13
- package/dist/types/jobs.d.ts +55 -21
- package/dist/types/jobs.js +4 -2
- package/dist/types/pipeline.d.ts +5 -4
- package/dist/types/pipeline.js +3 -1
- package/dist/types/utils.d.ts +1 -0
- package/dist/types/utils.js +5 -0
- package/dist/utils/gitlab.d.ts +6 -0
- package/dist/utils/gitlab.js +56 -0
- package/dist/utils/index.d.ts +1 -1
- package/dist/utils/index.js +8 -16
- package/dist/utils/jsonParse.d.ts +1 -0
- package/dist/utils/jsonParse.js +14 -0
- package/dist/utils/removeUndefined.d.ts +1 -0
- package/dist/utils/removeUndefined.js +36 -0
- package/dist/utils/writeFiles.d.ts +11 -0
- package/dist/utils/writeFiles.js +180 -0
- package/examples/.test-gen-ignore +1 -0
- package/examples/__snapshots__/cloud-run-memory-limit.test.ts.snap +3300 -0
- package/examples/__snapshots__/cloud-run-meteor-with-worker.test.ts.snap +3260 -0
- package/examples/__snapshots__/cloud-run-no-cpu-throttling.test.ts.snap +3300 -0
- package/examples/__snapshots__/cloud-run-no-service.test.ts.snap +3404 -0
- package/examples/__snapshots__/cloud-run-non-public.test.ts.snap +3300 -0
- package/examples/__snapshots__/cloud-run-post-stop-job.test.ts.snap +3322 -0
- package/examples/__snapshots__/cloud-run-service-gen2.test.ts.snap +3300 -0
- package/examples/__snapshots__/cloud-run-service-increase-timout.test.ts.snap +3300 -0
- package/examples/__snapshots__/cloud-run-service-with-volumes.test.ts.snap +3388 -0
- package/examples/__snapshots__/cloud-run-storybook.test.ts.snap +2900 -0
- package/examples/__snapshots__/cloud-run-with-ngnix.test.ts.snap +3300 -0
- package/examples/__snapshots__/cloud-run-with-sql-reuse-db.test.ts.snap +6760 -0
- package/examples/__snapshots__/cloud-run-with-sql.test.ts.snap +6030 -0
- package/examples/__snapshots__/cloud-run-with-worker.test.ts.snap +3316 -0
- package/examples/__snapshots__/custom-build-job-with-tests.test.ts.snap +2983 -0
- package/examples/__snapshots__/custom-build-job.test.ts.snap +2572 -0
- package/examples/__snapshots__/custom-deploy.test.ts.snap +2824 -0
- package/examples/__snapshots__/custom-envs.test.ts.snap +1884 -0
- package/examples/__snapshots__/custom-sbom-java.test.ts.snap +2588 -0
- package/examples/__snapshots__/git-submodule.test.ts.snap +3304 -0
- package/examples/__snapshots__/kubernetes-application-customization.test.ts.snap +4228 -0
- package/examples/__snapshots__/kubernetes-with-cloud-sql-legacy.test.ts.snap +4252 -0
- package/examples/__snapshots__/kubernetes-with-cloud-sql.test.ts.snap +4268 -0
- package/examples/__snapshots__/kubernetes-with-jobs.test.ts.snap +7910 -0
- package/examples/__snapshots__/kubernetes-with-mongodb.test.ts.snap +4476 -0
- package/examples/__snapshots__/local-dot-env.test.ts.snap +3300 -0
- package/examples/__snapshots__/meteor-kubernetes.test.ts.snap +4342 -0
- package/examples/__snapshots__/multiline-var.test.ts.snap +7864 -0
- package/examples/__snapshots__/native-app.test.ts.snap +5316 -0
- package/examples/__snapshots__/node-build-with-custom-image.test.ts.snap +3300 -0
- package/examples/__snapshots__/node-build-with-docker-additions.test.ts.snap +3316 -0
- package/examples/__snapshots__/rails-k8s-with-worker-dockerfile.test.ts.snap +2011 -0
- package/examples/__snapshots__/rails-k8s-with-worker.test.ts.snap +3465 -0
- package/examples/__snapshots__/wait-for-other-deploy.test.ts.snap +3380 -0
- package/examples/__utils__/helpers.ts +27 -0
- package/examples/cloud-run-memory-limit.test.ts +18 -0
- package/examples/cloud-run-memory-limit.ts +33 -0
- package/examples/cloud-run-meteor-with-worker.test.ts +18 -0
- package/examples/cloud-run-meteor-with-worker.ts +37 -0
- package/examples/cloud-run-no-cpu-throttling.test.ts +18 -0
- package/examples/cloud-run-no-cpu-throttling.ts +35 -0
- package/examples/cloud-run-no-service.test.ts +18 -0
- package/examples/cloud-run-no-service.ts +33 -0
- package/examples/cloud-run-non-public.test.ts +18 -0
- package/examples/cloud-run-non-public.ts +28 -0
- package/examples/cloud-run-post-stop-job.test.ts +18 -0
- package/examples/cloud-run-post-stop-job.ts +42 -0
- package/examples/cloud-run-service-gen2.test.ts +18 -0
- package/examples/cloud-run-service-gen2.ts +29 -0
- package/examples/cloud-run-service-increase-timout.test.ts +18 -0
- package/examples/cloud-run-service-increase-timout.ts +29 -0
- package/examples/cloud-run-service-with-volumes.test.ts +18 -0
- package/examples/cloud-run-service-with-volumes.ts +56 -0
- package/examples/cloud-run-storybook.test.ts +18 -0
- package/examples/cloud-run-storybook.ts +33 -0
- package/examples/cloud-run-with-ngnix.test.ts +18 -0
- package/examples/cloud-run-with-ngnix.ts +29 -0
- package/examples/cloud-run-with-sql-reuse-db.test.ts +18 -0
- package/examples/cloud-run-with-sql-reuse-db.ts +55 -0
- package/examples/cloud-run-with-sql.test.ts +18 -0
- package/examples/cloud-run-with-sql.ts +71 -0
- package/examples/cloud-run-with-worker.test.ts +18 -0
- package/examples/cloud-run-with-worker.ts +37 -0
- package/examples/custom-build-job-with-tests.test.ts +18 -0
- package/examples/custom-build-job-with-tests.ts +56 -0
- package/examples/custom-build-job.test.ts +18 -0
- package/examples/custom-build-job.ts +29 -0
- package/examples/custom-deploy.test.ts +18 -0
- package/examples/custom-deploy.ts +36 -0
- package/examples/custom-envs.test.ts +18 -0
- package/examples/custom-envs.ts +32 -0
- package/examples/custom-sbom-java.test.ts +18 -0
- package/examples/custom-sbom-java.ts +38 -0
- package/examples/git-submodule.test.ts +18 -0
- package/examples/git-submodule.ts +30 -0
- package/examples/kubernetes-application-customization.test.ts +18 -0
- package/examples/kubernetes-application-customization.ts +59 -0
- package/examples/kubernetes-with-cloud-sql-legacy.test.ts +18 -0
- package/examples/kubernetes-with-cloud-sql-legacy.ts +35 -0
- package/examples/kubernetes-with-cloud-sql.test.ts +18 -0
- package/examples/kubernetes-with-cloud-sql.ts +37 -0
- package/examples/kubernetes-with-jobs.test.ts +18 -0
- package/examples/kubernetes-with-jobs.ts +70 -0
- package/examples/kubernetes-with-mongodb.test.ts +18 -0
- package/examples/kubernetes-with-mongodb.ts +51 -0
- package/examples/local-dot-env.test.ts +18 -0
- package/examples/local-dot-env.ts +27 -0
- package/examples/meteor-kubernetes.test.ts +18 -0
- package/examples/meteor-kubernetes.ts +64 -0
- package/examples/multiline-var.test.ts +18 -0
- package/examples/multiline-var.ts +65 -0
- package/examples/native-app.test.ts +18 -0
- package/examples/native-app.ts +83 -0
- package/examples/node-build-with-custom-image.test.ts +18 -0
- package/examples/node-build-with-custom-image.ts +26 -0
- package/examples/node-build-with-docker-additions.test.ts +18 -0
- package/examples/node-build-with-docker-additions.ts +29 -0
- package/examples/rails-k8s-with-worker-dockerfile.test.ts +9 -0
- package/examples/rails-k8s-with-worker.test.ts +18 -0
- package/examples/rails-k8s-with-worker.ts +95 -0
- package/examples/wait-for-other-deploy.test.ts +18 -0
- package/examples/wait-for-other-deploy.ts +37 -0
- package/package.json +76 -17
- package/scripts/bundle +2 -0
- package/scripts/generate-examples-test.ts +93 -0
- package/scripts/generate-gitlab-ci-types.ts +51 -0
- package/scripts/tsconfig.json +7 -0
- package/src/bash/BashExpression.ts +81 -0
- package/src/bash/bashExpressionPerPipelineType.ts +16 -0
- package/src/bash/bashYaml.ts +46 -0
- package/src/bash/getInjectVarsScript.ts +12 -0
- package/src/bash/replaceAsync.ts +50 -0
- package/src/build/artifacts/createBuildJobArtifact.ts +61 -0
- package/src/build/base/__tests__/__snapshots__/createArtifactsConfig.test.ts.snap +49 -0
- package/src/build/base/__tests__/createArtifactsConfig.test.ts +41 -0
- package/src/build/base/constants.ts +2 -2
- package/src/build/base/createAppBuildJob.ts +70 -0
- package/src/build/base/createArtifactsConfig.ts +34 -0
- package/src/build/base/index.ts +62 -0
- package/src/build/base/writeBuildInfo.ts +7 -0
- package/src/build/base/writeDotEnv.ts +40 -0
- package/src/build/custom/__tests__/testJob.test.ts +29 -0
- package/src/build/custom/buildJob.ts +41 -0
- package/src/build/custom/index.ts +8 -0
- package/src/build/custom/testJob.ts +93 -0
- package/src/build/docker.ts +173 -63
- package/src/build/index.ts +59 -8
- package/src/build/node/buildJob.ts +84 -64
- package/src/build/node/cache.ts +59 -24
- package/src/build/node/constants.ts +2 -3
- package/src/build/node/index.ts +9 -5
- package/src/build/node/meteor.ts +41 -44
- package/src/build/node/testJob.ts +57 -16
- package/src/build/node/yarn.ts +81 -25
- package/src/build/rails/build.ts +69 -0
- package/src/build/rails/index.ts +8 -0
- package/src/build/rails/test.ts +103 -0
- package/src/build/sbom.ts +48 -0
- package/src/build/types.ts +301 -27
- package/src/catladder-gitlab.ts +12 -52
- package/src/config/__tests__/__snapshots__/getAllEnvs.test.ts.snap +31 -0
- package/src/config/__tests__/__snapshots__/getAllEnvsInAllComponents.test.ts.snap +15 -0
- package/src/config/{configruedEnvs.test.ts → __tests__/configruedEnvs.test.ts} +3 -3
- package/src/config/__tests__/getAllEnvs.test.ts +71 -0
- package/src/config/__tests__/getAllEnvsInAllComponents.test.ts +63 -0
- package/src/config/configruedEnvs.ts +8 -13
- package/src/config/readConfig.ts +17 -23
- package/src/constants.ts +5 -2
- package/src/context/{resolveReferences.test.ts → __tests__/resolveReferences.test.ts} +34 -44
- package/src/context/createAllComponentsContext.ts +31 -0
- package/src/context/createComponentContext.ts +135 -0
- package/src/context/createWorkspaceContext.ts +56 -0
- package/src/context/getBuildInfoVariables.ts +36 -0
- package/src/context/getEnvConfig.ts +21 -0
- package/src/context/getEnvType.ts +17 -0
- package/src/context/getEnvironment.ts +26 -0
- package/src/context/getEnvironmentContext.ts +53 -0
- package/src/context/getEnvironmentVariables.ts +210 -0
- package/src/context/getLabels.ts +21 -0
- package/src/context/getReviewSlug.ts +27 -0
- package/src/context/index.ts +3 -232
- package/src/context/resolveReferences.ts +67 -40
- package/src/context/transformJobOnlyVars.ts +45 -0
- package/src/context/utils/envVars.ts +27 -0
- package/src/defaults/index.ts +1 -1
- package/src/deploy/base/deploy.ts +136 -0
- package/src/deploy/base/index.ts +22 -0
- package/src/deploy/base/rollback.ts +38 -0
- package/src/deploy/base/stop.ts +43 -0
- package/src/deploy/base/types.ts +3 -0
- package/src/deploy/base/variables.ts +5 -0
- package/src/deploy/cloudRun/artifactsRegistry.ts +126 -0
- package/src/deploy/cloudRun/cleanup.ts +30 -0
- package/src/deploy/cloudRun/cloudRunRevisions.ts +65 -0
- package/src/deploy/cloudRun/createJobs/cloudRunJobs.ts +198 -0
- package/src/deploy/cloudRun/createJobs/cloudRunServices.ts +86 -0
- package/src/deploy/cloudRun/createJobs/common.ts +59 -0
- package/src/deploy/cloudRun/createJobs/constants.ts +1 -0
- package/src/deploy/cloudRun/createJobs/getCloudRunDeployScripts.ts +79 -0
- package/src/deploy/cloudRun/createJobs/getCloudRunStopScripts.ts +34 -0
- package/src/deploy/cloudRun/createJobs/index.ts +51 -0
- package/src/deploy/cloudRun/createJobs/volumes.ts +23 -0
- package/src/deploy/cloudRun/index.ts +127 -0
- package/src/deploy/cloudRun/utils/createArgsString.ts +34 -0
- package/src/deploy/cloudRun/utils/database.ts +77 -0
- package/src/deploy/cloudRun/utils/gcloudServiceAccountLoginCommands.ts +12 -0
- package/src/deploy/cloudRun/utils/getServiceName.ts +3 -0
- package/src/deploy/cloudRun/utils/jobName.ts +7 -0
- package/src/deploy/cloudRun/utils/removeFirstLinesFromCommandOutput.ts +12 -0
- package/src/deploy/cloudSql/utils.ts +26 -0
- package/src/deploy/custom/deployJob.ts +41 -16
- package/src/deploy/custom/index.ts +9 -1
- package/src/deploy/dockerTag/deployJob.ts +29 -0
- package/src/deploy/dockerTag/index.ts +10 -0
- package/src/deploy/index.ts +32 -17
- package/src/deploy/kubernetes/additionalSecretKeys.ts +25 -0
- package/src/deploy/kubernetes/cloudSql/index.ts +76 -0
- package/src/deploy/kubernetes/deployJob.ts +61 -115
- package/src/deploy/kubernetes/index.ts +50 -1
- package/src/deploy/kubernetes/kubeEnv.ts +50 -0
- package/src/deploy/kubernetes/kubeValues.ts +100 -0
- package/src/deploy/kubernetes/mongodb.ts +106 -8
- package/src/deploy/kubernetes/processSecretsAsFiles.ts +6 -5
- package/src/deploy/sbom.ts +32 -0
- package/src/deploy/types/base.ts +43 -0
- package/src/deploy/types/custom.ts +36 -0
- package/src/deploy/types/dockerTag.ts +14 -0
- package/src/deploy/types/googleCloudRun.ts +282 -0
- package/src/deploy/types/index.ts +28 -0
- package/src/deploy/types/kubernetes.ts +390 -0
- package/src/deploy/utils.ts +10 -6
- package/src/index.ts +2 -1
- package/src/packageInfos.ts +14 -0
- package/src/pipeline/__tests__/__snapshots__/getPipelineStages.test.ts.snap +69 -0
- package/src/pipeline/__tests__/getPipelineStages.test.ts +63 -0
- package/src/pipeline/createAllJobs.ts +72 -0
- package/src/pipeline/createChildPipeline.ts +24 -43
- package/src/pipeline/createJobsForComponent.ts +35 -0
- package/src/pipeline/createJobsForWorkspace.ts +12 -0
- package/src/pipeline/createMainPipeline.ts +111 -0
- package/src/pipeline/generatePipelineFiles.ts +76 -0
- package/src/pipeline/getPipelineStages.ts +23 -0
- package/src/pipeline/gitlab/createGitlabJobs.ts +445 -0
- package/src/pipeline/gitlab/createGitlabPipeline.ts +28 -0
- package/src/pipeline/gitlab/getPipelineTriggerForGitlabChildPipeline.ts +46 -0
- package/src/pipeline/gitlab/gitlabReleaseJobs.ts +25 -0
- package/src/pipeline/gitlab/sortGitLabJobDefProps.ts +59 -0
- package/src/pipeline/index.ts +3 -1
- package/src/pipeline/packageManager.ts +47 -64
- package/src/pipeline/yarn/yarnUtils.ts +66 -0
- package/src/rules/index.ts +46 -13
- package/src/runner/index.ts +2 -1
- package/src/types/config.ts +72 -16
- package/src/types/context.ts +194 -25
- package/src/types/environmentContext.ts +38 -0
- package/src/types/gitlab-ci-yml.ts +891 -0
- package/src/types/gitlab-types.ts +52 -57
- package/src/types/jobs.ts +66 -11
- package/src/types/pipeline.ts +5 -1
- package/src/types/utils.ts +7 -0
- package/src/utils/gitlab.ts +33 -0
- package/src/utils/index.ts +3 -3
- package/src/utils/jsonParse.ts +7 -0
- package/src/utils/removeUndefined.ts +4 -0
- package/src/utils/writeFiles.ts +53 -0
- package/tsconfig.json +4 -2
- package/dist/build/base/createBuildJob.d.ts +0 -7
- package/dist/build/base/getBuildInfo.d.ts +0 -2
- package/dist/build/base/getBuildInfo.js +0 -12
- package/dist/context/resolveReferences.test.js +0 -141
- package/dist/deploy/base.d.ts +0 -8
- package/dist/deploy/base.js +0 -107
- 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/createJobs.d.ts +0 -3
- package/dist/pipeline/createJobs.js +0 -383
- package/dist/pipeline/gitlab/makeGitlabJob.d.ts +0 -8
- package/dist/pipeline/gitlab/makeGitlabJob.js +0 -45
- package/src/build/base/createBuildJob.ts +0 -43
- package/src/build/base/getBuildInfo.ts +0 -7
- package/src/build/tests/storybook.test.ts +0 -54
- package/src/deploy/base.ts +0 -120
- 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
- /package/dist/build/{tests/storybook.test.d.ts → base/__tests__/createArtifactsConfig.test.d.ts} +0 -0
- /package/dist/{config/configruedEnvs.test.d.ts → build/custom/__tests__/testJob.test.d.ts} +0 -0
- /package/dist/{context/resolveReferences.test.d.ts → config/__tests__/configruedEnvs.test.d.ts} +0 -0
- /package/dist/{pipeline/createChildPipeline.test.d.ts → config/__tests__/getAllEnvs.test.d.ts} +0 -0
|
@@ -1,56 +1,28 @@
|
|
|
1
|
-
import { exec } from "child-process-promise";
|
|
2
|
-
import { Config, PackageManagerInfo } from "../types";
|
|
3
|
-
import { pathEqual } from "path-equal";
|
|
4
|
-
import memoizee from "memoizee";
|
|
5
|
-
import { join } from "path";
|
|
6
1
|
import { existsSync } from "fs";
|
|
2
|
+
import { join } from "path";
|
|
3
|
+
import { pathEqual } from "path-equal";
|
|
4
|
+
import type {
|
|
5
|
+
Config,
|
|
6
|
+
PackageManagerInfoBase,
|
|
7
|
+
PackageManagerInfoComponent,
|
|
8
|
+
} from "../types";
|
|
9
|
+
import {
|
|
10
|
+
getWorkspaces,
|
|
11
|
+
getYarnVersion,
|
|
12
|
+
getWorkspaceDependencies,
|
|
13
|
+
} from "./yarn/yarnUtils";
|
|
7
14
|
|
|
8
|
-
const
|
|
9
|
-
try {
|
|
10
|
-
return await exec(cmd).then((r) => r.stdout);
|
|
11
|
-
} catch (e) {
|
|
12
|
-
return onFail ?? null;
|
|
13
|
-
}
|
|
14
|
-
};
|
|
15
|
-
|
|
16
|
-
const getYarnVersion = memoizee(
|
|
17
|
-
async () => {
|
|
18
|
-
return await execOrFail("yarn --version", "");
|
|
19
|
-
},
|
|
20
|
-
{ promise: true }
|
|
21
|
-
);
|
|
22
|
-
|
|
23
|
-
const getWorkspaces = memoizee(
|
|
24
|
-
async (isClassic: boolean): Promise<PackageManagerInfo["workspaces"]> => {
|
|
25
|
-
return isClassic
|
|
26
|
-
? Object.values(
|
|
27
|
-
JSON.parse(
|
|
28
|
-
JSON.parse(await execOrFail("yarn workspaces --json info", "{}"))
|
|
29
|
-
?.data ?? "{}"
|
|
30
|
-
)
|
|
31
|
-
)
|
|
32
|
-
: JSON.parse(
|
|
33
|
-
`[${(await execOrFail("yarn workspaces list --json --verbose", ""))
|
|
34
|
-
.trim()
|
|
35
|
-
.split("\n")
|
|
36
|
-
.join(",")}]`
|
|
37
|
-
);
|
|
38
|
-
},
|
|
39
|
-
{ promise: true }
|
|
40
|
-
);
|
|
41
|
-
export const getPackageManagerInfo = async (
|
|
15
|
+
export const getPackageManagerInfoForComponent = async (
|
|
42
16
|
config: Config,
|
|
43
|
-
componentName: string
|
|
44
|
-
): Promise<
|
|
17
|
+
componentName: string,
|
|
18
|
+
): Promise<PackageManagerInfoComponent> => {
|
|
19
|
+
const baseInfo = await getPackageManagerInfoBase();
|
|
20
|
+
const { workspaces } = baseInfo;
|
|
45
21
|
// currently only supports yarn
|
|
46
|
-
const version = await getYarnVersion();
|
|
47
|
-
if (!version) throw new Error("could not get yarn version");
|
|
48
|
-
const isClassic = version.startsWith("1");
|
|
49
22
|
|
|
50
23
|
const component = config.components[componentName];
|
|
51
|
-
const workspaces = await getWorkspaces(isClassic);
|
|
52
24
|
const currentWorkspace = workspaces.find((w) =>
|
|
53
|
-
pathEqual(component.dir, w.location)
|
|
25
|
+
pathEqual(component.dir, w.location),
|
|
54
26
|
);
|
|
55
27
|
const componentIsInWorkspace = Boolean(currentWorkspace);
|
|
56
28
|
const workspaceRoot = "."; // currently we assume the root folder, later on we might support nested workspaces
|
|
@@ -63,37 +35,48 @@ export const getPackageManagerInfo = async (
|
|
|
63
35
|
? join(workspaceRoot, "yarn.lock")
|
|
64
36
|
: join(component.dir, "yarn.lock");
|
|
65
37
|
const configFiles = [".yarnrc", ".yarnrc.yml", ".npmrc", ".yarn"]; // ".yarn" is yarn 2 folder
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
38
|
+
// copy all those configFiles from workspace root and/or component folder
|
|
39
|
+
|
|
40
|
+
const configFilePaths = [
|
|
41
|
+
...configFiles,
|
|
42
|
+
...configFiles.map((f) => join(component.dir, f)),
|
|
43
|
+
].filter((f) => existsSync(f));
|
|
71
44
|
|
|
72
45
|
// get all folders that this workspace depend on
|
|
73
46
|
// we will later copy them into the docker build
|
|
74
|
-
const
|
|
75
|
-
? (
|
|
76
|
-
...currentWorkspace.workspaceDependencies,
|
|
77
|
-
...currentWorkspace.mismatchedWorkspaceDependencies,
|
|
78
|
-
]
|
|
79
|
-
.map((name) => workspaces.find((w) => w.name === name)?.location)
|
|
80
|
-
.filter(Boolean) as string[])
|
|
47
|
+
const currentWorkspaceDependencies = currentWorkspace
|
|
48
|
+
? getWorkspaceDependencies(currentWorkspace, workspaces)
|
|
81
49
|
: [];
|
|
82
50
|
|
|
83
51
|
const pathsToCopyInDocker = [
|
|
84
52
|
packageJson,
|
|
85
53
|
...(workspacePackageJson ? [workspacePackageJson] : []),
|
|
86
54
|
lockFile,
|
|
87
|
-
...
|
|
88
|
-
...
|
|
55
|
+
...configFilePaths,
|
|
56
|
+
...currentWorkspaceDependencies,
|
|
89
57
|
];
|
|
90
58
|
return {
|
|
91
|
-
|
|
92
|
-
workspaces,
|
|
93
|
-
version,
|
|
94
|
-
isClassic,
|
|
59
|
+
...baseInfo,
|
|
95
60
|
currentWorkspace,
|
|
61
|
+
currentWorkspaceDependencies,
|
|
96
62
|
componentIsInWorkspace,
|
|
97
63
|
pathsToCopyInDocker,
|
|
98
64
|
};
|
|
99
65
|
};
|
|
66
|
+
// TODO: memoizee
|
|
67
|
+
export const getPackageManagerInfoBase =
|
|
68
|
+
async (): Promise<PackageManagerInfoBase> => {
|
|
69
|
+
// currently only supports yarn
|
|
70
|
+
const version = await getYarnVersion();
|
|
71
|
+
if (!version) throw new Error("could not get yarn version");
|
|
72
|
+
const isClassic = version.startsWith("1");
|
|
73
|
+
|
|
74
|
+
const workspaces = await getWorkspaces(isClassic);
|
|
75
|
+
|
|
76
|
+
return {
|
|
77
|
+
type: "yarn",
|
|
78
|
+
workspaces,
|
|
79
|
+
version,
|
|
80
|
+
isClassic,
|
|
81
|
+
};
|
|
82
|
+
};
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { exec } from "child-process-promise";
|
|
2
|
+
import memoizee from "memoizee";
|
|
3
|
+
import type { YarnWorkspace } from "../../types";
|
|
4
|
+
import { jsonParseOrThrow } from "../../utils/jsonParse";
|
|
5
|
+
|
|
6
|
+
const execOrFail = async (cmd: string, onFail: string): Promise<string> => {
|
|
7
|
+
try {
|
|
8
|
+
return await exec(cmd).then((r) => r.stdout);
|
|
9
|
+
} catch (e) {
|
|
10
|
+
return onFail ?? null;
|
|
11
|
+
}
|
|
12
|
+
};
|
|
13
|
+
// export for mocking
|
|
14
|
+
export const getYarnVersion = memoizee(
|
|
15
|
+
async () => {
|
|
16
|
+
return await execOrFail("yarn --version", "");
|
|
17
|
+
},
|
|
18
|
+
{ promise: true },
|
|
19
|
+
);
|
|
20
|
+
|
|
21
|
+
// export for mocking
|
|
22
|
+
export const getWorkspaces = memoizee(
|
|
23
|
+
async (isClassic: boolean): Promise<Array<YarnWorkspace>> => {
|
|
24
|
+
return isClassic
|
|
25
|
+
? Object.values(
|
|
26
|
+
jsonParseOrThrow(
|
|
27
|
+
jsonParseOrThrow(
|
|
28
|
+
await execOrFail("yarn workspaces --json info", "{}"),
|
|
29
|
+
)?.data ?? "{}",
|
|
30
|
+
),
|
|
31
|
+
)
|
|
32
|
+
: jsonParseOrThrow(
|
|
33
|
+
`[${(await execOrFail("yarn workspaces list --json --verbose", ""))
|
|
34
|
+
.trim()
|
|
35
|
+
.split("\n")
|
|
36
|
+
.join(",")}]`,
|
|
37
|
+
);
|
|
38
|
+
},
|
|
39
|
+
{ promise: true },
|
|
40
|
+
);
|
|
41
|
+
|
|
42
|
+
// recursivly get all workspace dependencies
|
|
43
|
+
export const getWorkspaceDependencies = (
|
|
44
|
+
ws: YarnWorkspace,
|
|
45
|
+
allWorkspaces: YarnWorkspace[],
|
|
46
|
+
): string[] => {
|
|
47
|
+
return ws
|
|
48
|
+
? ([...ws.workspaceDependencies, ...ws.mismatchedWorkspaceDependencies]
|
|
49
|
+
.flatMap((location) => {
|
|
50
|
+
// we have to do this recursivly
|
|
51
|
+
|
|
52
|
+
const otherWorkspace = allWorkspaces.find(
|
|
53
|
+
(w) => w.location === location,
|
|
54
|
+
);
|
|
55
|
+
|
|
56
|
+
if (otherWorkspace) {
|
|
57
|
+
return [
|
|
58
|
+
...getWorkspaceDependencies(otherWorkspace, allWorkspaces),
|
|
59
|
+
otherWorkspace.location,
|
|
60
|
+
];
|
|
61
|
+
}
|
|
62
|
+
return [];
|
|
63
|
+
})
|
|
64
|
+
.filter(Boolean) as string[])
|
|
65
|
+
: [];
|
|
66
|
+
};
|
package/src/rules/index.ts
CHANGED
|
@@ -1,37 +1,70 @@
|
|
|
1
|
-
import { GitlabRule } from "../types";
|
|
1
|
+
import type { GitlabRule } from "../types";
|
|
2
|
+
export const RULE_CONDITION_MAIN_BRANCH =
|
|
3
|
+
"$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH";
|
|
2
4
|
|
|
3
|
-
const
|
|
5
|
+
export const RULE_IS_MAIN_BRANCH: GitlabRule = {
|
|
6
|
+
if: RULE_CONDITION_MAIN_BRANCH,
|
|
7
|
+
};
|
|
8
|
+
export const RULE_NEVER_ON_RELEASE_COMMIT: GitlabRule = {
|
|
4
9
|
if: "$CI_COMMIT_MESSAGE =~ /^chore\\(release\\).*/",
|
|
5
10
|
when: "never",
|
|
6
11
|
};
|
|
12
|
+
|
|
13
|
+
export const RULE_NEVER_ON_SCHEDULE: GitlabRule = {
|
|
14
|
+
if: '$CI_PIPELINE_SOURCE == "schedule"',
|
|
15
|
+
when: "never",
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
export const RULE_IS_MERGE_REQUEST: GitlabRule = {
|
|
19
|
+
if: "$CI_MERGE_REQUEST_ID",
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
export const RULE_IS_TAGGED_RELEASE: GitlabRule = {
|
|
23
|
+
if: "$CI_COMMIT_TAG",
|
|
24
|
+
};
|
|
25
|
+
|
|
7
26
|
export const RULES_ALWAYS: GitlabRule[] = [
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
NEVER_ON_RELEASE_COMMIT,
|
|
27
|
+
RULE_IS_TAGGED_RELEASE,
|
|
28
|
+
RULE_NEVER_ON_RELEASE_COMMIT,
|
|
29
|
+
RULE_NEVER_ON_SCHEDULE,
|
|
12
30
|
{
|
|
13
31
|
if: "$CI_COMMIT_BRANCH =~ /^[0-9]+.([0-9]+|x).x$/",
|
|
14
32
|
},
|
|
15
33
|
{
|
|
16
34
|
if: "$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH",
|
|
17
35
|
},
|
|
18
|
-
|
|
19
|
-
if: "$CI_MERGE_REQUEST_ID",
|
|
20
|
-
},
|
|
36
|
+
RULE_IS_MERGE_REQUEST,
|
|
21
37
|
];
|
|
22
38
|
|
|
39
|
+
export const RULE_CONDITION_HOTFIX_BRANCH =
|
|
40
|
+
"$CI_COMMIT_BRANCH =~ /^[0-9]+.([0-9]+|x).x$/";
|
|
41
|
+
|
|
23
42
|
export const RULES_RELEASE: GitlabRule[] = [
|
|
24
|
-
|
|
43
|
+
RULE_NEVER_ON_RELEASE_COMMIT,
|
|
44
|
+
RULE_NEVER_ON_SCHEDULE,
|
|
25
45
|
{
|
|
26
|
-
if:
|
|
46
|
+
if: RULE_CONDITION_MAIN_BRANCH + ' && $AUTO_RELEASE == "true"',
|
|
27
47
|
when: "on_success",
|
|
28
48
|
},
|
|
29
49
|
{
|
|
30
|
-
if:
|
|
50
|
+
if: RULE_CONDITION_MAIN_BRANCH,
|
|
51
|
+
when: "manual",
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
if: RULE_CONDITION_HOTFIX_BRANCH,
|
|
55
|
+
when: "manual",
|
|
56
|
+
},
|
|
57
|
+
];
|
|
58
|
+
|
|
59
|
+
export const RULES_MANUAL_RELEASE: GitlabRule[] = [
|
|
60
|
+
RULE_NEVER_ON_RELEASE_COMMIT,
|
|
61
|
+
RULE_NEVER_ON_SCHEDULE,
|
|
62
|
+
{
|
|
63
|
+
if: RULE_CONDITION_MAIN_BRANCH,
|
|
31
64
|
when: "manual",
|
|
32
65
|
},
|
|
33
66
|
{
|
|
34
|
-
if:
|
|
67
|
+
if: RULE_CONDITION_HOTFIX_BRANCH,
|
|
35
68
|
when: "manual",
|
|
36
69
|
},
|
|
37
70
|
];
|
package/src/runner/index.ts
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import { PIPELINE_IMAGE_TAG, DOCKER_REGISTRY } from "../constants";
|
|
2
2
|
|
|
3
|
-
type RunnerImageName =
|
|
3
|
+
export type RunnerImageName =
|
|
4
4
|
| "jobs-default"
|
|
5
5
|
| "jobs-meteor"
|
|
6
6
|
| "jobs-testing-chrome"
|
|
7
7
|
| "kubernetes"
|
|
8
8
|
| "base-pipeline"
|
|
9
9
|
| "docker-build"
|
|
10
|
+
| "gcloud"
|
|
10
11
|
| "semantic-release";
|
|
11
12
|
export const getRunnerImage = (imageName: RunnerImageName) =>
|
|
12
13
|
DOCKER_REGISTRY + "/" + imageName + ":" + PIPELINE_IMAGE_TAG;
|
package/src/types/config.ts
CHANGED
|
@@ -1,9 +1,17 @@
|
|
|
1
|
-
import { BuildConfig } from "../build/types";
|
|
2
|
-
import { DeployConfig } from "../deploy/types";
|
|
3
|
-
|
|
4
|
-
import { CatladderJob } from "./jobs";
|
|
5
|
-
import {
|
|
6
|
-
|
|
1
|
+
import type { BuildConfig } from "../build/types";
|
|
2
|
+
import type { DeployConfig } from "../deploy/types";
|
|
3
|
+
|
|
4
|
+
import type { CatladderJob } from "./jobs";
|
|
5
|
+
import type { ComponentContext } from "./context";
|
|
6
|
+
import type { PartialDeep } from "./utils";
|
|
7
|
+
import type { PipelineType, WorkspaceBuildConfig } from "..";
|
|
8
|
+
|
|
9
|
+
export const ALL_PIPELINE_TRIGGERS = [
|
|
10
|
+
"mainBranch",
|
|
11
|
+
"mr",
|
|
12
|
+
"taggedRelease",
|
|
13
|
+
] as const;
|
|
14
|
+
export type PipelineTrigger = (typeof ALL_PIPELINE_TRIGGERS)[number];
|
|
7
15
|
|
|
8
16
|
/**
|
|
9
17
|
* all env types with their trigger.
|
|
@@ -11,7 +19,7 @@ export type PipelineTrigger = "mainBranch" | "mr" | "taggedRelease";
|
|
|
11
19
|
*/
|
|
12
20
|
export const ENV_TYPES = {
|
|
13
21
|
dev: {
|
|
14
|
-
triggers: ["mainBranch"
|
|
22
|
+
triggers: ["mainBranch"],
|
|
15
23
|
},
|
|
16
24
|
review: {
|
|
17
25
|
triggers: ["mr"],
|
|
@@ -35,7 +43,7 @@ export const ENV_TYPES = {
|
|
|
35
43
|
export const getEnvTypesByTrigger = (trigger: PipelineTrigger) =>
|
|
36
44
|
Object.entries(ENV_TYPES)
|
|
37
45
|
.filter(([, e]) =>
|
|
38
|
-
(e.triggers as readonly PipelineTrigger[]).includes(trigger)
|
|
46
|
+
(e.triggers as readonly PipelineTrigger[]).includes(trigger),
|
|
39
47
|
)
|
|
40
48
|
.map(([e]) => e as EnvType);
|
|
41
49
|
|
|
@@ -59,6 +67,7 @@ export type EnvVars = {
|
|
|
59
67
|
* You can reuse vars from other components in the same project using ${componentName:variableName}
|
|
60
68
|
* EXAMPLE: A_VAR: "the other var is ${api:OTHER_VAR}"
|
|
61
69
|
*/
|
|
70
|
+
|
|
62
71
|
public?: Record<string, any>;
|
|
63
72
|
/**
|
|
64
73
|
* secret env vars. These vars can be managed with catladder/cli
|
|
@@ -104,7 +113,12 @@ export type EnvConfig<E extends EnvType = EnvType> = {
|
|
|
104
113
|
host?: string;
|
|
105
114
|
} & PartialDeep<DefaultEnvConfig>;
|
|
106
115
|
|
|
107
|
-
export type
|
|
116
|
+
export type EnvConfigWithComponent = EnvConfig<EnvType> & ComponentConfig;
|
|
117
|
+
|
|
118
|
+
export type CustomEnv = EnvConfig & {
|
|
119
|
+
type: EnvType;
|
|
120
|
+
};
|
|
121
|
+
export type Env<C extends ConfigProps = never> = {
|
|
108
122
|
/**
|
|
109
123
|
* local is a special env that is only used in local development
|
|
110
124
|
*/
|
|
@@ -114,13 +128,16 @@ export type Env = {
|
|
|
114
128
|
stage?: EnvConfig<"stage"> | false;
|
|
115
129
|
review?: EnvConfig<"review"> | false;
|
|
116
130
|
prod?: EnvConfig<"prod"> | false;
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
131
|
+
// unfortunatly, typescript does not properly support objects with a mix of known and unknown properties.
|
|
132
|
+
// for backwards compatiblity we allow unknown props, but we cannot type it (typescript problem)
|
|
133
|
+
// however, we now support providing custom envs through a generic parameter of `Config`
|
|
134
|
+
} & Record<C["CustomEnvs"], CustomEnv> &
|
|
135
|
+
Record<string, any>;
|
|
136
|
+
export type ComponentConfig<C extends ConfigProps = never> = {
|
|
120
137
|
/**
|
|
121
138
|
* specify environment configurations
|
|
122
139
|
*/
|
|
123
|
-
env?: Env
|
|
140
|
+
env?: Env<C>;
|
|
124
141
|
/**
|
|
125
142
|
* the directory of the component (e.g. where the package.json or similar is located). You can set "." if you only have one app.
|
|
126
143
|
*/
|
|
@@ -134,10 +151,41 @@ export type ComponentConfig = {
|
|
|
134
151
|
* to let us know about why you need to use custom jobs.
|
|
135
152
|
* This feedback will help us to generalize use cases
|
|
136
153
|
*/
|
|
137
|
-
customJobs?:
|
|
154
|
+
customJobs?:
|
|
155
|
+
| CatladderJob[]
|
|
156
|
+
| ((context: Omit<ComponentContext, "customJobs">) => CatladderJob[]);
|
|
157
|
+
|
|
158
|
+
/**
|
|
159
|
+
* whether to create a .env
|
|
160
|
+
*
|
|
161
|
+
* Be careful, this will overwrite any existing .env file!
|
|
162
|
+
*
|
|
163
|
+
* if set to true it will create .env locally and during build.
|
|
164
|
+
* Be careful: the .env file usually ends up in the build artifacts.
|
|
165
|
+
* Use this for apps and clients where env does not contain any secrets
|
|
166
|
+
*
|
|
167
|
+
*
|
|
168
|
+
* if set to "local" it will only create .env file locally.
|
|
169
|
+
* Use this in combination with @dotenvx/dotenvx or node 20 to start apps locally with .env files
|
|
170
|
+
* During build and runtime, it relies on the env vars set in the environment
|
|
171
|
+
*
|
|
172
|
+
*/
|
|
173
|
+
dotEnv?: boolean | "local";
|
|
174
|
+
/**
|
|
175
|
+
* whether to create a env.d.ts localy and during build jobs
|
|
176
|
+
*
|
|
177
|
+
* Be careful, this will overwrite any existing env.d.ts file!
|
|
178
|
+
*/
|
|
179
|
+
envDTs?: boolean;
|
|
138
180
|
} & DefaultEnvConfig;
|
|
139
181
|
|
|
140
|
-
export type
|
|
182
|
+
export type ConfigProps = {
|
|
183
|
+
CustomEnvs: string;
|
|
184
|
+
};
|
|
185
|
+
|
|
186
|
+
export type Config<C extends ConfigProps = never> = {
|
|
187
|
+
pipelineType?: PipelineType;
|
|
188
|
+
|
|
141
189
|
/**
|
|
142
190
|
* name of the customer or group
|
|
143
191
|
*/
|
|
@@ -152,10 +200,13 @@ export type Config = {
|
|
|
152
200
|
*
|
|
153
201
|
*/
|
|
154
202
|
domainCanonical?: string;
|
|
203
|
+
|
|
204
|
+
// shared workspace Builds
|
|
205
|
+
builds?: Record<string, WorkspaceBuildConfig>;
|
|
155
206
|
/**
|
|
156
207
|
* components (sub apps)
|
|
157
208
|
*/
|
|
158
|
-
components: Record<string, ComponentConfig
|
|
209
|
+
components: Record<string, ComponentConfig<C>>;
|
|
159
210
|
|
|
160
211
|
/**
|
|
161
212
|
* additional meta data (only for organisational purposes)
|
|
@@ -163,4 +214,9 @@ export type Config = {
|
|
|
163
214
|
meta?: {
|
|
164
215
|
labels?: Record<string, string>;
|
|
165
216
|
};
|
|
217
|
+
|
|
218
|
+
/**
|
|
219
|
+
* additional vars only for the runner in all jobs.
|
|
220
|
+
*/
|
|
221
|
+
runnerVariables?: Record<string, string>;
|
|
166
222
|
};
|