@catladder/pipeline 0.0.0-more-collapse-deeb54d7 → 0.0.0-multiple-gitlab-includes-3df5566d
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/dist/bash/BashExpression.d.ts +36 -0
- package/dist/bash/BashExpression.js +114 -0
- package/dist/bash/bashEscape.d.ts +34 -0
- package/dist/bash/bashEscape.js +114 -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 +69 -0
- package/dist/bash/getInjectVarsScript.d.ts +2 -0
- package/dist/bash/getInjectVarsScript.js +47 -0
- package/dist/bash/index.d.ts +2 -0
- package/dist/bash/index.js +26 -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 +3 -1
- package/dist/build/base/constants.d.ts +0 -1
- package/dist/build/base/constants.js +4 -3
- package/dist/build/base/createAppBuildJob.d.ts +5 -3
- package/dist/build/base/createAppBuildJob.js +18 -15
- package/dist/build/base/createArtifactsConfig.d.ts +1 -1
- package/dist/build/base/createArtifactsConfig.js +3 -1
- package/dist/build/base/createBuildJobDefinition.d.ts +6 -0
- package/dist/build/base/createBuildJobDefinition.js +58 -0
- package/dist/build/base/index.d.ts +7 -4
- package/dist/build/base/index.js +17 -6
- package/dist/build/base/writeBuildInfo.d.ts +2 -2
- package/dist/build/base/writeBuildInfo.js +4 -3
- package/dist/build/base/writeDotEnv.d.ts +3 -2
- package/dist/build/base/writeDotEnv.js +30 -6
- package/dist/build/cache/createJobCache.d.ts +7 -0
- package/dist/build/cache/createJobCache.js +115 -0
- package/dist/build/cache/getAllCacheConfigsFromConfig.d.ts +3 -0
- package/dist/build/cache/getAllCacheConfigsFromConfig.js +64 -0
- package/dist/build/cache/transformLegacyJobCache.d.ts +3 -0
- package/dist/build/cache/transformLegacyJobCache.js +29 -0
- package/dist/build/custom/__tests__/testJob.test.js +15 -16
- package/dist/build/custom/buildJob.d.ts +2 -2
- package/dist/build/custom/buildJob.js +8 -67
- package/dist/build/custom/index.d.ts +2 -2
- package/dist/build/custom/index.js +3 -1
- package/dist/build/custom/testJob.d.ts +4 -4
- package/dist/build/custom/testJob.js +25 -21
- package/dist/build/docker.d.ts +48 -39
- package/dist/build/docker.js +112 -37
- package/dist/build/index.d.ts +14 -7
- package/dist/build/index.js +44 -16
- package/dist/build/node/buildJob.d.ts +6 -2
- package/dist/build/node/buildJob.js +39 -48
- package/dist/build/node/cache.d.ts +4 -5
- package/dist/build/node/cache.js +18 -23
- package/dist/build/node/constants.d.ts +0 -1
- package/dist/build/node/constants.js +5 -4
- package/dist/build/node/index.d.ts +4 -4
- package/dist/build/node/index.js +3 -1
- package/dist/build/node/meteor.d.ts +2 -2
- package/dist/build/node/meteor.js +10 -12
- package/dist/build/node/testJob.d.ts +3 -2
- package/dist/build/node/testJob.js +29 -19
- package/dist/build/node/yarn.d.ts +3 -2
- package/dist/build/node/yarn.js +13 -13
- package/dist/build/rails/build.d.ts +2 -2
- package/dist/build/rails/build.js +24 -8
- package/dist/build/rails/index.d.ts +2 -2
- package/dist/build/rails/index.js +3 -1
- package/dist/build/rails/test.d.ts +2 -2
- package/dist/build/rails/test.js +20 -12
- package/dist/build/sbom.d.ts +2 -2
- package/dist/build/sbom.js +9 -6
- package/dist/build/types.d.ts +152 -47
- package/dist/build/types.js +10 -2
- package/dist/catladder-gitlab.js +129 -49
- package/dist/config/__tests__/configruedEnvs.test.js +3 -1
- 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.js +3 -1
- package/dist/config/index.js +13 -7
- package/dist/config/readConfig.d.ts +2 -2
- package/dist/config/readConfig.js +191 -40
- package/dist/constants.js +5 -3
- package/dist/context/createAllComponentsContext.d.ts +12 -0
- package/dist/{pipeline/commitInfo/getCommitInfo.js → context/createAllComponentsContext.js} +35 -19
- package/dist/context/createComponentContext.d.ts +11 -0
- package/dist/context/createComponentContext.js +255 -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.js +5 -2
- package/dist/context/getEnvType.js +3 -1
- package/dist/context/getEnvironment.d.ts +3 -3
- package/dist/context/getEnvironment.js +11 -12
- package/dist/context/getEnvironmentContext.d.ts +7 -3
- package/dist/context/getEnvironmentContext.js +21 -11
- package/dist/context/getEnvironmentVariables.d.ts +22 -5
- package/dist/context/getEnvironmentVariables.js +81 -49
- package/dist/context/getLabels.d.ts +2 -2
- package/dist/context/getLabels.js +9 -7
- package/dist/context/getReviewSlug.d.ts +4 -0
- package/dist/context/getReviewSlug.js +21 -0
- package/dist/context/index.d.ts +2 -4
- package/dist/context/index.js +15 -162
- package/dist/context/transformJobOnlyVars.d.ts +5 -2
- package/dist/context/transformJobOnlyVars.js +4 -2
- package/dist/context/utils/envVars.d.ts +1 -1
- package/dist/context/utils/envVars.js +5 -2
- package/dist/defaults/index.js +3 -1
- package/dist/deploy/base/deploy.d.ts +3 -3
- package/dist/deploy/base/deploy.js +38 -22
- package/dist/deploy/base/index.d.ts +3 -5
- package/dist/deploy/base/index.js +3 -1
- package/dist/deploy/base/rollback.d.ts +3 -3
- package/dist/deploy/base/rollback.js +13 -9
- package/dist/deploy/base/stop.d.ts +3 -3
- package/dist/deploy/base/stop.js +16 -11
- package/dist/deploy/base/types.d.ts +1 -1
- package/dist/deploy/base/types.js +3 -1
- package/dist/deploy/base/variables.d.ts +0 -1
- package/dist/deploy/base/variables.js +4 -3
- 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 +207 -0
- package/dist/deploy/cloudRun/createJobs/cloudRunServices.d.ts +4 -0
- package/dist/deploy/cloudRun/createJobs/cloudRunServices.js +96 -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 +57 -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 +2 -2
- package/dist/deploy/cloudRun/index.js +17 -10
- package/dist/deploy/cloudRun/utils/createArgsString.d.ts +3 -1
- package/dist/deploy/cloudRun/utils/createArgsString.js +25 -17
- package/dist/deploy/cloudRun/utils/database.d.ts +6 -4
- package/dist/deploy/cloudRun/utils/database.js +28 -15
- package/dist/deploy/cloudRun/utils/gcloudServiceAccountLoginCommands.d.ts +2 -2
- package/dist/deploy/cloudRun/utils/gcloudServiceAccountLoginCommands.js +4 -2
- 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 -1
- package/dist/deploy/cloudRun/utils/jobName.js +4 -2
- 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 +2 -1
- package/dist/deploy/cloudSql/utils.js +7 -2
- package/dist/deploy/custom/deployJob.d.ts +2 -2
- package/dist/deploy/custom/deployJob.js +10 -9
- package/dist/deploy/custom/index.d.ts +2 -2
- package/dist/deploy/custom/index.js +3 -1
- package/dist/deploy/dockerTag/deployJob.d.ts +2 -2
- package/dist/deploy/dockerTag/deployJob.js +38 -7
- package/dist/deploy/dockerTag/index.d.ts +2 -2
- package/dist/deploy/dockerTag/index.js +3 -1
- package/dist/deploy/index.d.ts +10 -9
- package/dist/deploy/index.js +13 -7
- package/dist/deploy/kubernetes/additionalSecretKeys.d.ts +3 -1
- package/dist/deploy/kubernetes/additionalSecretKeys.js +3 -1
- package/dist/deploy/kubernetes/cloudSql/index.d.ts +6 -5
- package/dist/deploy/kubernetes/cloudSql/index.js +14 -21
- package/dist/deploy/kubernetes/deployJob.d.ts +2 -2
- package/dist/deploy/kubernetes/deployJob.js +23 -22
- package/dist/deploy/kubernetes/index.d.ts +2 -2
- package/dist/deploy/kubernetes/index.js +52 -15
- package/dist/deploy/kubernetes/kubeEnv.d.ts +5 -4
- package/dist/deploy/kubernetes/kubeEnv.js +9 -5
- package/dist/deploy/kubernetes/kubeValues.d.ts +5 -6
- package/dist/deploy/kubernetes/kubeValues.js +16 -18
- package/dist/deploy/kubernetes/mongodb.d.ts +2 -2
- package/dist/deploy/kubernetes/mongodb.js +14 -12
- package/dist/deploy/sbom.d.ts +4 -4
- package/dist/deploy/sbom.js +7 -4
- package/dist/deploy/types/base.d.ts +5 -5
- package/dist/deploy/types/base.js +3 -1
- package/dist/deploy/types/custom.d.ts +3 -7
- package/dist/deploy/types/custom.js +3 -1
- package/dist/deploy/types/dockerTag.d.ts +3 -1
- package/dist/deploy/types/dockerTag.js +3 -1
- package/dist/deploy/types/googleCloudRun.d.ts +127 -24
- package/dist/deploy/types/googleCloudRun.js +3 -1
- package/dist/deploy/types/index.d.ts +6 -6
- package/dist/deploy/types/index.js +14 -8
- package/dist/deploy/types/kubernetes.d.ts +25 -54
- package/dist/deploy/types/kubernetes.js +3 -1
- package/dist/deploy/utils.d.ts +2 -2
- package/dist/deploy/utils.js +5 -2
- package/dist/globalScriptFunctions/index.d.ts +14 -0
- package/dist/globalScriptFunctions/index.js +37 -0
- package/dist/index.d.ts +5 -2
- package/dist/index.js +18 -9
- 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 +16 -6
- package/dist/pipeline/createAllJobs.js +99 -27
- package/dist/pipeline/createJobsForComponent.d.ts +2 -2
- package/dist/pipeline/createJobsForComponent.js +9 -149
- 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 +283 -0
- package/dist/pipeline/generatePipelineFiles.d.ts +7 -0
- package/dist/pipeline/generatePipelineFiles.js +304 -0
- package/dist/pipeline/getPipelineStages.d.ts +7 -0
- package/dist/pipeline/getPipelineStages.js +56 -0
- package/dist/pipeline/gitlab/createGitlabJobs.d.ts +11 -14
- package/dist/pipeline/gitlab/createGitlabJobs.js +258 -74
- package/dist/pipeline/gitlab/createGitlabPipeline.d.ts +9 -0
- package/dist/pipeline/gitlab/createGitlabPipeline.js +77 -0
- package/dist/pipeline/gitlab/gitlabReleaseJobs.d.ts +33 -0
- package/dist/pipeline/gitlab/gitlabReleaseJobs.js +25 -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 -2
- package/dist/pipeline/index.js +16 -9
- package/dist/pipeline/packageManager.d.ts +3 -2
- package/dist/pipeline/packageManager.js +50 -24
- package/dist/pipeline/yarn/yarnUtils.d.ts +3 -2
- package/dist/pipeline/yarn/yarnUtils.js +65 -17
- package/dist/rules/index.d.ts +7 -2
- package/dist/rules/index.js +34 -16
- package/dist/runner/index.d.ts +1 -1
- package/dist/runner/index.js +3 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/types/config.d.ts +44 -29
- package/dist/types/config.js +5 -2
- package/dist/types/context.d.ts +124 -40
- package/dist/types/context.js +12 -1
- package/dist/types/environmentContext.d.ts +15 -12
- package/dist/types/environmentContext.js +3 -1
- package/dist/types/gitlab-ci-yml.d.ts +30 -30
- package/dist/types/gitlab-ci-yml.js +3 -2
- package/dist/types/gitlab-types.d.ts +8 -8
- package/dist/types/gitlab-types.js +3 -1
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.js +14 -7
- package/dist/types/jobDefinition.d.ts +11 -0
- package/dist/types/jobDefinition.js +5 -0
- package/dist/types/jobs.d.ts +30 -15
- package/dist/types/jobs.js +3 -1
- package/dist/types/pipeline.d.ts +3 -3
- package/dist/types/pipeline.js +3 -1
- package/dist/types/utils.d.ts +1 -1
- package/dist/types/utils.js +3 -1
- package/dist/utils/gitlab.js +7 -2
- package/dist/utils/index.d.ts +2 -1
- package/dist/utils/index.js +10 -3
- 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/{pipeline/commitInfo/getBuildId.js → utils/writeFiles.js} +39 -22
- package/dist/variables/VariableValue.d.ts +3 -0
- package/dist/variables/VariableValue.js +5 -0
- package/dist/variables/VariableValueContainingReferences.d.ts +24 -0
- package/dist/variables/VariableValueContainingReferences.js +97 -0
- package/dist/variables/__tests__/resolveAllReferences.test.d.ts +1 -0
- package/dist/variables/__tests__/resolveAllReferences.test.js +218 -0
- package/dist/variables/__tests__/resolveAllReferencesOnce.test.d.ts +1 -0
- package/dist/variables/__tests__/resolveAllReferencesOnce.test.js +171 -0
- package/dist/variables/__tests__/resolveReferencesOnce.test.d.ts +1 -0
- package/dist/variables/__tests__/resolveReferencesOnce.test.js +199 -0
- package/dist/variables/__tests__/variableValue.test.d.ts +1 -0
- package/dist/variables/__tests__/variableValue.test.js +36 -0
- package/dist/variables/resolveAllReferences.d.ts +3 -0
- package/dist/{pipeline/createChildPipeline.js → variables/resolveAllReferences.js} +44 -47
- package/dist/variables/resolveAllReferencesOnce.d.ts +5 -0
- package/dist/variables/resolveAllReferencesOnce.js +191 -0
- package/dist/variables/resolveReferencesOnce.d.ts +8 -0
- package/dist/variables/resolveReferencesOnce.js +22 -0
- package/examples/.test-gen-ignore +1 -0
- package/examples/__snapshots__/cloud-run-http2.test.ts.snap +1418 -0
- package/examples/__snapshots__/cloud-run-memory-limit.test.ts.snap +1418 -0
- package/examples/__snapshots__/cloud-run-meteor-with-worker.test.ts.snap +1418 -0
- package/examples/__snapshots__/cloud-run-nextjs.test.ts.snap +1434 -0
- package/examples/__snapshots__/cloud-run-no-cpu-throttling.test.ts.snap +1418 -0
- package/examples/__snapshots__/cloud-run-no-service.test.ts.snap +1526 -0
- package/examples/__snapshots__/cloud-run-non-public.test.ts.snap +1418 -0
- package/examples/__snapshots__/cloud-run-post-stop-job.test.ts.snap +1436 -0
- package/examples/__snapshots__/cloud-run-service-custom-vpc-connector.test.ts.snap +1418 -0
- package/examples/__snapshots__/cloud-run-service-custom-vpc.test.ts.snap +1418 -0
- package/examples/__snapshots__/cloud-run-service-gen2.test.ts.snap +1418 -0
- package/examples/__snapshots__/cloud-run-service-increase-timout.test.ts.snap +1418 -0
- package/examples/__snapshots__/cloud-run-service-with-volumes.test.ts.snap +1490 -0
- package/examples/__snapshots__/cloud-run-storybook.test.ts.snap +1302 -0
- package/examples/__snapshots__/cloud-run-with-ngnix.test.ts.snap +1418 -0
- package/examples/__snapshots__/cloud-run-with-sql-reuse-db.test.ts.snap +2998 -0
- package/examples/__snapshots__/cloud-run-with-sql.test.ts.snap +1733 -0
- package/examples/__snapshots__/cloud-run-with-worker.test.ts.snap +1426 -0
- package/examples/__snapshots__/custom-build-job-with-tests.test.ts.snap +1285 -0
- package/examples/__snapshots__/custom-build-job.test.ts.snap +1174 -0
- package/examples/__snapshots__/custom-deploy.test.ts.snap +1168 -0
- package/examples/__snapshots__/custom-envs.test.ts.snap +798 -0
- package/examples/__snapshots__/custom-sbom-java.test.ts.snap +1182 -0
- package/examples/__snapshots__/git-submodule.test.ts.snap +1419 -0
- package/examples/__snapshots__/kubernetes-application-customization.test.ts.snap +1759 -0
- package/examples/__snapshots__/kubernetes-with-cloud-sql.test.ts.snap +1779 -0
- package/examples/__snapshots__/kubernetes-with-jobs.test.ts.snap +3357 -0
- package/examples/__snapshots__/kubernetes-with-mongodb.test.ts.snap +1883 -0
- package/examples/__snapshots__/local-dot-env.test.ts.snap +1342 -0
- package/examples/__snapshots__/meteor-kubernetes.test.ts.snap +1836 -0
- package/examples/__snapshots__/multiline-var.test.ts.snap +5679 -0
- package/examples/__snapshots__/native-app.test.ts.snap +2206 -0
- package/examples/__snapshots__/node-build-with-custom-image.test.ts.snap +1418 -0
- package/examples/__snapshots__/node-build-with-docker-additions.test.ts.snap +1426 -0
- package/examples/__snapshots__/rails-k8s-with-worker-dockerfile.test.ts.snap +1487 -0
- package/examples/__snapshots__/rails-k8s-with-worker.test.ts.snap +1471 -0
- package/examples/__snapshots__/referencing-other-vars.test.ts.snap +4739 -0
- package/examples/__snapshots__/wait-for-other-deploy.test.ts.snap +1368 -0
- package/examples/__snapshots__/workspace-api-www-turbo-cache.test.ts.snap +2338 -0
- package/examples/__snapshots__/workspace-api-www.test.ts.snap +2330 -0
- package/examples/__utils__/helpers.ts +9 -12
- package/examples/cloud-run-http2.test.ts +11 -0
- package/examples/cloud-run-http2.ts +29 -0
- package/examples/cloud-run-memory-limit.test.ts +11 -0
- package/examples/cloud-run-memory-limit.ts +10 -5
- package/examples/cloud-run-meteor-with-worker.test.ts +11 -0
- package/examples/cloud-run-meteor-with-worker.ts +37 -0
- package/examples/cloud-run-nextjs.test.ts +11 -0
- package/examples/cloud-run-nextjs.ts +28 -0
- package/examples/cloud-run-no-cpu-throttling.test.ts +11 -0
- package/examples/cloud-run-no-cpu-throttling.ts +6 -4
- package/examples/cloud-run-no-service.test.ts +11 -0
- package/examples/cloud-run-no-service.ts +33 -0
- package/examples/cloud-run-non-public.test.ts +11 -0
- package/examples/cloud-run-non-public.ts +5 -4
- package/examples/cloud-run-post-stop-job.test.ts +11 -0
- package/examples/cloud-run-post-stop-job.ts +42 -0
- package/examples/cloud-run-service-custom-vpc-connector.test.ts +11 -0
- package/examples/cloud-run-service-custom-vpc-connector.ts +30 -0
- package/examples/cloud-run-service-custom-vpc.test.ts +11 -0
- package/examples/cloud-run-service-custom-vpc.ts +31 -0
- package/examples/cloud-run-service-gen2.test.ts +11 -0
- package/examples/cloud-run-service-gen2.ts +29 -0
- package/examples/cloud-run-service-increase-timout.test.ts +11 -0
- package/examples/cloud-run-service-increase-timout.ts +29 -0
- package/examples/cloud-run-service-with-volumes.test.ts +11 -0
- package/examples/cloud-run-service-with-volumes.ts +56 -0
- package/examples/cloud-run-storybook.test.ts +11 -0
- package/examples/cloud-run-storybook.ts +33 -0
- package/examples/cloud-run-with-ngnix.test.ts +11 -0
- package/examples/cloud-run-with-ngnix.ts +29 -0
- package/examples/cloud-run-with-sql-reuse-db.test.ts +11 -0
- package/examples/cloud-run-with-sql-reuse-db.ts +5 -4
- package/examples/cloud-run-with-sql.test.ts +11 -0
- package/examples/cloud-run-with-sql.ts +6 -20
- package/examples/cloud-run-with-worker.test.ts +11 -0
- package/examples/cloud-run-with-worker.ts +37 -0
- package/examples/custom-build-job-with-tests.test.ts +11 -0
- package/examples/custom-build-job-with-tests.ts +5 -4
- package/examples/custom-build-job.test.ts +11 -0
- package/examples/custom-build-job.ts +5 -4
- package/examples/custom-deploy.test.ts +11 -0
- package/examples/custom-deploy.ts +12 -4
- package/examples/custom-envs.test.ts +11 -0
- package/examples/custom-envs.ts +5 -4
- package/examples/custom-sbom-java.test.ts +11 -0
- package/examples/custom-sbom-java.ts +10 -6
- package/examples/git-submodule.test.ts +11 -0
- package/examples/git-submodule.ts +30 -0
- package/examples/kubernetes-application-customization.test.ts +11 -0
- package/examples/kubernetes-application-customization.ts +7 -4
- package/examples/kubernetes-with-cloud-sql.test.ts +11 -0
- package/examples/kubernetes-with-cloud-sql.ts +7 -4
- package/examples/kubernetes-with-jobs.test.ts +11 -0
- package/examples/kubernetes-with-jobs.ts +7 -4
- package/examples/kubernetes-with-mongodb.test.ts +11 -0
- package/examples/kubernetes-with-mongodb.ts +7 -4
- package/examples/local-dot-env.test.ts +11 -0
- package/examples/local-dot-env.ts +27 -0
- package/examples/meteor-kubernetes.test.ts +11 -0
- package/examples/meteor-kubernetes.ts +4 -5
- package/examples/multiline-var.test.ts +11 -0
- package/examples/multiline-var.ts +107 -0
- package/examples/native-app.test.ts +11 -0
- package/examples/native-app.ts +22 -17
- package/examples/node-build-with-custom-image.test.ts +11 -0
- package/examples/node-build-with-custom-image.ts +5 -4
- package/examples/node-build-with-docker-additions.test.ts +11 -0
- package/examples/node-build-with-docker-additions.ts +29 -0
- package/examples/rails-k8s-with-worker-dockerfile.test.ts +33 -0
- package/examples/rails-k8s-with-worker.test.ts +11 -0
- package/examples/rails-k8s-with-worker.ts +14 -11
- package/examples/referencing-other-vars.test.ts +11 -0
- package/examples/referencing-other-vars.ts +83 -0
- package/examples/wait-for-other-deploy.test.ts +11 -0
- package/examples/wait-for-other-deploy.ts +5 -4
- package/examples/workspace-api-www-turbo-cache.test.ts +11 -0
- package/examples/workspace-api-www-turbo-cache.ts +52 -0
- package/examples/workspace-api-www.test.ts +11 -0
- package/examples/workspace-api-www.ts +46 -0
- package/package.json +75 -26
- package/scripts/generate-examples-test.ts +84 -0
- package/scripts/generate-gitlab-ci-types.ts +2 -2
- package/scripts/tsconfig.json +7 -0
- package/src/bash/BashExpression.ts +78 -0
- package/src/bash/bashEscape.ts +158 -0
- package/src/bash/bashExpressionPerPipelineType.ts +16 -0
- package/src/bash/bashYaml.ts +80 -0
- package/src/bash/getInjectVarsScript.ts +21 -0
- package/src/bash/index.ts +2 -0
- package/src/build/artifacts/createBuildJobArtifact.ts +61 -0
- package/src/build/base/__tests__/createArtifactsConfig.test.ts +3 -3
- package/src/build/base/constants.ts +2 -2
- package/src/build/base/createAppBuildJob.ts +40 -24
- package/src/build/base/createArtifactsConfig.ts +2 -2
- package/src/build/base/createBuildJobDefinition.ts +37 -0
- package/src/build/base/index.ts +37 -8
- package/src/build/base/writeBuildInfo.ts +3 -3
- package/src/build/base/writeDotEnv.ts +25 -6
- package/src/build/cache/createJobCache.ts +83 -0
- package/src/build/cache/getAllCacheConfigsFromConfig.ts +28 -0
- package/src/build/cache/transformLegacyJobCache.ts +14 -0
- package/src/build/custom/__tests__/testJob.test.ts +10 -13
- package/src/build/custom/buildJob.ts +11 -37
- package/src/build/custom/index.ts +2 -2
- package/src/build/custom/testJob.ts +24 -22
- package/src/build/docker.ts +145 -49
- package/src/build/index.ts +42 -10
- package/src/build/node/buildJob.ts +65 -62
- package/src/build/node/cache.ts +30 -35
- package/src/build/node/constants.ts +2 -3
- package/src/build/node/index.ts +8 -4
- package/src/build/node/meteor.ts +16 -24
- package/src/build/node/testJob.ts +47 -26
- package/src/build/node/yarn.ts +32 -16
- package/src/build/rails/build.ts +21 -9
- package/src/build/rails/index.ts +2 -2
- package/src/build/rails/test.ts +22 -12
- package/src/build/sbom.ts +15 -10
- package/src/build/types.ts +190 -47
- package/src/catladder-gitlab.ts +7 -56
- 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/__tests__/getAllEnvs.test.ts +71 -0
- package/src/config/__tests__/getAllEnvsInAllComponents.test.ts +63 -0
- package/src/config/configruedEnvs.ts +6 -6
- package/src/config/readConfig.ts +15 -22
- package/src/constants.ts +5 -2
- package/src/context/createAllComponentsContext.ts +31 -0
- package/src/context/createComponentContext.ts +134 -0
- package/src/context/createWorkspaceContext.ts +56 -0
- package/src/context/getBuildInfoVariables.ts +36 -0
- package/src/context/getEnvConfig.ts +3 -3
- package/src/context/getEnvType.ts +1 -1
- package/src/context/getEnvironment.ts +8 -24
- package/src/context/getEnvironmentContext.ts +25 -29
- package/src/context/getEnvironmentVariables.ts +104 -76
- package/src/context/getLabels.ts +5 -5
- package/src/context/getReviewSlug.ts +27 -0
- package/src/context/index.ts +1 -65
- package/src/context/transformJobOnlyVars.ts +6 -3
- package/src/context/utils/envVars.ts +5 -4
- package/src/deploy/base/deploy.ts +63 -47
- package/src/deploy/base/index.ts +11 -6
- package/src/deploy/base/rollback.ts +11 -16
- package/src/deploy/base/stop.ts +11 -15
- package/src/deploy/base/variables.ts +1 -2
- 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 +227 -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 +71 -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 +85 -59
- package/src/deploy/cloudRun/utils/createArgsString.ts +21 -13
- package/src/deploy/cloudRun/utils/database.ts +31 -9
- package/src/deploy/cloudRun/utils/gcloudServiceAccountLoginCommands.ts +9 -11
- package/src/deploy/cloudRun/utils/getServiceName.ts +3 -0
- package/src/deploy/cloudRun/utils/jobName.ts +7 -2
- package/src/deploy/cloudRun/utils/removeFirstLinesFromCommandOutput.ts +12 -0
- package/src/deploy/cloudSql/utils.ts +13 -10
- package/src/deploy/custom/deployJob.ts +15 -10
- package/src/deploy/custom/index.ts +2 -2
- package/src/deploy/dockerTag/deployJob.ts +7 -8
- package/src/deploy/dockerTag/index.ts +8 -7
- package/src/deploy/index.ts +15 -12
- package/src/deploy/kubernetes/additionalSecretKeys.ts +3 -1
- package/src/deploy/kubernetes/cloudSql/index.ts +16 -25
- package/src/deploy/kubernetes/deployJob.ts +30 -21
- package/src/deploy/kubernetes/index.ts +43 -35
- package/src/deploy/kubernetes/kubeEnv.ts +12 -10
- package/src/deploy/kubernetes/kubeValues.ts +15 -19
- package/src/deploy/kubernetes/mongodb.ts +15 -15
- package/src/deploy/sbom.ts +18 -10
- package/src/deploy/types/base.ts +3 -3
- package/src/deploy/types/custom.ts +3 -7
- package/src/deploy/types/dockerTag.ts +2 -0
- package/src/deploy/types/googleCloudRun.ts +133 -10
- package/src/deploy/types/index.ts +2 -2
- package/src/deploy/types/kubernetes.ts +5 -36
- package/src/deploy/utils.ts +5 -5
- package/src/globalScriptFunctions/index.ts +30 -0
- package/src/index.ts +4 -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 +67 -33
- package/src/pipeline/createJobsForComponent.ts +10 -38
- package/src/pipeline/createJobsForWorkspace.ts +12 -0
- package/src/pipeline/createMainPipeline.ts +119 -0
- package/src/pipeline/generatePipelineFiles.ts +100 -0
- package/src/pipeline/getPipelineStages.ts +23 -0
- package/src/pipeline/gitlab/createGitlabJobs.ts +388 -108
- package/src/pipeline/gitlab/createGitlabPipeline.ts +35 -0
- package/src/pipeline/gitlab/gitlabReleaseJobs.ts +23 -0
- package/src/pipeline/gitlab/sortGitLabJobDefProps.ts +59 -0
- package/src/pipeline/index.ts +2 -1
- package/src/pipeline/packageManager.ts +44 -26
- package/src/pipeline/yarn/yarnUtils.ts +39 -10
- package/src/rules/index.ts +36 -9
- package/src/runner/index.ts +0 -1
- package/src/types/config.ts +43 -16
- package/src/types/context.ts +165 -37
- package/src/types/environmentContext.ts +18 -13
- package/src/types/gitlab-ci-yml.ts +0 -1
- package/src/types/gitlab-types.ts +10 -7
- package/src/types/index.ts +1 -0
- package/src/types/jobDefinition.ts +34 -0
- package/src/types/jobs.ts +31 -15
- package/src/types/utils.ts +4 -4
- package/src/utils/gitlab.ts +20 -3
- package/src/utils/index.ts +6 -3
- package/src/utils/jsonParse.ts +7 -0
- package/src/utils/removeUndefined.ts +4 -0
- package/src/utils/writeFiles.ts +52 -0
- package/src/variables/VariableValue.ts +6 -0
- package/src/variables/VariableValueContainingReferences.ts +89 -0
- package/src/variables/__tests__/resolveAllReferences.test.ts +110 -0
- package/src/variables/__tests__/resolveAllReferencesOnce.test.ts +64 -0
- package/src/variables/__tests__/resolveReferencesOnce.test.ts +117 -0
- package/src/variables/__tests__/variableValue.test.ts +73 -0
- package/src/variables/resolveAllReferences.ts +46 -0
- package/src/variables/resolveAllReferencesOnce.ts +44 -0
- package/src/variables/resolveReferencesOnce.ts +29 -0
- package/bin/catladder-gitlab-dev.js +0 -3
- package/bin/catladder-gitlab.js +0 -3
- package/dist/bundles/catladder-gitlab/index.js +0 -33838
- package/dist/context/__tests__/resolveReferences.test.js +0 -336
- package/dist/context/resolveReferences.d.ts +0 -4
- package/dist/context/resolveReferences.js +0 -254
- package/dist/deploy/cloudRun/deployJob.d.ts +0 -3
- package/dist/deploy/cloudRun/deployJob.js +0 -248
- package/dist/deploy/kubernetes/processSecretsAsFiles.d.ts +0 -84
- package/dist/deploy/kubernetes/processSecretsAsFiles.js +0 -31
- package/dist/pipeline/commitInfo/getBuildId.d.ts +0 -6
- package/dist/pipeline/commitInfo/getCommitInfo.d.ts +0 -2
- package/dist/pipeline/createChildPipeline.d.ts +0 -3
- package/examples/__snapshots__/cloud-run-memory-limit.ts.snap +0 -1780
- package/examples/__snapshots__/cloud-run-no-cpu-throttling.ts.snap +0 -1780
- package/examples/__snapshots__/cloud-run-non-public.ts.snap +0 -1780
- package/examples/__snapshots__/cloud-run-with-sql-reuse-db.ts.snap +0 -3532
- package/examples/__snapshots__/cloud-run-with-sql.ts.snap +0 -3543
- package/examples/__snapshots__/custom-build-job-with-tests.ts.snap +0 -1656
- package/examples/__snapshots__/custom-build-job.ts.snap +0 -1362
- package/examples/__snapshots__/custom-deploy.ts.snap +0 -1556
- package/examples/__snapshots__/custom-envs.ts.snap +0 -1050
- package/examples/__snapshots__/custom-sbom-java.ts.snap +0 -1370
- package/examples/__snapshots__/kubernetes-application-customization.ts.snap +0 -2468
- package/examples/__snapshots__/kubernetes-with-cloud-sql-legacy.ts.snap +0 -2428
- package/examples/__snapshots__/kubernetes-with-cloud-sql.ts.snap +0 -2440
- package/examples/__snapshots__/kubernetes-with-jobs.ts.snap +0 -4453
- package/examples/__snapshots__/kubernetes-with-mongodb.ts.snap +0 -2632
- package/examples/__snapshots__/meteor-kubernetes.ts.snap +0 -2557
- package/examples/__snapshots__/native-app.ts.snap +0 -2878
- package/examples/__snapshots__/node-build-with-custom-image.ts.snap +0 -1780
- package/examples/__snapshots__/rails-k8s-with-worker.ts.snap +0 -4189
- package/examples/__snapshots__/wait-for-other-deploy.ts.snap +0 -1922
- package/examples/kubernetes-with-cloud-sql-legacy.ts +0 -33
- package/scripts/bundle +0 -2
- package/src/context/__tests__/resolveReferences.test.ts +0 -143
- package/src/context/resolveReferences.ts +0 -70
- package/src/deploy/cloudRun/deployJob.ts +0 -301
- package/src/deploy/kubernetes/processSecretsAsFiles.ts +0 -34
- package/src/pipeline/commitInfo/getBuildId.ts +0 -17
- package/src/pipeline/commitInfo/getCommitInfo.ts +0 -15
- package/src/pipeline/createChildPipeline.ts +0 -45
- /package/dist/{context/__tests__/resolveReferences.test.d.ts → config/__tests__/getAllEnvs.test.d.ts} +0 -0
|
@@ -62,6 +62,21 @@ export type DeployConfigCloudRunCloudSql = {
|
|
|
62
62
|
*/
|
|
63
63
|
deleteDatabaseOnStop?: boolean;
|
|
64
64
|
|
|
65
|
+
/**
|
|
66
|
+
* format of the `DATABASE_URL` environment variable
|
|
67
|
+
*
|
|
68
|
+
* the options are:
|
|
69
|
+
* - prisma: adds [required but ignored hostname](https://www.prisma.io/docs/orm/overview/databases/postgresql#connecting-via-sockets):
|
|
70
|
+
* `postgresql://$DB_USER:$DB_PASSWORD@localhost/$DB_NAME?host=/cloudsql/$CLOUD_SQL_INSTANCE_CONNECTION_NAME`
|
|
71
|
+
* - rails: percent-encodes the socket in the host part
|
|
72
|
+
* `postgresql://$DB_USER:$DB_PASSWORD@%2Fcloudsql%2FprojectId%3Aregion%3Ainstancename/$DB_NAME?`
|
|
73
|
+
* - jdbc: for use with Google Cloud SQL Connector for Java
|
|
74
|
+
* `jdbc:postgresql:///$DB_NAME?cloudSqlInstance=$CLOUD_SQL_INSTANCE_CONNECTION_NAME&socketFactory=com.google.cloud.sql.postgres.SocketFactory&user=$DB_USER&password=$DB_PASSWORD`
|
|
75
|
+
*
|
|
76
|
+
* defaults to prisma
|
|
77
|
+
*/
|
|
78
|
+
dbConnectionStringFormat?: "prisma" | "rails" | "jdbc";
|
|
79
|
+
|
|
65
80
|
/**
|
|
66
81
|
* add additional query params to the database connection string
|
|
67
82
|
*/
|
|
@@ -74,11 +89,12 @@ export type DeployConfigCloudRunCloudSql = {
|
|
|
74
89
|
};
|
|
75
90
|
|
|
76
91
|
type Memory = `${number}${"M" | "G" | "Mi" | "Gi"}`;
|
|
92
|
+
type Cpu = 1 | 2 | 4 | 6 | 8;
|
|
77
93
|
export type DeployConfigCloudRunService = {
|
|
78
94
|
/**
|
|
79
95
|
* command / entrypoint, fallsback to buildConfig.startcommand
|
|
80
96
|
*/
|
|
81
|
-
command?: string;
|
|
97
|
+
command?: string | string[];
|
|
82
98
|
|
|
83
99
|
/**
|
|
84
100
|
* how many instances to keep around when there are no requests. defaults to 0.
|
|
@@ -97,24 +113,98 @@ export type DeployConfigCloudRunService = {
|
|
|
97
113
|
noCpuThrottling?: true;
|
|
98
114
|
|
|
99
115
|
/**
|
|
100
|
-
* whether to allow public access (defaults to true)
|
|
116
|
+
* whether to allow public access without authentification (defaults to true)
|
|
101
117
|
*/
|
|
102
118
|
allowUnauthenticated?: boolean;
|
|
103
119
|
|
|
120
|
+
/**
|
|
121
|
+
* whether to expose the service to the internet.
|
|
122
|
+
*
|
|
123
|
+
* The options are:
|
|
124
|
+
* - all: expose to the internet and internal traffic
|
|
125
|
+
* - internal: only expose to internal traffic
|
|
126
|
+
* - internal-and-cloud-load-balancing: expose to internal traffic and cloud load balancing
|
|
127
|
+
*
|
|
128
|
+
* Defaults to "all"
|
|
129
|
+
*/
|
|
130
|
+
ingress?: "all" | "internal" | "internal-and-cloud-load-balancing";
|
|
131
|
+
|
|
132
|
+
/**
|
|
133
|
+
* CPU limit.
|
|
134
|
+
*/
|
|
135
|
+
cpu?: Cpu;
|
|
136
|
+
|
|
104
137
|
/**
|
|
105
138
|
* memory limit. Defaults to 512MB
|
|
106
139
|
*/
|
|
107
140
|
memory?: Memory;
|
|
108
|
-
|
|
141
|
+
|
|
142
|
+
/**
|
|
143
|
+
* timeout of the service, defaults to 5 minutes.
|
|
144
|
+
*
|
|
145
|
+
* you can specify something like 10m30s. if its just a number, it will be interpreted as seconds
|
|
146
|
+
*
|
|
147
|
+
* max supported is 60min
|
|
148
|
+
*/
|
|
149
|
+
timeout?: string;
|
|
150
|
+
|
|
151
|
+
/**
|
|
152
|
+
*
|
|
153
|
+
* set the execution environment.
|
|
154
|
+
*
|
|
155
|
+
* see https://cloud.google.com/run/docs/about-execution-environments
|
|
156
|
+
*
|
|
157
|
+
* defaults to gen1 according to gcloud
|
|
158
|
+
*/
|
|
159
|
+
executionEnvironment?: "gen2" | "gen1";
|
|
160
|
+
|
|
161
|
+
/* the vpc network, see https://cloud.google.com/sdk/gcloud/reference/run/deploy#--network */
|
|
162
|
+
network?: string;
|
|
163
|
+
|
|
164
|
+
/**
|
|
165
|
+
* vpc subnet to use, see https://cloud.google.com/sdk/gcloud/reference/run/deploy#--subnet
|
|
166
|
+
*/
|
|
167
|
+
subnet?: string;
|
|
168
|
+
/**
|
|
169
|
+
* vpc egress, see https://cloud.google.com/sdk/gcloud/reference/run/deploy#--vpc-egress
|
|
170
|
+
*/
|
|
171
|
+
vpcEgress?: "all-traffic" | "private-ranges-only";
|
|
172
|
+
|
|
173
|
+
/**
|
|
174
|
+
* vpc connector
|
|
175
|
+
*/
|
|
176
|
+
vpcConnector?: string;
|
|
177
|
+
|
|
178
|
+
/**
|
|
179
|
+
* Use http2 end-to-end. See https://cloud.google.com/run/docs/configuring/http2
|
|
180
|
+
*
|
|
181
|
+
* Defaults to false.
|
|
182
|
+
*
|
|
183
|
+
* Your service needs to be able to handle http2 requests.
|
|
184
|
+
* Its recommended to use http2 without tls, since cloud run handles the encryption for you. (so called "h2c" (http2 cleartext))
|
|
185
|
+
*
|
|
186
|
+
*/
|
|
187
|
+
http2?: boolean;
|
|
188
|
+
} & DeployConfigCloudRunWithVolumes;
|
|
109
189
|
|
|
110
190
|
export type DeployConfigCloudRunJobBase = {
|
|
111
191
|
/**
|
|
112
192
|
* command
|
|
113
193
|
*/
|
|
114
|
-
command: string;
|
|
194
|
+
command: string | string[];
|
|
195
|
+
|
|
196
|
+
/**
|
|
197
|
+
* custom image to use. Defaults to the image from the build
|
|
198
|
+
*/
|
|
199
|
+
image?: string;
|
|
200
|
+
|
|
201
|
+
/**
|
|
202
|
+
* CPU limit of the job.
|
|
203
|
+
*/
|
|
204
|
+
cpu?: Cpu;
|
|
115
205
|
|
|
116
206
|
/**
|
|
117
|
-
* memory limit of the job, defaults to
|
|
207
|
+
* memory limit of the job, defaults to 512Mi
|
|
118
208
|
*/
|
|
119
209
|
memory?: `${number}${"M" | "G" | "Mi" | "Gi"}`;
|
|
120
210
|
|
|
@@ -124,7 +214,12 @@ export type DeployConfigCloudRunJobBase = {
|
|
|
124
214
|
* you can specify something like 10m30s
|
|
125
215
|
*/
|
|
126
216
|
timeout?: string;
|
|
127
|
-
|
|
217
|
+
|
|
218
|
+
/**
|
|
219
|
+
* number of tasks that may run concurrently, defaults to 1
|
|
220
|
+
*/
|
|
221
|
+
parallelism?: number;
|
|
222
|
+
} & DeployConfigCloudRunWithVolumes;
|
|
128
223
|
|
|
129
224
|
type Minute = string;
|
|
130
225
|
type Hour = string;
|
|
@@ -135,11 +230,25 @@ export type DeployConfigCloudRunJobWithSchedule =
|
|
|
135
230
|
DeployConfigCloudRunJobBase & {
|
|
136
231
|
when: "schedule";
|
|
137
232
|
schedule: `${Minute} ${Hour} ${DayOfMonth} ${Month} ${DayOfWeek}`;
|
|
233
|
+
/**
|
|
234
|
+
* Max number of retries of the cloud scheduler.
|
|
235
|
+
* Note: the task itself is never retried.
|
|
236
|
+
*
|
|
237
|
+
* defaults to 0 (no retries)
|
|
238
|
+
*/
|
|
138
239
|
maxRetryAttempts?: 0 | 1 | 2 | 3 | 4 | 5;
|
|
139
240
|
};
|
|
140
241
|
|
|
141
242
|
export type DeployConfigCloudRunJobNormal = DeployConfigCloudRunJobBase & {
|
|
142
|
-
when: "manual" | "preDeploy" | "postDeploy";
|
|
243
|
+
when: "manual" | "preDeploy" | "postDeploy" | "preStop" | "postStop";
|
|
244
|
+
};
|
|
245
|
+
|
|
246
|
+
export type DeployConfigCloudRunWithVolumes = {
|
|
247
|
+
/**
|
|
248
|
+
* adds volumes to the service. This is an experimental feature and requires beta gcloud.
|
|
249
|
+
* sets executionEnvironment to gen2 automatically, since that is required
|
|
250
|
+
*/
|
|
251
|
+
volumes?: DeployConfigCloudRunVolumes;
|
|
143
252
|
};
|
|
144
253
|
|
|
145
254
|
export type DeployConfigCloudRunJob =
|
|
@@ -148,9 +257,9 @@ export type DeployConfigCloudRunJob =
|
|
|
148
257
|
|
|
149
258
|
export type DeployConfigCloudRun = {
|
|
150
259
|
/**
|
|
151
|
-
*
|
|
260
|
+
* cloud run deployment.
|
|
152
261
|
*
|
|
153
|
-
* This will deploy a cloud run service.
|
|
262
|
+
* This will deploy a cloud run service. You can optionally define one-time and scheduled jobs running on cloud run
|
|
154
263
|
*
|
|
155
264
|
* Requires that cloud run is enabled on the project, as well as cloud run api and artifacts registry.
|
|
156
265
|
*/
|
|
@@ -170,7 +279,7 @@ export type DeployConfigCloudRun = {
|
|
|
170
279
|
service?: boolean | DeployConfigCloudRunService;
|
|
171
280
|
|
|
172
281
|
/**
|
|
173
|
-
* deploy additional services with different entry
|
|
282
|
+
* deploy additional services with different entry points.
|
|
174
283
|
*/
|
|
175
284
|
additionalServices?: {
|
|
176
285
|
[name: string]: DeployConfigCloudRunService;
|
|
@@ -184,4 +293,18 @@ export type DeployConfigCloudRun = {
|
|
|
184
293
|
* add cloudSql
|
|
185
294
|
*/
|
|
186
295
|
cloudSql?: DeployConfigCloudRunCloudSql | false;
|
|
296
|
+
|
|
297
|
+
debug?: boolean;
|
|
187
298
|
} & DeployConfigBase;
|
|
299
|
+
|
|
300
|
+
export type DeployConfigCloudRunVolumes = Record<
|
|
301
|
+
string,
|
|
302
|
+
DeployConfigCloudRunVolume
|
|
303
|
+
>;
|
|
304
|
+
|
|
305
|
+
export type DeployConfigCloudRunVolume = {
|
|
306
|
+
type: "cloud-storage";
|
|
307
|
+
bucket: string;
|
|
308
|
+
mountPath: string;
|
|
309
|
+
readonly?: boolean;
|
|
310
|
+
};
|
|
@@ -21,8 +21,8 @@ export type DeployConfigGeneric<T extends DeployConfigType> = Extract<
|
|
|
21
21
|
>;
|
|
22
22
|
|
|
23
23
|
export const isOfDeployType = <T extends Array<DeployConfigType>>(
|
|
24
|
-
t: DeployConfig | false,
|
|
24
|
+
t: DeployConfig | false | null | undefined,
|
|
25
25
|
...types: T
|
|
26
26
|
): t is Extract<DeployConfig, { type: T[number] }> => {
|
|
27
|
-
return t && types.includes(t.type);
|
|
27
|
+
return t && types.includes(t.type) ? true : false;
|
|
28
28
|
};
|
|
@@ -96,6 +96,10 @@ export type KubernetesWorkerDef = {
|
|
|
96
96
|
service?: {
|
|
97
97
|
enabled?: boolean;
|
|
98
98
|
};
|
|
99
|
+
/**
|
|
100
|
+
* if the same livenessProbe as the application should be used, defaults to `true`
|
|
101
|
+
*/
|
|
102
|
+
livenessProbe?: boolean;
|
|
99
103
|
};
|
|
100
104
|
|
|
101
105
|
type KubernetesTolerationExists = {
|
|
@@ -160,33 +164,6 @@ export type DeployConfigMongodbReplicaset = {
|
|
|
160
164
|
export type DeployConfigMongodb = DeployConfigMongodbBase &
|
|
161
165
|
(DeployConfigMongodbStandalone | DeployConfigMongodbReplicaset);
|
|
162
166
|
|
|
163
|
-
/**
|
|
164
|
-
* @deprecated use config with instanceConnectionName
|
|
165
|
-
*/
|
|
166
|
-
type DeployConfigKubernetesValuesCloudSQLLegacy = {
|
|
167
|
-
enabled: boolean;
|
|
168
|
-
/**
|
|
169
|
-
* @deprecated use config with instanceConnectionName
|
|
170
|
-
*/
|
|
171
|
-
instanceId?: string;
|
|
172
|
-
/**
|
|
173
|
-
* @deprecated use config with instanceConnectionName
|
|
174
|
-
*/
|
|
175
|
-
projectId?: string;
|
|
176
|
-
/**
|
|
177
|
-
* @deprecated use config with instanceConnectionName
|
|
178
|
-
*/
|
|
179
|
-
region?: string;
|
|
180
|
-
/**
|
|
181
|
-
* @deprecated use type "unmanaged".
|
|
182
|
-
*
|
|
183
|
-
* Be aware that "unmanaged" is not fully backward compatible with "legacy".
|
|
184
|
-
*
|
|
185
|
-
*
|
|
186
|
-
*/
|
|
187
|
-
type?: "legacy";
|
|
188
|
-
};
|
|
189
|
-
|
|
190
167
|
export type DeployConfigKubernetesValuesCloudSQLUnmanaged = {
|
|
191
168
|
enabled: boolean;
|
|
192
169
|
instanceConnectionName: string;
|
|
@@ -216,8 +193,7 @@ export type DeployConfigKubernetesValuesCloudSQLUnmanaged = {
|
|
|
216
193
|
dbBaseName?: string;
|
|
217
194
|
};
|
|
218
195
|
export type DeployConfigKubernetesValuesCloudSQL =
|
|
219
|
-
|
|
220
|
-
| DeployConfigKubernetesValuesCloudSQLUnmanaged;
|
|
196
|
+
DeployConfigKubernetesValuesCloudSQLUnmanaged;
|
|
221
197
|
export type DeployConfigKubernetesValues = AllowUnknownProps<{
|
|
222
198
|
/**
|
|
223
199
|
* enable cloudsql db. Currently you have to manually set it up
|
|
@@ -354,13 +330,6 @@ export type DeployConfigKubernetesValues = AllowUnknownProps<{
|
|
|
354
330
|
mapServiceUrlToEnv?: {
|
|
355
331
|
[envVar: string]: string;
|
|
356
332
|
};
|
|
357
|
-
/**
|
|
358
|
-
* Mount secrets as files in the filesystem.
|
|
359
|
-
* These secrets are still available as env vars, but will contain the path of the file instead
|
|
360
|
-
*
|
|
361
|
-
* @deprecated this will be removed in the future, because its very niche and not used
|
|
362
|
-
*/
|
|
363
|
-
secretsAsFile?: string[];
|
|
364
333
|
}>;
|
|
365
334
|
|
|
366
335
|
export type DeployConfigKubernetes = {
|
package/src/deploy/utils.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import type { Config,
|
|
1
|
+
import type { Config, ComponentContext } from "../types";
|
|
2
2
|
import type { DeployConfigKubernetesCluster } from "./types";
|
|
3
3
|
import { isOfDeployType } from "./types";
|
|
4
4
|
|
|
5
5
|
export const getFullKubernetesClusterName = (
|
|
6
|
-
cluster: DeployConfigKubernetesCluster
|
|
6
|
+
cluster: DeployConfigKubernetesCluster,
|
|
7
7
|
) => {
|
|
8
8
|
if (cluster.type === "gcloud") {
|
|
9
9
|
return `gke_${cluster.projectId}_${cluster.region}_${cluster.name}`;
|
|
@@ -12,13 +12,13 @@ export const getFullKubernetesClusterName = (
|
|
|
12
12
|
|
|
13
13
|
export const getKubernetesNamespace = (
|
|
14
14
|
config: Pick<Config, "customerName" | "appName">,
|
|
15
|
-
env: string
|
|
15
|
+
env: string,
|
|
16
16
|
) => {
|
|
17
17
|
return `${config.customerName}-${config.appName}-${env}`;
|
|
18
18
|
};
|
|
19
19
|
|
|
20
|
-
export const contextIsStoppable = (context:
|
|
21
|
-
const deployConfig = context.
|
|
20
|
+
export const contextIsStoppable = (context: ComponentContext) => {
|
|
21
|
+
const deployConfig = context.deploy?.config;
|
|
22
22
|
if (isOfDeployType(deployConfig, "kubernetes")) {
|
|
23
23
|
return true;
|
|
24
24
|
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
class GlobalScriptFunction {
|
|
2
|
+
constructor(
|
|
3
|
+
public name: string,
|
|
4
|
+
public script: string,
|
|
5
|
+
) {}
|
|
6
|
+
|
|
7
|
+
toBashFunction() {
|
|
8
|
+
return `function ${this.name} () {
|
|
9
|
+
${this.script.trim()}
|
|
10
|
+
}`.trim();
|
|
11
|
+
}
|
|
12
|
+
invoke(...args: string[]) {
|
|
13
|
+
return `${this.name} ${args.join(" ")}`;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export const globalScriptFunctions = new Map<string, GlobalScriptFunction>();
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* registers a global script function
|
|
21
|
+
* only use that in top-level scopes as it will attach the function to the global scope
|
|
22
|
+
*/
|
|
23
|
+
export const registerGlobalScriptFunction = (name: string, script: string) => {
|
|
24
|
+
if (globalScriptFunctions.has(name)) {
|
|
25
|
+
throw new Error(`Global script function ${name} already exists`);
|
|
26
|
+
}
|
|
27
|
+
const scriptFunction = new GlobalScriptFunction(name, script);
|
|
28
|
+
globalScriptFunctions.set(name, scriptFunction);
|
|
29
|
+
return scriptFunction;
|
|
30
|
+
};
|
package/src/index.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export * from "./pipeline
|
|
1
|
+
export * from "./pipeline";
|
|
2
2
|
export * from "./types";
|
|
3
3
|
export * from "./rules";
|
|
4
4
|
export * from "./runner";
|
|
@@ -6,3 +6,6 @@ export * from "./config";
|
|
|
6
6
|
export * from "./context";
|
|
7
7
|
export * from "./build";
|
|
8
8
|
export * from "./deploy";
|
|
9
|
+
export * from "./utils/writeFiles";
|
|
10
|
+
export * from "./variables/VariableValue";
|
|
11
|
+
export * from "./bash";
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
// we can't import the package.json directly, because the bundling process will inline it
|
|
2
|
+
// but the version is only set during deployement, when its already bundled
|
|
3
|
+
// instead we need to use require.main.path to get the path of the main module, which is actually the file in the bin
|
|
4
|
+
// this will point to the root package.json
|
|
5
|
+
let ownPkg = { version: "0.0.0" };
|
|
6
|
+
try {
|
|
7
|
+
const path = require.main?.path + "/../package.json";
|
|
8
|
+
|
|
9
|
+
ownPkg = require(path);
|
|
10
|
+
} catch (e) {
|
|
11
|
+
// ignore, currently in the gitlab-includes, this doesn't work
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
export default ownPkg;
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
|
2
|
+
|
|
3
|
+
exports[`getPipelineStages() should return all envs for SIMPLE_CONFIG1 1`] = `
|
|
4
|
+
[
|
|
5
|
+
"setup",
|
|
6
|
+
"setup dev",
|
|
7
|
+
"setup review",
|
|
8
|
+
"setup stage",
|
|
9
|
+
"setup prod",
|
|
10
|
+
"setup dev2",
|
|
11
|
+
"setup review2",
|
|
12
|
+
"setup stage2",
|
|
13
|
+
"setup prod2",
|
|
14
|
+
"test",
|
|
15
|
+
"test dev",
|
|
16
|
+
"test review",
|
|
17
|
+
"test stage",
|
|
18
|
+
"test prod",
|
|
19
|
+
"test dev2",
|
|
20
|
+
"test review2",
|
|
21
|
+
"test stage2",
|
|
22
|
+
"test prod2",
|
|
23
|
+
"build",
|
|
24
|
+
"build dev",
|
|
25
|
+
"build review",
|
|
26
|
+
"build stage",
|
|
27
|
+
"build prod",
|
|
28
|
+
"build dev2",
|
|
29
|
+
"build review2",
|
|
30
|
+
"build stage2",
|
|
31
|
+
"build prod2",
|
|
32
|
+
"deploy",
|
|
33
|
+
"deploy dev",
|
|
34
|
+
"deploy review",
|
|
35
|
+
"deploy stage",
|
|
36
|
+
"deploy prod",
|
|
37
|
+
"deploy dev2",
|
|
38
|
+
"deploy review2",
|
|
39
|
+
"deploy stage2",
|
|
40
|
+
"deploy prod2",
|
|
41
|
+
"verify",
|
|
42
|
+
"verify dev",
|
|
43
|
+
"verify review",
|
|
44
|
+
"verify stage",
|
|
45
|
+
"verify prod",
|
|
46
|
+
"verify dev2",
|
|
47
|
+
"verify review2",
|
|
48
|
+
"verify stage2",
|
|
49
|
+
"verify prod2",
|
|
50
|
+
"rollback",
|
|
51
|
+
"rollback dev",
|
|
52
|
+
"rollback review",
|
|
53
|
+
"rollback stage",
|
|
54
|
+
"rollback prod",
|
|
55
|
+
"rollback dev2",
|
|
56
|
+
"rollback review2",
|
|
57
|
+
"rollback stage2",
|
|
58
|
+
"rollback prod2",
|
|
59
|
+
"stop",
|
|
60
|
+
"stop dev",
|
|
61
|
+
"stop review",
|
|
62
|
+
"stop stage",
|
|
63
|
+
"stop prod",
|
|
64
|
+
"stop dev2",
|
|
65
|
+
"stop review2",
|
|
66
|
+
"stop stage2",
|
|
67
|
+
"stop prod2",
|
|
68
|
+
]
|
|
69
|
+
`;
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { type DeployConfigKubernetesCluster } from "../..";
|
|
2
|
+
import type { Config } from "../../types";
|
|
3
|
+
import { getPipelineStages } from "../getPipelineStages";
|
|
4
|
+
|
|
5
|
+
describe("getPipelineStages()", () => {
|
|
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(getPipelineStages(SIMPLE_CONFIG1)).toMatchSnapshot();
|
|
62
|
+
});
|
|
63
|
+
});
|
|
@@ -1,38 +1,72 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import
|
|
1
|
+
import type { CreateAllComponentsContextProps } from "../context/createAllComponentsContext";
|
|
2
|
+
import { createAllComponentsContext } from "../context/createAllComponentsContext";
|
|
3
|
+
import { createWorkspaceContext } from "../context/createWorkspaceContext";
|
|
4
|
+
import type { ComponentContext, WorkspaceContext } from "../types";
|
|
5
|
+
import { componentContextHasWorkspaceBuild } from "../types";
|
|
3
6
|
import type { CatladderJob } from "../types/jobs";
|
|
4
|
-
import {
|
|
7
|
+
import { createJobsForComponentContext } from "./createJobsForComponent";
|
|
8
|
+
import { createJobsForWorkspace } from "./createJobsForWorkspace";
|
|
5
9
|
|
|
6
10
|
export type AllCatladderJobs = {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
11
|
+
workspaces: Array<{
|
|
12
|
+
context: WorkspaceContext;
|
|
13
|
+
jobs: Array<CatladderJob>;
|
|
14
|
+
}>;
|
|
15
|
+
components: Array<{
|
|
16
|
+
context: ComponentContext;
|
|
17
|
+
jobs: Array<CatladderJob>;
|
|
18
|
+
}>;
|
|
10
19
|
};
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
20
|
+
|
|
21
|
+
export const createAllJobs = async ({
|
|
22
|
+
config,
|
|
23
|
+
trigger,
|
|
24
|
+
pipelineType,
|
|
25
|
+
}: CreateAllComponentsContextProps): Promise<AllCatladderJobs> => {
|
|
26
|
+
const allComponentsContext = await createAllComponentsContext({
|
|
27
|
+
config,
|
|
28
|
+
trigger,
|
|
29
|
+
pipelineType,
|
|
30
|
+
});
|
|
31
|
+
|
|
32
|
+
return {
|
|
33
|
+
workspaces: await Promise.all(
|
|
34
|
+
Object.keys(config.builds ?? {}).map(async (workspaceName) => {
|
|
35
|
+
const componentsInAllEnvs = allComponentsContext.filter(
|
|
36
|
+
(context) =>
|
|
37
|
+
componentContextHasWorkspaceBuild(context) &&
|
|
38
|
+
context.build.workspaceName === workspaceName,
|
|
39
|
+
);
|
|
40
|
+
|
|
41
|
+
const allEnvs = [...new Set(componentsInAllEnvs.map(({ env }) => env))];
|
|
42
|
+
|
|
43
|
+
return await Promise.all(
|
|
44
|
+
allEnvs.map(async (env) => {
|
|
45
|
+
const workspaceContext = await createWorkspaceContext({
|
|
46
|
+
components: componentsInAllEnvs.filter(
|
|
47
|
+
({ env: componentEnv }) => componentEnv === env,
|
|
48
|
+
),
|
|
49
|
+
workspaceName,
|
|
50
|
+
config,
|
|
51
|
+
trigger,
|
|
52
|
+
pipelineType,
|
|
53
|
+
env,
|
|
54
|
+
});
|
|
55
|
+
|
|
56
|
+
return {
|
|
57
|
+
context: workspaceContext,
|
|
58
|
+
jobs: createJobsForWorkspace(workspaceContext),
|
|
59
|
+
};
|
|
60
|
+
}),
|
|
61
|
+
);
|
|
62
|
+
}),
|
|
63
|
+
).then((f) => f.flat()),
|
|
64
|
+
|
|
65
|
+
components: allComponentsContext.map((context) => {
|
|
66
|
+
return {
|
|
67
|
+
context,
|
|
68
|
+
jobs: createJobsForComponentContext(context),
|
|
69
|
+
};
|
|
70
|
+
}),
|
|
71
|
+
};
|
|
38
72
|
};
|