@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
package/src/build/types.ts
CHANGED
|
@@ -1,87 +1,361 @@
|
|
|
1
|
+
import type { Artifacts, EnvVars, GitlabJobImage } from "../types";
|
|
2
|
+
import type { Services } from "../types/gitlab-ci-yml";
|
|
3
|
+
|
|
4
|
+
import type { CatladderJob } from "../types/jobs";
|
|
5
|
+
|
|
6
|
+
export type BuildConfigArtifactsReports = {
|
|
7
|
+
/**
|
|
8
|
+
* The junit report collects JUnit report format XML files.
|
|
9
|
+
* The collected Unit test reports upload to GitLab as an artifact.
|
|
10
|
+
* Paths are prefixed with component's root folder.
|
|
11
|
+
* eg. `["dist/test-results/TEST-*.xml", "dist/rspec.xml", ...]`
|
|
12
|
+
*/
|
|
13
|
+
junit?: string[];
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
export type TestJobCustom = {
|
|
17
|
+
command?: string | string[];
|
|
18
|
+
jobImage?: GitlabJobImage;
|
|
19
|
+
/**
|
|
20
|
+
* additional CI/CD artifacts reports,
|
|
21
|
+
* use to display information in merge requests, pipeline views and security dashboards.
|
|
22
|
+
*/
|
|
23
|
+
artifactsReports?: BuildConfigArtifactsReports;
|
|
24
|
+
/**
|
|
25
|
+
* GitLab {@link Artifacts} configuration.
|
|
26
|
+
*
|
|
27
|
+
* {@link TestJobCustom.artifacts}.reports.junit is merged with {@link TestJobCustom.artifactsReports} in case both given.
|
|
28
|
+
*/
|
|
29
|
+
artifacts?: Artifacts;
|
|
30
|
+
};
|
|
31
|
+
|
|
1
32
|
export type BuildConfigBase = {
|
|
2
33
|
/**
|
|
3
34
|
* command to run on the image to start the app (e.g. yarn start)
|
|
4
35
|
*/
|
|
5
36
|
startCommand?: string;
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* vars that only exist in the build jobs.
|
|
40
|
+
* Can curently not reference other variables from other components
|
|
41
|
+
*/
|
|
42
|
+
jobVars?: EnvVars;
|
|
6
43
|
/**
|
|
7
44
|
* additional env vars for the buid jobs
|
|
45
|
+
*
|
|
46
|
+
* @deprecated use jobVars or runnerVariables
|
|
8
47
|
*/
|
|
9
48
|
extraVars?: Record<string, string>;
|
|
49
|
+
|
|
10
50
|
/**
|
|
11
|
-
*
|
|
51
|
+
* additional vars only for the runner.
|
|
52
|
+
* Also if you use services: that require env vars, you need to set them here.
|
|
53
|
+
*
|
|
12
54
|
*/
|
|
13
|
-
|
|
14
|
-
|
|
55
|
+
runnerVariables?: Record<string, string>;
|
|
15
56
|
/**
|
|
16
|
-
*
|
|
57
|
+
* define the build command
|
|
17
58
|
*/
|
|
18
|
-
|
|
19
|
-
additionsBegin?: string[];
|
|
20
|
-
additionsEnd?: string[];
|
|
21
|
-
};
|
|
59
|
+
buildCommand?: string | string[] | null;
|
|
22
60
|
|
|
23
61
|
/**
|
|
24
62
|
* customize lint, set false to disable
|
|
25
63
|
*/
|
|
26
|
-
lint?:
|
|
27
|
-
| false
|
|
28
|
-
| {
|
|
29
|
-
command?: string | string[];
|
|
30
|
-
};
|
|
64
|
+
lint?: false | TestJobCustom;
|
|
31
65
|
|
|
32
66
|
/**
|
|
33
67
|
* customize test, set false to disable
|
|
34
68
|
*/
|
|
35
|
-
test?:
|
|
36
|
-
| false
|
|
37
|
-
| {
|
|
38
|
-
command?: string | string[];
|
|
39
|
-
};
|
|
69
|
+
test?: false | TestJobCustom;
|
|
40
70
|
|
|
41
71
|
/**
|
|
42
72
|
* customize audit, set false to disable
|
|
43
73
|
*/
|
|
44
|
-
audit?:
|
|
45
|
-
| false
|
|
46
|
-
| {
|
|
47
|
-
command?: string | string[];
|
|
48
|
-
};
|
|
74
|
+
audit?: false | TestJobCustom;
|
|
49
75
|
|
|
50
76
|
/**
|
|
51
77
|
* additional paths for artifacts,
|
|
52
78
|
* by default "dist" and ".next" are allways included
|
|
53
79
|
*/
|
|
54
80
|
artifactsPaths?: string[];
|
|
81
|
+
|
|
82
|
+
/**
|
|
83
|
+
* additional CI/CD artifacts reports,
|
|
84
|
+
* use to display information in merge requests, pipeline views and security dashboards.
|
|
85
|
+
*/
|
|
86
|
+
artifactsReports?: BuildConfigArtifactsReports;
|
|
87
|
+
|
|
88
|
+
/**
|
|
89
|
+
* customize cache for the job
|
|
90
|
+
*/
|
|
91
|
+
jobCache?: CatladderJob["cache"];
|
|
92
|
+
|
|
93
|
+
/**
|
|
94
|
+
* tags for the underlying job runner (e.g gitlab)
|
|
95
|
+
*/
|
|
96
|
+
jobTags?: string[];
|
|
97
|
+
/**
|
|
98
|
+
* custom image to use
|
|
99
|
+
*/
|
|
100
|
+
jobImage?: GitlabJobImage;
|
|
55
101
|
};
|
|
56
102
|
|
|
57
|
-
export type BuildConfigNodeBase = BuildConfigBase
|
|
103
|
+
export type BuildConfigNodeBase = BuildConfigBase & {
|
|
104
|
+
/**
|
|
105
|
+
* runs a command after yarn install. postinstall in package.json won't work for yarn plug and play.
|
|
106
|
+
* the command will be invoked in the component dir.
|
|
107
|
+
*/
|
|
108
|
+
postInstall?: string | string[];
|
|
109
|
+
};
|
|
58
110
|
|
|
59
111
|
export type BuildConfigNode = {
|
|
60
112
|
type: "node";
|
|
113
|
+
docker?: Omit<BuildConfigDockerBuiltInNode, "type"> | BuildConfigDocker;
|
|
61
114
|
} & BuildConfigNodeBase;
|
|
62
115
|
|
|
63
116
|
export type BuildConfigNodeStatic = BuildConfigNodeBase & {
|
|
117
|
+
/**
|
|
118
|
+
* @deprecated use type: "node" and docker: { type: "nginx" } instead
|
|
119
|
+
*/
|
|
64
120
|
type: "node-static";
|
|
65
121
|
startCommand?: never;
|
|
122
|
+
docker?: Omit<BuildConfigDockerBuiltInNgninx, "type"> | BuildConfigDocker;
|
|
66
123
|
};
|
|
67
124
|
|
|
68
125
|
export type BuildConfigMeteor = BuildConfigNodeBase & {
|
|
69
126
|
type: "meteor";
|
|
127
|
+
/**
|
|
128
|
+
* whether to run yarn install inside the source folder in the docker image.
|
|
129
|
+
* This is only required if you have custom scripts in your image
|
|
130
|
+
*/
|
|
131
|
+
installScripts?: boolean;
|
|
132
|
+
docker?: Omit<BuildConfigDockerBuiltInMeteor, "type"> | BuildConfigDocker;
|
|
133
|
+
};
|
|
134
|
+
|
|
135
|
+
export type BuildConfigNodeLike =
|
|
136
|
+
| BuildConfigNode
|
|
137
|
+
| BuildConfigNodeStatic
|
|
138
|
+
| BuildConfigStorybook
|
|
139
|
+
| BuildConfigMeteor;
|
|
140
|
+
|
|
141
|
+
type BuildConfigDockerWithAdditions = {
|
|
142
|
+
/**
|
|
143
|
+
* Custom Dockerfile lines integrated in the generated Dockerfile before the standard build steps.
|
|
144
|
+
*
|
|
145
|
+
*/
|
|
146
|
+
additionsBegin?: string[];
|
|
147
|
+
/**
|
|
148
|
+
* Custom Dockerfile lines integrated in the generated Dockerfile after the standard build steps.
|
|
149
|
+
*
|
|
150
|
+
*/
|
|
151
|
+
additionsEnd?: string[];
|
|
152
|
+
};
|
|
153
|
+
|
|
154
|
+
type BuildConfigDockerBuiltInNode = {
|
|
155
|
+
type: "node";
|
|
156
|
+
} & BuildConfigDockerWithAdditions;
|
|
157
|
+
|
|
158
|
+
type BuildConfigDockerBuiltInMeteor = {
|
|
159
|
+
type: "meteor";
|
|
160
|
+
} & BuildConfigDockerWithAdditions;
|
|
161
|
+
|
|
162
|
+
type BuildConfigDockerBuiltInNgninx = {
|
|
163
|
+
/**
|
|
164
|
+
* use the built-in nginx image for simple static apps
|
|
165
|
+
*/
|
|
166
|
+
type: "nginx";
|
|
167
|
+
} & BuildConfigDockerWithAdditions;
|
|
168
|
+
type BuildConfigDockerBuiltIn =
|
|
169
|
+
| BuildConfigDockerBuiltInNgninx
|
|
170
|
+
| BuildConfigDockerBuiltInNode
|
|
171
|
+
| BuildConfigDockerBuiltInMeteor;
|
|
172
|
+
|
|
173
|
+
type BuildConfigDockerCustom = {
|
|
174
|
+
/**
|
|
175
|
+
* custom docker build, expect that a Dockerfile in your directory
|
|
176
|
+
*/
|
|
177
|
+
type: "custom";
|
|
178
|
+
|
|
179
|
+
/**
|
|
180
|
+
* where to run the docker build, defaults to the root of the repo.
|
|
181
|
+
*
|
|
182
|
+
* Depending on your Dockerfile you may want to change it to "component"
|
|
183
|
+
*/
|
|
184
|
+
buildContextLocation?: "root" | "component";
|
|
185
|
+
};
|
|
186
|
+
|
|
187
|
+
export type BuildConfigDocker =
|
|
188
|
+
| BuildConfigDockerBuiltIn
|
|
189
|
+
| BuildConfigDockerCustom;
|
|
190
|
+
|
|
191
|
+
/**
|
|
192
|
+
* @deprecated this type is no longer used. Use {@link BuildConfigDocker} instead.
|
|
193
|
+
*/
|
|
194
|
+
export type BuildConfigCustomDocker =
|
|
195
|
+
| BuildConfigDockerCustom
|
|
196
|
+
| BuildConfigDockerBuiltInNgninx;
|
|
197
|
+
|
|
198
|
+
export type BuildConfigCustom = Omit<
|
|
199
|
+
BuildConfigBase,
|
|
200
|
+
"lint" | "test" | "audit"
|
|
201
|
+
> & {
|
|
202
|
+
type: "custom";
|
|
203
|
+
jobImage: GitlabJobImage;
|
|
204
|
+
/**
|
|
205
|
+
* {@link Services}s used in lint, test, audit, and build jobs.
|
|
206
|
+
*/
|
|
207
|
+
jobServices?: Services;
|
|
208
|
+
|
|
209
|
+
docker: BuildConfigDocker;
|
|
210
|
+
|
|
211
|
+
/**
|
|
212
|
+
* custom lint, disabled when not set
|
|
213
|
+
*/
|
|
214
|
+
lint?: TestJobCustom;
|
|
215
|
+
|
|
216
|
+
/**
|
|
217
|
+
* custom test, disabled when not set
|
|
218
|
+
*/
|
|
219
|
+
test?: TestJobCustom;
|
|
220
|
+
|
|
221
|
+
/**
|
|
222
|
+
* custom audit, disabled when not set
|
|
223
|
+
*/
|
|
224
|
+
audit?: TestJobCustom;
|
|
225
|
+
|
|
226
|
+
/**
|
|
227
|
+
* custom sbom (software bill of materials), set false to disable
|
|
228
|
+
*/
|
|
229
|
+
sbom?:
|
|
230
|
+
| false
|
|
231
|
+
| {
|
|
232
|
+
/**
|
|
233
|
+
* needs to create a file at `/__sbom.json` in CycloneDX format
|
|
234
|
+
*/
|
|
235
|
+
command: string | string[];
|
|
236
|
+
jobImage: GitlabJobImage;
|
|
237
|
+
};
|
|
238
|
+
};
|
|
239
|
+
|
|
240
|
+
export type BuildConfigRails = BuildConfigBase & {
|
|
241
|
+
type: "rails";
|
|
242
|
+
/**
|
|
243
|
+
* The [Cloud Native Buildpacks](https://buildpacks.io/) builder configuration.
|
|
244
|
+
*
|
|
245
|
+
* Only applies when there is no `Dockerfile`.
|
|
246
|
+
*/
|
|
247
|
+
cnbBuilder?: {
|
|
248
|
+
/**
|
|
249
|
+
* The Cloud Native Buildpacks builder image to use.
|
|
250
|
+
* See e.g. https://github.com/heroku/builder or others.
|
|
251
|
+
* Default: heroku/buildpacks:20
|
|
252
|
+
*/
|
|
253
|
+
image?: string;
|
|
254
|
+
/**
|
|
255
|
+
* The version of the Cloud Native Buildpacks pack command to use.
|
|
256
|
+
* See https://buildpacks.io/docs/tools/pack/
|
|
257
|
+
* Default: 0.28.0
|
|
258
|
+
*/
|
|
259
|
+
packVersion?: string;
|
|
260
|
+
/**
|
|
261
|
+
* Additional command arguments passed to the pack command.
|
|
262
|
+
* See https://buildpacks.io/docs/tools/pack/
|
|
263
|
+
*/
|
|
264
|
+
packExtraArgs?: string[];
|
|
265
|
+
/**
|
|
266
|
+
* Variables needed for Bundler and Rails asset precompilation.
|
|
267
|
+
*
|
|
268
|
+
* Specify a key with the value `undefined` to inherit it from the EnvVars.
|
|
269
|
+
*
|
|
270
|
+
* See https://github.com/rails/rails/issues/32947
|
|
271
|
+
*/
|
|
272
|
+
buildVars?: Record<string, string | undefined>;
|
|
273
|
+
};
|
|
70
274
|
};
|
|
71
275
|
|
|
72
276
|
export type BuildConfigStorybook = BuildConfigNodeBase & {
|
|
277
|
+
/**
|
|
278
|
+
* @deprecated use type: "node" and docker: { type: "nginx" } instead
|
|
279
|
+
*/
|
|
73
280
|
type: "storybook";
|
|
74
281
|
startCommand?: never;
|
|
75
282
|
};
|
|
76
|
-
|
|
283
|
+
|
|
284
|
+
export type BuildConfigFromWorkspace = {
|
|
285
|
+
from: string;
|
|
286
|
+
docker?: BuildConfigDocker;
|
|
287
|
+
startCommand?: string;
|
|
288
|
+
/**
|
|
289
|
+
* additional paths for artifacts,
|
|
290
|
+
* by default "dist" and ".next" are allways included
|
|
291
|
+
*/
|
|
292
|
+
artifactsPaths?: string[];
|
|
293
|
+
};
|
|
294
|
+
export type BuildConfigStandalone =
|
|
77
295
|
| BuildConfigNode
|
|
78
296
|
| BuildConfigNodeStatic
|
|
79
297
|
| BuildConfigStorybook
|
|
80
|
-
| BuildConfigMeteor
|
|
298
|
+
| BuildConfigMeteor
|
|
299
|
+
| BuildConfigCustom
|
|
300
|
+
| BuildConfigRails;
|
|
301
|
+
|
|
302
|
+
export type BuildConfig = BuildConfigFromWorkspace | BuildConfigStandalone;
|
|
81
303
|
|
|
82
|
-
export
|
|
304
|
+
export type BuildConfigStandaloneType = BuildConfigStandalone["type"];
|
|
305
|
+
|
|
306
|
+
export type BuildConfigGeneric<T extends BuildConfigStandaloneType> = Extract<
|
|
307
|
+
BuildConfig,
|
|
308
|
+
{ type: T }
|
|
309
|
+
>;
|
|
310
|
+
|
|
311
|
+
export const isStandaloneBuildConfig = (
|
|
312
|
+
t: BuildConfig | false,
|
|
313
|
+
): t is BuildConfigStandalone => {
|
|
314
|
+
if (!t) return false;
|
|
315
|
+
return !("from" in t);
|
|
316
|
+
};
|
|
317
|
+
|
|
318
|
+
export const isOfBuildType = <T extends Array<BuildConfigStandaloneType>>(
|
|
83
319
|
t: BuildConfig,
|
|
84
320
|
...types: T
|
|
85
321
|
): t is Extract<BuildConfig, { type: T[number] }> => {
|
|
322
|
+
if (!isStandaloneBuildConfig(t)) return false;
|
|
86
323
|
return types.includes(t.type);
|
|
87
324
|
};
|
|
325
|
+
|
|
326
|
+
export type WorkspaceBuildConfigBase = {
|
|
327
|
+
dir?: string;
|
|
328
|
+
/**
|
|
329
|
+
* customize lint, set false to disable
|
|
330
|
+
*/
|
|
331
|
+
lint?: false | TestJobCustom;
|
|
332
|
+
|
|
333
|
+
/**
|
|
334
|
+
* customize test, set false to disable
|
|
335
|
+
*/
|
|
336
|
+
test?: false | TestJobCustom;
|
|
337
|
+
|
|
338
|
+
/**
|
|
339
|
+
* customize audit, set false to disable
|
|
340
|
+
*/
|
|
341
|
+
audit?: false | TestJobCustom;
|
|
342
|
+
/**
|
|
343
|
+
* additional vars only for the runner.
|
|
344
|
+
* Also if you use services: that require env vars, you need to set them here.
|
|
345
|
+
*
|
|
346
|
+
*/
|
|
347
|
+
runnerVariables?: Record<string, string>;
|
|
348
|
+
|
|
349
|
+
/**
|
|
350
|
+
* additional CI/CD artifacts reports,
|
|
351
|
+
* use to display information in merge requests, pipeline views and security dashboards.
|
|
352
|
+
*/
|
|
353
|
+
artifactsReports?: BuildConfigArtifactsReports;
|
|
354
|
+
};
|
|
355
|
+
|
|
356
|
+
export type WorkspaceBuildConfigNode = {
|
|
357
|
+
type: "node";
|
|
358
|
+
buildCommand?: string | string[];
|
|
359
|
+
} & WorkspaceBuildConfigBase;
|
|
360
|
+
|
|
361
|
+
export type WorkspaceBuildConfig = WorkspaceBuildConfigNode;
|
package/src/catladder-gitlab.ts
CHANGED
|
@@ -1,57 +1,17 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import { PIPELINE_IMAGE_TAG } from "./constants";
|
|
5
|
-
import { createChildPipeline } from "./pipeline";
|
|
6
|
-
import { PipelineTrigger } from "./types";
|
|
1
|
+
import { readConfig } from "./config";
|
|
2
|
+
import { generatePipelineFiles } from "./pipeline/generatePipelineFiles";
|
|
3
|
+
import type { PipelineMode } from "./types";
|
|
7
4
|
|
|
8
|
-
const
|
|
9
|
-
CI_MERGE_REQUEST_ID,
|
|
10
|
-
CI_COMMIT_TAG,
|
|
11
|
-
CI_COMMIT_BRANCH,
|
|
12
|
-
CI_DEFAULT_BRANCH,
|
|
13
|
-
} = process.env;
|
|
5
|
+
const mode = process.argv[2] || "local";
|
|
14
6
|
|
|
15
|
-
const
|
|
16
|
-
|
|
17
|
-
const isHotfixBranch = false; // TODO: $CI_COMMIT_BRANCH =~ /^[0-9]+\.([0-9]+|x)\.x$/
|
|
18
|
-
const isMergeRequest = Boolean(CI_MERGE_REQUEST_ID);
|
|
19
|
-
const isTaggedRelease = Boolean(CI_COMMIT_TAG);
|
|
20
|
-
|
|
21
|
-
console.info(`catladder version ${PIPELINE_IMAGE_TAG}`);
|
|
22
|
-
|
|
23
|
-
const trigger: PipelineTrigger | null =
|
|
24
|
-
isMergeRequest || isHotfixBranch
|
|
25
|
-
? "mr"
|
|
26
|
-
: isDefaultBranch
|
|
27
|
-
? "mainBranch"
|
|
28
|
-
: isTaggedRelease
|
|
29
|
-
? "taggedRelease"
|
|
30
|
-
: null;
|
|
31
|
-
if (trigger) {
|
|
32
|
-
const config = readConfigSync()?.config;
|
|
33
|
-
if (!config) {
|
|
7
|
+
const config = readConfig().then(async (result) => {
|
|
8
|
+
if (!result?.config) {
|
|
34
9
|
throw new Error("no catladder config found");
|
|
35
10
|
}
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
});
|
|
42
|
-
}
|
|
43
|
-
);
|
|
44
|
-
} else {
|
|
45
|
-
throw new Error(
|
|
46
|
-
"no matching trigger: " +
|
|
47
|
-
JSON.stringify(
|
|
48
|
-
{
|
|
49
|
-
isMergeRequest,
|
|
50
|
-
isDefaultBranch,
|
|
51
|
-
isTaggedRelease,
|
|
52
|
-
},
|
|
53
|
-
null,
|
|
54
|
-
2
|
|
55
|
-
)
|
|
11
|
+
|
|
12
|
+
await generatePipelineFiles(
|
|
13
|
+
result.config,
|
|
14
|
+
"gitlab",
|
|
15
|
+
mode as PipelineMode<"gitlab">,
|
|
56
16
|
);
|
|
57
|
-
}
|
|
17
|
+
});
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
|
2
|
+
|
|
3
|
+
exports[`getAllEnvs() should return all envs for app1 1`] = `
|
|
4
|
+
[
|
|
5
|
+
"dev",
|
|
6
|
+
"review",
|
|
7
|
+
"stage",
|
|
8
|
+
"prod",
|
|
9
|
+
"local",
|
|
10
|
+
]
|
|
11
|
+
`;
|
|
12
|
+
|
|
13
|
+
exports[`getAllEnvs() should return all envs for app2 1`] = `
|
|
14
|
+
[
|
|
15
|
+
"dev",
|
|
16
|
+
"review",
|
|
17
|
+
"stage",
|
|
18
|
+
"prod",
|
|
19
|
+
"local",
|
|
20
|
+
"dev2",
|
|
21
|
+
"review2",
|
|
22
|
+
"stage2",
|
|
23
|
+
"prod2",
|
|
24
|
+
]
|
|
25
|
+
`;
|
|
26
|
+
|
|
27
|
+
exports[`getAllEnvs() should return all envs for app3 1`] = `
|
|
28
|
+
[
|
|
29
|
+
"local",
|
|
30
|
+
]
|
|
31
|
+
`;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
|
2
|
+
|
|
3
|
+
exports[`getAllEnvsInAllComponents() should return all envs for SIMPLE_CONFIG1 1`] = `
|
|
4
|
+
[
|
|
5
|
+
"dev",
|
|
6
|
+
"review",
|
|
7
|
+
"stage",
|
|
8
|
+
"prod",
|
|
9
|
+
"local",
|
|
10
|
+
"dev2",
|
|
11
|
+
"review2",
|
|
12
|
+
"stage2",
|
|
13
|
+
"prod2",
|
|
14
|
+
]
|
|
15
|
+
`;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { getAllEnvsByTrigger } from "
|
|
2
|
-
import { DeployConfigKubernetesCluster } from "
|
|
3
|
-
import { Config } from "
|
|
1
|
+
import { getAllEnvsByTrigger } from "..";
|
|
2
|
+
import type { DeployConfigKubernetesCluster } from "../..";
|
|
3
|
+
import type { Config } from "../../types";
|
|
4
4
|
|
|
5
5
|
describe("getAllEnvsByTrigger", () => {
|
|
6
6
|
const cluster: DeployConfigKubernetesCluster = {
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { type DeployConfigKubernetesCluster } from "../..";
|
|
2
|
+
import type { Config } from "../../types";
|
|
3
|
+
import { getAllEnvs } from "../configruedEnvs";
|
|
4
|
+
|
|
5
|
+
describe("getAllEnvs()", () => {
|
|
6
|
+
const cluster: DeployConfigKubernetesCluster = {
|
|
7
|
+
type: "gcloud",
|
|
8
|
+
name: "mega-cluster",
|
|
9
|
+
projectId: "super-google-project",
|
|
10
|
+
region: "ch-blabla",
|
|
11
|
+
};
|
|
12
|
+
const SIMPLE_CONFIG: Config = {
|
|
13
|
+
appName: "my-app",
|
|
14
|
+
customerName: "pan",
|
|
15
|
+
components: {
|
|
16
|
+
app1: {
|
|
17
|
+
dir: "dir1",
|
|
18
|
+
build: {
|
|
19
|
+
type: "node",
|
|
20
|
+
},
|
|
21
|
+
deploy: { type: "kubernetes", cluster },
|
|
22
|
+
},
|
|
23
|
+
app2: {
|
|
24
|
+
dir: "dir2",
|
|
25
|
+
build: {
|
|
26
|
+
type: "node",
|
|
27
|
+
},
|
|
28
|
+
deploy: { type: "kubernetes", cluster },
|
|
29
|
+
env: {
|
|
30
|
+
dev2: {
|
|
31
|
+
type: "dev",
|
|
32
|
+
},
|
|
33
|
+
review2: {
|
|
34
|
+
type: "review",
|
|
35
|
+
},
|
|
36
|
+
stage2: {
|
|
37
|
+
type: "stage",
|
|
38
|
+
},
|
|
39
|
+
prod2: {
|
|
40
|
+
type: "prod",
|
|
41
|
+
},
|
|
42
|
+
},
|
|
43
|
+
},
|
|
44
|
+
app3: {
|
|
45
|
+
dir: "dir2",
|
|
46
|
+
build: {
|
|
47
|
+
type: "node",
|
|
48
|
+
},
|
|
49
|
+
deploy: { type: "kubernetes", cluster },
|
|
50
|
+
env: {
|
|
51
|
+
dev: false,
|
|
52
|
+
review: false,
|
|
53
|
+
stage: false,
|
|
54
|
+
prod: false,
|
|
55
|
+
},
|
|
56
|
+
},
|
|
57
|
+
},
|
|
58
|
+
};
|
|
59
|
+
|
|
60
|
+
it("should return all envs for app1", () => {
|
|
61
|
+
expect(getAllEnvs(SIMPLE_CONFIG, "app1")).toMatchSnapshot();
|
|
62
|
+
});
|
|
63
|
+
|
|
64
|
+
it("should return all envs for app2", () => {
|
|
65
|
+
expect(getAllEnvs(SIMPLE_CONFIG, "app2")).toMatchSnapshot();
|
|
66
|
+
});
|
|
67
|
+
|
|
68
|
+
it("should return all envs for app3", () => {
|
|
69
|
+
expect(getAllEnvs(SIMPLE_CONFIG, "app3")).toMatchSnapshot();
|
|
70
|
+
});
|
|
71
|
+
});
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { type DeployConfigKubernetesCluster } from "../..";
|
|
2
|
+
import type { Config } from "../../types";
|
|
3
|
+
import { getAllEnvsInAllComponents } from "../configruedEnvs";
|
|
4
|
+
|
|
5
|
+
describe("getAllEnvsInAllComponents()", () => {
|
|
6
|
+
const cluster: DeployConfigKubernetesCluster = {
|
|
7
|
+
type: "gcloud",
|
|
8
|
+
name: "mega-cluster",
|
|
9
|
+
projectId: "super-google-project",
|
|
10
|
+
region: "ch-blabla",
|
|
11
|
+
};
|
|
12
|
+
const SIMPLE_CONFIG1: Config = {
|
|
13
|
+
appName: "my-app",
|
|
14
|
+
customerName: "pan",
|
|
15
|
+
components: {
|
|
16
|
+
app1: {
|
|
17
|
+
dir: "dir1",
|
|
18
|
+
build: {
|
|
19
|
+
type: "node",
|
|
20
|
+
},
|
|
21
|
+
deploy: { type: "kubernetes", cluster },
|
|
22
|
+
},
|
|
23
|
+
app2: {
|
|
24
|
+
dir: "dir2",
|
|
25
|
+
build: {
|
|
26
|
+
type: "node",
|
|
27
|
+
},
|
|
28
|
+
deploy: { type: "kubernetes", cluster },
|
|
29
|
+
env: {
|
|
30
|
+
dev2: {
|
|
31
|
+
type: "dev",
|
|
32
|
+
},
|
|
33
|
+
review2: {
|
|
34
|
+
type: "review",
|
|
35
|
+
},
|
|
36
|
+
stage2: {
|
|
37
|
+
type: "stage",
|
|
38
|
+
},
|
|
39
|
+
prod2: {
|
|
40
|
+
type: "prod",
|
|
41
|
+
},
|
|
42
|
+
},
|
|
43
|
+
},
|
|
44
|
+
app3: {
|
|
45
|
+
dir: "dir2",
|
|
46
|
+
build: {
|
|
47
|
+
type: "node",
|
|
48
|
+
},
|
|
49
|
+
deploy: { type: "kubernetes", cluster },
|
|
50
|
+
env: {
|
|
51
|
+
dev: false,
|
|
52
|
+
review: false,
|
|
53
|
+
stage: false,
|
|
54
|
+
prod: false,
|
|
55
|
+
},
|
|
56
|
+
},
|
|
57
|
+
},
|
|
58
|
+
};
|
|
59
|
+
|
|
60
|
+
it("should return all envs for SIMPLE_CONFIG1", () => {
|
|
61
|
+
expect(getAllEnvsInAllComponents(SIMPLE_CONFIG1)).toMatchSnapshot();
|
|
62
|
+
});
|
|
63
|
+
});
|