@catladder/pipeline 0.0.0-refactore-catenv-command-validates-argument-78d05852 → 0.0.0-reference-database-url-1befbbee
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 +15 -1
- package/dist/bash/BashExpression.d.ts +36 -0
- package/dist/bash/BashExpression.js +114 -0
- package/dist/bash/bashEscape.d.ts +37 -0
- package/dist/bash/bashEscape.js +119 -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.js +4 -2
- 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 +6 -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 -66
- 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 -20
- package/dist/build/docker.d.ts +37 -46
- package/dist/build/docker.js +65 -34
- package/dist/build/index.d.ts +14 -7
- package/dist/build/index.js +44 -17
- package/dist/build/node/buildJob.d.ts +8 -2
- package/dist/build/node/buildJob.js +39 -52
- package/dist/build/node/cache.d.ts +4 -5
- package/dist/build/node/cache.js +18 -24
- package/dist/build/node/constants.js +5 -3
- 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 +4 -3
- package/dist/build/node/yarn.js +11 -12
- package/dist/build/rails/build.d.ts +2 -2
- package/dist/build/rails/build.js +13 -6
- 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 +30 -11
- package/dist/build/sbom.d.ts +2 -2
- package/dist/build/sbom.js +13 -7
- package/dist/build/types.d.ts +160 -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 +262 -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 +21 -4
- 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 +79 -53
- 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 +37 -21
- 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.js +4 -2
- package/dist/deploy/cloudRun/artifactsRegistry.d.ts +8 -11
- package/dist/deploy/cloudRun/artifactsRegistry.js +15 -14
- package/dist/deploy/cloudRun/cleanup.d.ts +2 -2
- package/dist/deploy/cloudRun/cleanup.js +3 -1
- package/dist/deploy/cloudRun/cloudRunRevisions.d.ts +2 -2
- package/dist/deploy/cloudRun/cloudRunRevisions.js +7 -6
- package/dist/deploy/cloudRun/createJobs/cloudRunJobs.d.ts +8 -6
- package/dist/deploy/cloudRun/createJobs/cloudRunJobs.js +57 -106
- package/dist/deploy/cloudRun/createJobs/cloudRunServices.d.ts +3 -3
- package/dist/deploy/cloudRun/createJobs/cloudRunServices.js +79 -15
- package/dist/deploy/cloudRun/createJobs/common.d.ts +7 -7
- package/dist/deploy/cloudRun/createJobs/common.js +6 -3
- package/dist/deploy/cloudRun/createJobs/constants.d.ts +1 -0
- package/dist/deploy/cloudRun/createJobs/constants.js +7 -0
- package/dist/deploy/cloudRun/createJobs/execute/onDeploy.d.ts +3 -0
- package/dist/deploy/cloudRun/createJobs/execute/onDeploy.js +115 -0
- package/dist/deploy/cloudRun/createJobs/execute/schedules.d.ts +3 -0
- package/dist/deploy/cloudRun/createJobs/execute/schedules.js +173 -0
- package/dist/deploy/cloudRun/createJobs/getCloudRunDeployScripts.d.ts +2 -2
- package/dist/deploy/cloudRun/createJobs/getCloudRunDeployScripts.js +13 -5
- package/dist/deploy/cloudRun/createJobs/getCloudRunStopScripts.d.ts +2 -2
- package/dist/deploy/cloudRun/createJobs/getCloudRunStopScripts.js +7 -3
- package/dist/deploy/cloudRun/createJobs/healthCheck.d.ts +5 -0
- package/dist/deploy/cloudRun/createJobs/healthCheck.js +82 -0
- package/dist/deploy/cloudRun/createJobs/index.d.ts +2 -2
- package/dist/deploy/cloudRun/createJobs/index.js +26 -12
- 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 +25 -13
- package/dist/deploy/cloudRun/utils/cloudRunExecutionUrl.d.ts +10 -0
- package/dist/deploy/cloudRun/utils/cloudRunExecutionUrl.js +16 -0
- package/dist/deploy/cloudRun/utils/createArgsString.d.ts +2 -2
- package/dist/deploy/cloudRun/utils/createArgsString.js +3 -1
- package/dist/deploy/cloudRun/utils/database.d.ts +25 -4
- package/dist/deploy/cloudRun/utils/database.js +49 -15
- package/dist/deploy/cloudRun/utils/gcloudServiceAccountLoginCommands.d.ts +2 -2
- package/dist/deploy/cloudRun/utils/gcloudServiceAccountLoginCommands.js +3 -1
- package/dist/deploy/cloudRun/utils/getJobOrServiceArgs.d.ts +2 -0
- package/dist/deploy/cloudRun/utils/getJobOrServiceArgs.js +12 -0
- package/dist/deploy/cloudRun/utils/getServiceName.d.ts +2 -2
- package/dist/deploy/cloudRun/utils/getServiceName.js +3 -1
- package/dist/deploy/cloudRun/utils/jobName.d.ts +6 -1
- package/dist/deploy/cloudRun/utils/jobName.js +18 -4
- package/dist/deploy/cloudRun/utils/removeFirstLinesFromCommandOutput.js +3 -1
- 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 +6 -6
- 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 +17 -19
- 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 +8 -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 +1 -1
- package/dist/deploy/types/dockerTag.js +3 -1
- package/dist/deploy/types/googleCloudRun.d.ts +291 -16
- package/dist/deploy/types/googleCloudRun.js +28 -1
- package/dist/deploy/types/index.d.ts +8 -7
- package/dist/deploy/types/index.js +21 -10
- package/dist/deploy/types/kubernetes.d.ts +21 -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 +305 -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 +264 -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 +4 -2
- package/dist/pipeline/packageManager.js +56 -19
- package/dist/pipeline/yarn/yarnUtils.d.ts +2 -2
- package/dist/pipeline/yarn/yarnUtils.js +18 -15
- package/dist/rules/index.d.ts +10 -3
- package/dist/rules/index.js +35 -17
- 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 +54 -36
- package/dist/types/config.js +5 -2
- package/dist/types/context.d.ts +123 -38
- 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 +3 -1
- package/dist/types/index.js +16 -8
- 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 -48
- 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-health-check-defaults.test.ts.snap +1394 -0
- package/examples/__snapshots__/cloud-run-health-check-only-startup.test.ts.snap +1394 -0
- package/examples/__snapshots__/cloud-run-health-check.test.ts.snap +1394 -0
- package/examples/__snapshots__/cloud-run-http2.test.ts.snap +1394 -0
- package/examples/__snapshots__/cloud-run-llama.test.ts.snap +624 -0
- package/examples/__snapshots__/cloud-run-memory-limit.test.ts.snap +1394 -0
- package/examples/__snapshots__/cloud-run-meteor-with-worker.test.ts.snap +1394 -0
- package/examples/__snapshots__/cloud-run-nextjs.test.ts.snap +1410 -0
- package/examples/__snapshots__/cloud-run-no-cpu-throttling.test.ts.snap +1394 -0
- package/examples/__snapshots__/cloud-run-no-service.test.ts.snap +1502 -0
- package/examples/__snapshots__/cloud-run-non-public.test.ts.snap +1394 -0
- package/examples/__snapshots__/cloud-run-post-stop-job.test.ts.snap +1412 -0
- package/examples/__snapshots__/cloud-run-service-custom-vpc-connector.test.ts.snap +1462 -0
- package/examples/__snapshots__/cloud-run-service-custom-vpc.test.ts.snap +1462 -0
- package/examples/__snapshots__/cloud-run-service-gen2.test.ts.snap +1394 -0
- package/examples/__snapshots__/cloud-run-service-increase-timout.test.ts.snap +1394 -0
- package/examples/__snapshots__/cloud-run-service-with-volumes.test.ts.snap +1466 -0
- package/examples/__snapshots__/cloud-run-storybook.test.ts.snap +1284 -0
- package/examples/__snapshots__/cloud-run-with-gpu.test.ts.snap +1394 -0
- package/examples/__snapshots__/cloud-run-with-ngnix.test.ts.snap +1394 -0
- package/examples/__snapshots__/cloud-run-with-sql-legacy-jobs.test.ts.snap +1709 -0
- package/examples/__snapshots__/cloud-run-with-sql-multiple-dbs.test.ts.snap +4515 -0
- package/examples/__snapshots__/cloud-run-with-sql-reuse-db.test.ts.snap +2950 -0
- package/examples/__snapshots__/cloud-run-with-sql.test.ts.snap +1772 -0
- package/examples/__snapshots__/cloud-run-with-worker.test.ts.snap +1402 -0
- package/examples/__snapshots__/custom-build-job-with-tests.test.ts.snap +1261 -0
- package/examples/__snapshots__/custom-build-job.test.ts.snap +1156 -0
- package/examples/__snapshots__/custom-deploy.test.ts.snap +1059 -0
- package/examples/__snapshots__/custom-envs.test.ts.snap +786 -0
- package/examples/__snapshots__/custom-sbom-java.test.ts.snap +1152 -0
- package/examples/__snapshots__/custom-verify-job.test.ts.snap +1606 -0
- package/examples/__snapshots__/git-submodule.test.ts.snap +1395 -0
- package/examples/__snapshots__/kubernetes-application-customization.test.ts.snap +1713 -0
- package/examples/__snapshots__/kubernetes-with-cloud-sql.test.ts.snap +1733 -0
- package/examples/__snapshots__/kubernetes-with-jobs.test.ts.snap +3265 -0
- package/examples/__snapshots__/kubernetes-with-mongodb.test.ts.snap +1837 -0
- package/examples/__snapshots__/local-dot-env.test.ts.snap +1318 -0
- package/examples/__snapshots__/meteor-kubernetes.test.ts.snap +1790 -0
- package/examples/__snapshots__/multiline-var.test.ts.snap +5585 -0
- package/examples/__snapshots__/native-app.test.ts.snap +2210 -0
- package/examples/__snapshots__/node-build-with-custom-image.test.ts.snap +1394 -0
- package/examples/__snapshots__/node-build-with-docker-additions.test.ts.snap +1402 -0
- package/examples/__snapshots__/override-secrets.test.ts.snap +1419 -0
- package/examples/__snapshots__/rails-k8s-with-worker-dockerfile.test.ts.snap +1464 -0
- package/examples/__snapshots__/rails-k8s-with-worker.test.ts.snap +1444 -0
- package/examples/__snapshots__/referencing-other-vars.test.ts.snap +4645 -0
- package/examples/__snapshots__/wait-for-other-deploy.test.ts.snap +1424 -0
- package/examples/__snapshots__/workspace-api-www-turbo-cache.test.ts.snap +2298 -0
- package/examples/__snapshots__/workspace-api-www.test.ts.snap +2290 -0
- package/examples/__utils__/helpers.ts +9 -12
- package/examples/cloud-run-health-check-defaults.test.ts +11 -0
- package/examples/cloud-run-health-check-defaults.ts +28 -0
- package/examples/cloud-run-health-check-only-startup.test.ts +11 -0
- package/examples/cloud-run-health-check-only-startup.ts +38 -0
- package/examples/cloud-run-health-check.test.ts +11 -0
- package/examples/cloud-run-health-check.ts +45 -0
- package/examples/cloud-run-http2.test.ts +11 -0
- package/examples/cloud-run-http2.ts +29 -0
- package/examples/cloud-run-llama.test.ts +11 -0
- package/examples/cloud-run-llama.ts +40 -0
- package/examples/cloud-run-memory-limit.test.ts +11 -0
- package/examples/cloud-run-memory-limit.ts +12 -7
- package/examples/cloud-run-meteor-with-worker.test.ts +11 -0
- package/examples/cloud-run-meteor-with-worker.ts +13 -7
- 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 +8 -6
- package/examples/cloud-run-no-service.test.ts +11 -0
- package/examples/cloud-run-no-service.ts +39 -0
- package/examples/cloud-run-non-public.test.ts +11 -0
- package/examples/cloud-run-non-public.ts +7 -6
- package/examples/cloud-run-post-stop-job.test.ts +11 -0
- package/examples/cloud-run-post-stop-job.ts +15 -6
- package/examples/cloud-run-service-custom-vpc-connector.test.ts +11 -0
- package/examples/cloud-run-service-custom-vpc-connector.ts +37 -0
- package/examples/cloud-run-service-custom-vpc.test.ts +11 -0
- package/examples/cloud-run-service-custom-vpc.ts +39 -0
- package/examples/cloud-run-service-gen2.test.ts +11 -0
- package/examples/cloud-run-service-gen2.ts +8 -6
- 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 +64 -0
- package/examples/cloud-run-storybook.test.ts +11 -0
- package/examples/cloud-run-storybook.ts +33 -0
- package/examples/cloud-run-with-gpu.test.ts +11 -0
- package/examples/cloud-run-with-gpu.ts +30 -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-legacy-jobs.test.ts +11 -0
- package/examples/cloud-run-with-sql-legacy-jobs.ts +49 -0
- package/examples/cloud-run-with-sql-multiple-dbs.test.ts +11 -0
- package/examples/cloud-run-with-sql-multiple-dbs.ts +87 -0
- package/examples/cloud-run-with-sql-reuse-db.test.ts +11 -0
- package/examples/cloud-run-with-sql-reuse-db.ts +7 -6
- package/examples/cloud-run-with-sql.test.ts +11 -0
- package/examples/cloud-run-with-sql.ts +45 -24
- package/examples/cloud-run-with-worker.test.ts +11 -0
- package/examples/cloud-run-with-worker.ts +8 -6
- package/examples/custom-build-job-with-tests.test.ts +11 -0
- package/examples/custom-build-job-with-tests.ts +7 -6
- package/examples/custom-build-job.test.ts +11 -0
- package/examples/custom-build-job.ts +7 -6
- package/examples/custom-deploy.test.ts +11 -0
- package/examples/custom-deploy.ts +22 -14
- package/examples/custom-envs.test.ts +11 -0
- package/examples/custom-envs.ts +7 -6
- package/examples/custom-sbom-java.test.ts +11 -0
- package/examples/custom-sbom-java.ts +12 -8
- package/examples/custom-verify-job.test.ts +11 -0
- package/examples/custom-verify-job.ts +65 -0
- 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 +9 -6
- package/examples/kubernetes-with-cloud-sql.test.ts +11 -0
- package/examples/kubernetes-with-cloud-sql.ts +9 -6
- package/examples/kubernetes-with-jobs.test.ts +11 -0
- package/examples/kubernetes-with-jobs.ts +9 -6
- package/examples/kubernetes-with-mongodb.test.ts +11 -0
- package/examples/kubernetes-with-mongodb.ts +9 -6
- 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 +6 -7
- 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 +24 -19
- package/examples/node-build-with-custom-image.test.ts +11 -0
- package/examples/node-build-with-custom-image.ts +7 -6
- package/examples/node-build-with-docker-additions.test.ts +11 -0
- package/examples/node-build-with-docker-additions.ts +7 -6
- package/examples/override-secrets.test.ts +11 -0
- package/examples/override-secrets.ts +44 -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 +13 -13
- 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 +6 -5
- 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 +23 -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 +164 -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 +63 -0
- package/src/build/base/__tests__/createArtifactsConfig.test.ts +3 -3
- package/src/build/base/constants.ts +1 -1
- 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 +40 -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 +29 -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 +4 -2
- package/src/build/custom/testJob.ts +24 -21
- package/src/build/docker.ts +110 -49
- package/src/build/index.ts +45 -11
- package/src/build/node/buildJob.ts +68 -69
- package/src/build/node/cache.ts +28 -34
- package/src/build/node/constants.ts +2 -2
- package/src/build/node/index.ts +13 -4
- package/src/build/node/meteor.ts +19 -24
- package/src/build/node/testJob.ts +44 -25
- package/src/build/node/yarn.ts +22 -15
- package/src/build/rails/build.ts +15 -9
- package/src/build/rails/index.ts +4 -2
- package/src/build/rails/test.ts +41 -12
- package/src/build/sbom.ts +21 -11
- package/src/build/types.ts +198 -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 +148 -0
- package/src/context/createWorkspaceContext.ts +56 -0
- package/src/context/getBuildInfoVariables.ts +36 -0
- package/src/context/getEnvConfig.ts +25 -5
- 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 +101 -83
- package/src/context/getLabels.ts +8 -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 -1
- package/src/deploy/cloudRun/artifactsRegistry.ts +32 -28
- package/src/deploy/cloudRun/cleanup.ts +5 -5
- package/src/deploy/cloudRun/cloudRunRevisions.ts +9 -11
- package/src/deploy/cloudRun/createJobs/cloudRunJobs.ts +71 -153
- package/src/deploy/cloudRun/createJobs/cloudRunServices.ts +65 -26
- package/src/deploy/cloudRun/createJobs/common.ts +7 -7
- package/src/deploy/cloudRun/createJobs/constants.ts +1 -0
- package/src/deploy/cloudRun/createJobs/execute/onDeploy.ts +102 -0
- package/src/deploy/cloudRun/createJobs/execute/schedules.ts +186 -0
- package/src/deploy/cloudRun/createJobs/getCloudRunDeployScripts.ts +27 -16
- package/src/deploy/cloudRun/createJobs/getCloudRunStopScripts.ts +9 -11
- package/src/deploy/cloudRun/createJobs/healthCheck.ts +64 -0
- package/src/deploy/cloudRun/createJobs/index.ts +20 -14
- package/src/deploy/cloudRun/createJobs/volumes.ts +23 -0
- package/src/deploy/cloudRun/index.ts +94 -60
- package/src/deploy/cloudRun/utils/cloudRunExecutionUrl.ts +20 -0
- package/src/deploy/cloudRun/utils/createArgsString.ts +6 -2
- package/src/deploy/cloudRun/utils/database.ts +116 -9
- package/src/deploy/cloudRun/utils/gcloudServiceAccountLoginCommands.ts +5 -3
- package/src/deploy/cloudRun/utils/getJobOrServiceArgs.ts +18 -0
- package/src/deploy/cloudRun/utils/getServiceName.ts +2 -2
- package/src/deploy/cloudRun/utils/jobName.ts +22 -2
- package/src/deploy/cloudRun/utils/removeFirstLinesFromCommandOutput.ts +1 -1
- 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 +6 -7
- 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 +25 -20
- package/src/deploy/kubernetes/mongodb.ts +15 -15
- package/src/deploy/sbom.ts +20 -10
- package/src/deploy/types/base.ts +3 -3
- package/src/deploy/types/custom.ts +3 -7
- package/src/deploy/types/googleCloudRun.ts +359 -2
- package/src/deploy/types/index.ts +9 -2
- package/src/deploy/types/kubernetes.ts +1 -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 +17 -37
- package/src/pipeline/createJobsForWorkspace.ts +12 -0
- package/src/pipeline/createMainPipeline.ts +118 -0
- package/src/pipeline/generatePipelineFiles.ts +100 -0
- package/src/pipeline/getPipelineStages.ts +23 -0
- package/src/pipeline/gitlab/createGitlabJobs.ts +398 -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 +42 -18
- package/src/pipeline/yarn/yarnUtils.ts +15 -12
- package/src/rules/index.ts +41 -18
- package/src/runner/index.ts +0 -1
- package/src/types/config.ts +62 -23
- package/src/types/context.ts +167 -36
- 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 +2 -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 -34559
- 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/createJobs/variables.d.ts +0 -5
- package/dist/deploy/cloudRun/createJobs/variables.js +0 -19
- 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 -1839
- package/examples/__snapshots__/cloud-run-meteor-with-worker.ts.snap +0 -1807
- package/examples/__snapshots__/cloud-run-no-cpu-throttling.ts.snap +0 -1839
- package/examples/__snapshots__/cloud-run-non-public.ts.snap +0 -1839
- package/examples/__snapshots__/cloud-run-post-stop-job.ts.snap +0 -1849
- package/examples/__snapshots__/cloud-run-service-gen2.ts.snap +0 -1839
- package/examples/__snapshots__/cloud-run-with-sql-reuse-db.ts.snap +0 -3647
- package/examples/__snapshots__/cloud-run-with-sql.ts.snap +0 -3658
- package/examples/__snapshots__/cloud-run-with-worker.ts.snap +0 -1847
- package/examples/__snapshots__/custom-build-job-with-tests.ts.snap +0 -1663
- package/examples/__snapshots__/custom-build-job.ts.snap +0 -1375
- package/examples/__snapshots__/custom-deploy.ts.snap +0 -1625
- package/examples/__snapshots__/custom-envs.ts.snap +0 -1127
- package/examples/__snapshots__/custom-sbom-java.ts.snap +0 -1383
- package/examples/__snapshots__/kubernetes-application-customization.ts.snap +0 -2573
- package/examples/__snapshots__/kubernetes-with-cloud-sql-legacy.ts.snap +0 -2533
- package/examples/__snapshots__/kubernetes-with-cloud-sql.ts.snap +0 -2545
- package/examples/__snapshots__/kubernetes-with-jobs.ts.snap +0 -4660
- package/examples/__snapshots__/kubernetes-with-mongodb.ts.snap +0 -2737
- package/examples/__snapshots__/meteor-kubernetes.ts.snap +0 -2658
- package/examples/__snapshots__/native-app.ts.snap +0 -3007
- package/examples/__snapshots__/node-build-with-custom-image.ts.snap +0 -1839
- package/examples/__snapshots__/node-build-with-docker-additions.ts.snap +0 -1839
- package/examples/__snapshots__/rails-k8s-with-worker.ts.snap +0 -4291
- package/examples/__snapshots__/wait-for-other-deploy.ts.snap +0 -2049
- 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/createJobs/variables.ts +0 -21
- 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 -46
- /package/dist/{context/__tests__/resolveReferences.test.d.ts → config/__tests__/getAllEnvs.test.d.ts} +0 -0
package/src/deploy/types/base.ts
CHANGED
|
@@ -26,11 +26,11 @@ export type DeployConfigBase = {
|
|
|
26
26
|
jobVars?: EnvVars;
|
|
27
27
|
|
|
28
28
|
/**
|
|
29
|
-
* additional
|
|
29
|
+
* additional vars only for the runner.
|
|
30
|
+
* Also if you use services: that require env vars, you need to set them here.
|
|
30
31
|
*
|
|
31
|
-
* @deprecated use deploy.jobVars for deploy job specific variables
|
|
32
32
|
*/
|
|
33
|
-
|
|
33
|
+
runnerVariables?: Record<string, string>;
|
|
34
34
|
};
|
|
35
35
|
|
|
36
36
|
export type AllowUnknownProps<T extends Record<string, unknown>> = T &
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
+
import type { WithCacheConfig } from "../../build";
|
|
1
2
|
import type { GitlabJobImage } from "../../types";
|
|
2
|
-
import type { CatladderJob } from "../../types/jobs";
|
|
3
3
|
import type { DeployConfigBase } from "./base";
|
|
4
4
|
|
|
5
5
|
export type DeployConfigCustom = {
|
|
@@ -28,9 +28,5 @@ export type DeployConfigCustom = {
|
|
|
28
28
|
* image to use
|
|
29
29
|
*/
|
|
30
30
|
jobImage?: GitlabJobImage;
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
* customize cache for the job
|
|
34
|
-
*/
|
|
35
|
-
jobCache?: CatladderJob["cache"];
|
|
36
|
-
} & DeployConfigBase;
|
|
31
|
+
} & DeployConfigBase &
|
|
32
|
+
WithCacheConfig;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { DBVariablesMode } from "../cloudRun/utils/database";
|
|
1
2
|
import type { DeployConfigBase } from "./base";
|
|
2
3
|
|
|
3
4
|
export type Gcloudregion =
|
|
@@ -62,6 +63,31 @@ export type DeployConfigCloudRunCloudSql = {
|
|
|
62
63
|
*/
|
|
63
64
|
deleteDatabaseOnStop?: boolean;
|
|
64
65
|
|
|
66
|
+
/**
|
|
67
|
+
* format of the `DATABASE_URL` environment variable
|
|
68
|
+
*
|
|
69
|
+
* the options are:
|
|
70
|
+
* - prisma: adds [required but ignored hostname](https://www.prisma.io/docs/orm/overview/databases/postgresql#connecting-via-sockets):
|
|
71
|
+
* `postgresql://$DB_USER:$DB_PASSWORD@localhost/$DB_NAME?host=/cloudsql/$CLOUD_SQL_INSTANCE_CONNECTION_NAME`
|
|
72
|
+
* - rails: percent-encodes the socket in the host part
|
|
73
|
+
* `postgresql://$DB_USER:$DB_PASSWORD@%2Fcloudsql%2FprojectId%3Aregion%3Ainstancename/$DB_NAME?`
|
|
74
|
+
* - jdbc: for use with Google Cloud SQL Connector for Java
|
|
75
|
+
* `jdbc:postgresql:///$DB_NAME?cloudSqlInstance=$CLOUD_SQL_INSTANCE_CONNECTION_NAME&socketFactory=com.google.cloud.sql.postgres.SocketFactory&user=$DB_USER&password=$DB_PASSWORD`
|
|
76
|
+
*
|
|
77
|
+
* defaults to prisma
|
|
78
|
+
*/
|
|
79
|
+
dbConnectionStringFormat?: "prisma" | "rails" | "jdbc";
|
|
80
|
+
|
|
81
|
+
/**
|
|
82
|
+
* controls how variables in the connection string are handled
|
|
83
|
+
*
|
|
84
|
+
* - environment: variables like $DB_USER will be kept as environment variables to be replaced at runtime (default)
|
|
85
|
+
* - embedded: variables will be replaced with their actual values in the connection string
|
|
86
|
+
*
|
|
87
|
+
* @default "environment"
|
|
88
|
+
*/
|
|
89
|
+
dbConnectionStringVariablesMode?: DBVariablesMode;
|
|
90
|
+
|
|
65
91
|
/**
|
|
66
92
|
* add additional query params to the database connection string
|
|
67
93
|
*/
|
|
@@ -74,6 +100,7 @@ export type DeployConfigCloudRunCloudSql = {
|
|
|
74
100
|
};
|
|
75
101
|
|
|
76
102
|
type Memory = `${number}${"M" | "G" | "Mi" | "Gi"}`;
|
|
103
|
+
type Cpu = 1 | 2 | 4 | 6 | 8;
|
|
77
104
|
export type DeployConfigCloudRunService = {
|
|
78
105
|
/**
|
|
79
106
|
* command / entrypoint, fallsback to buildConfig.startcommand
|
|
@@ -113,11 +140,25 @@ export type DeployConfigCloudRunService = {
|
|
|
113
140
|
*/
|
|
114
141
|
ingress?: "all" | "internal" | "internal-and-cloud-load-balancing";
|
|
115
142
|
|
|
143
|
+
/**
|
|
144
|
+
* CPU limit.
|
|
145
|
+
*/
|
|
146
|
+
cpu?: Cpu;
|
|
147
|
+
|
|
116
148
|
/**
|
|
117
149
|
* memory limit. Defaults to 512MB
|
|
118
150
|
*/
|
|
119
151
|
memory?: Memory;
|
|
120
152
|
|
|
153
|
+
/**
|
|
154
|
+
* timeout of the service, defaults to 5 minutes.
|
|
155
|
+
*
|
|
156
|
+
* you can specify something like 10m30s. if its just a number, it will be interpreted as seconds
|
|
157
|
+
*
|
|
158
|
+
* max supported is 60min
|
|
159
|
+
*/
|
|
160
|
+
timeout?: string;
|
|
161
|
+
|
|
121
162
|
/**
|
|
122
163
|
*
|
|
123
164
|
* set the execution environment.
|
|
@@ -127,6 +168,161 @@ export type DeployConfigCloudRunService = {
|
|
|
127
168
|
* defaults to gen1 according to gcloud
|
|
128
169
|
*/
|
|
129
170
|
executionEnvironment?: "gen2" | "gen1";
|
|
171
|
+
|
|
172
|
+
/**
|
|
173
|
+
* Use http2 end-to-end. See https://cloud.google.com/run/docs/configuring/http2
|
|
174
|
+
*
|
|
175
|
+
* Defaults to false.
|
|
176
|
+
*
|
|
177
|
+
* Your service needs to be able to handle http2 requests.
|
|
178
|
+
* Its recommended to use http2 without tls, since cloud run handles the encryption for you. (so called "h2c" (http2 cleartext))
|
|
179
|
+
*
|
|
180
|
+
*/
|
|
181
|
+
http2?: boolean;
|
|
182
|
+
|
|
183
|
+
/**
|
|
184
|
+
* Number of GPUs to use. Defaults to 0
|
|
185
|
+
*
|
|
186
|
+
* This is a preview feature and not all regions support it.
|
|
187
|
+
*/
|
|
188
|
+
gpu?: number;
|
|
189
|
+
|
|
190
|
+
/**
|
|
191
|
+
* gpu type to use. Refer to https://cloud.google.com/run/docs/configuring/services/gpu#gcloud for defaults
|
|
192
|
+
*/
|
|
193
|
+
gpuType?: string;
|
|
194
|
+
|
|
195
|
+
/**
|
|
196
|
+
* the image to use. Defaults to the image from the build.
|
|
197
|
+
*
|
|
198
|
+
* If you specify an image, you usually want to disable the build by setting build: false
|
|
199
|
+
*/
|
|
200
|
+
image?: string;
|
|
201
|
+
/**
|
|
202
|
+
* args to pass to the command
|
|
203
|
+
*/
|
|
204
|
+
args?: string[];
|
|
205
|
+
|
|
206
|
+
/**
|
|
207
|
+
* Configuration of the health check.
|
|
208
|
+
*
|
|
209
|
+
* When set to `true`, startup and liveness probes will be
|
|
210
|
+
* configured to `defaultStartupProbe` and `defaultLivenessProbe`.
|
|
211
|
+
*
|
|
212
|
+
* When not set, default Cloud Run's health check
|
|
213
|
+
* configuration is used (startup TCP probe and no liveness probe).
|
|
214
|
+
*/
|
|
215
|
+
healthCheck?:
|
|
216
|
+
| true
|
|
217
|
+
| {
|
|
218
|
+
/**
|
|
219
|
+
* Startup probe configuration.
|
|
220
|
+
*/
|
|
221
|
+
startupProbe: DeployConfigCloudRunProbe;
|
|
222
|
+
|
|
223
|
+
/**
|
|
224
|
+
* Liveness probe configuration.
|
|
225
|
+
* `false` disables the liveness probe.
|
|
226
|
+
*/
|
|
227
|
+
livenessProbe: false | DeployConfigCloudRunProbe;
|
|
228
|
+
};
|
|
229
|
+
} & DeployConfigCloudRunWithVolumes &
|
|
230
|
+
DeployConfigCloudRunNetworkConfig;
|
|
231
|
+
|
|
232
|
+
export const defaultStartupProbe: DeployConfigCloudRunProbe = {
|
|
233
|
+
type: "http1",
|
|
234
|
+
path: "/__health",
|
|
235
|
+
|
|
236
|
+
initialDelaySeconds: 5,
|
|
237
|
+
timeoutSeconds: 1,
|
|
238
|
+
periodSeconds: 30,
|
|
239
|
+
failureThreshold: 3,
|
|
240
|
+
};
|
|
241
|
+
|
|
242
|
+
export const defaultLivenessProbe: DeployConfigCloudRunProbe = {
|
|
243
|
+
...defaultStartupProbe,
|
|
244
|
+
|
|
245
|
+
initialDelaySeconds: 0,
|
|
246
|
+
timeoutSeconds: 10,
|
|
247
|
+
periodSeconds: 30,
|
|
248
|
+
failureThreshold: 3,
|
|
249
|
+
};
|
|
250
|
+
|
|
251
|
+
export type DeployConfigCloudRunProbe =
|
|
252
|
+
| DeployConfigCloudRunHttp1Probe
|
|
253
|
+
| DeployConfigCloudRunTcpProbe;
|
|
254
|
+
|
|
255
|
+
export type DeployConfigCloudRunProbeShared = {
|
|
256
|
+
/**
|
|
257
|
+
* The period in seconds at which to perform the probe.
|
|
258
|
+
* For example 2 to perform the probe every 2 seconds.
|
|
259
|
+
* Specify a value **from 1 second to 240** seconds.
|
|
260
|
+
*/
|
|
261
|
+
periodSeconds: number;
|
|
262
|
+
|
|
263
|
+
/**
|
|
264
|
+
* The number of seconds to wait after the container has started before performing the first probe.
|
|
265
|
+
* Specify a value **from 0 seconds to 240** seconds.
|
|
266
|
+
*/
|
|
267
|
+
initialDelaySeconds: number;
|
|
268
|
+
|
|
269
|
+
/**
|
|
270
|
+
* The number of seconds to wait until the probe times out.
|
|
271
|
+
* This value cannot exceed the value specified for `period`.
|
|
272
|
+
* Specify a value **from 1 to 240**.
|
|
273
|
+
*/
|
|
274
|
+
timeoutSeconds: number;
|
|
275
|
+
|
|
276
|
+
/**
|
|
277
|
+
* The number of times to retry the probe before shutting down the container.
|
|
278
|
+
*/
|
|
279
|
+
failureThreshold: number;
|
|
280
|
+
};
|
|
281
|
+
|
|
282
|
+
export type DeployConfigCloudRunTcpProbe = DeployConfigCloudRunProbeShared & {
|
|
283
|
+
/**
|
|
284
|
+
* Cloud Run makes a TCP connection to open the TCP Socket on the specified port.
|
|
285
|
+
* If Cloud Run is unable to establish a connection, it indicates a failure.
|
|
286
|
+
*/
|
|
287
|
+
type: "tcp";
|
|
288
|
+
};
|
|
289
|
+
|
|
290
|
+
export type DeployConfigCloudRunHttp1Probe = DeployConfigCloudRunProbeShared & {
|
|
291
|
+
/**
|
|
292
|
+
* **This will NOT work with http2 enabled services**
|
|
293
|
+
*
|
|
294
|
+
* Cloud Run makes an HTTP GET request to the service health check endpoint (for example, /ready).
|
|
295
|
+
* Any response between 200 and 400 is a success, everything else indicates failure.
|
|
296
|
+
*
|
|
297
|
+
* If a startup probe does not succeed within the specified time (failureThreshold * period), which cannot exceed 240 seconds, the container is shut down.
|
|
298
|
+
*
|
|
299
|
+
* If the HTTP startup probe succeeds within the specified time, and you have enabled liveness probe, the HTTP liveness probe is started.
|
|
300
|
+
*/
|
|
301
|
+
type: "http1";
|
|
302
|
+
|
|
303
|
+
/**
|
|
304
|
+
* the route path to check for health status of the service starting with a `/`.
|
|
305
|
+
*/
|
|
306
|
+
path: string;
|
|
307
|
+
};
|
|
308
|
+
|
|
309
|
+
export type DeployConfigCloudRunNetworkConfig = {
|
|
310
|
+
/* the vpc network, see https://cloud.google.com/sdk/gcloud/reference/run/deploy#--network */
|
|
311
|
+
network?: string;
|
|
312
|
+
|
|
313
|
+
/**
|
|
314
|
+
* vpc subnet to use, see https://cloud.google.com/sdk/gcloud/reference/run/deploy#--subnet
|
|
315
|
+
*/
|
|
316
|
+
subnet?: string;
|
|
317
|
+
/**
|
|
318
|
+
* vpc egress, see https://cloud.google.com/sdk/gcloud/reference/run/deploy#--vpc-egress
|
|
319
|
+
*/
|
|
320
|
+
vpcEgress?: "all-traffic" | "private-ranges-only";
|
|
321
|
+
|
|
322
|
+
/**
|
|
323
|
+
* vpc connector
|
|
324
|
+
*/
|
|
325
|
+
vpcConnector?: string;
|
|
130
326
|
};
|
|
131
327
|
|
|
132
328
|
export type DeployConfigCloudRunJobBase = {
|
|
@@ -135,11 +331,21 @@ export type DeployConfigCloudRunJobBase = {
|
|
|
135
331
|
*/
|
|
136
332
|
command: string | string[];
|
|
137
333
|
|
|
334
|
+
/**
|
|
335
|
+
* optional, specify args. Those get overwritten by job executions if specified there
|
|
336
|
+
*/
|
|
337
|
+
args?: string[];
|
|
338
|
+
|
|
138
339
|
/**
|
|
139
340
|
* custom image to use. Defaults to the image from the build
|
|
140
341
|
*/
|
|
141
342
|
image?: string;
|
|
142
343
|
|
|
344
|
+
/**
|
|
345
|
+
* CPU limit of the job.
|
|
346
|
+
*/
|
|
347
|
+
cpu?: Cpu;
|
|
348
|
+
|
|
143
349
|
/**
|
|
144
350
|
* memory limit of the job, defaults to 512Mi
|
|
145
351
|
*/
|
|
@@ -156,7 +362,13 @@ export type DeployConfigCloudRunJobBase = {
|
|
|
156
362
|
* number of tasks that may run concurrently, defaults to 1
|
|
157
363
|
*/
|
|
158
364
|
parallelism?: number;
|
|
159
|
-
|
|
365
|
+
|
|
366
|
+
/**
|
|
367
|
+
* max number of retries of the job. Defaults to 0
|
|
368
|
+
*/
|
|
369
|
+
maxRetries?: number;
|
|
370
|
+
} & DeployConfigCloudRunWithVolumes &
|
|
371
|
+
DeployConfigCloudRunNetworkConfig;
|
|
160
372
|
|
|
161
373
|
type Minute = string;
|
|
162
374
|
type Hour = string;
|
|
@@ -165,19 +377,47 @@ type DayOfWeek = string;
|
|
|
165
377
|
type Month = string;
|
|
166
378
|
export type DeployConfigCloudRunJobWithSchedule =
|
|
167
379
|
DeployConfigCloudRunJobBase & {
|
|
380
|
+
/**
|
|
381
|
+
* @deprecated use `execute` instead
|
|
382
|
+
*/
|
|
168
383
|
when: "schedule";
|
|
384
|
+
/**
|
|
385
|
+
* @deprecated use `run` instead
|
|
386
|
+
*/
|
|
169
387
|
schedule: `${Minute} ${Hour} ${DayOfMonth} ${Month} ${DayOfWeek}`;
|
|
170
388
|
/**
|
|
171
389
|
* Max number of retries of the cloud scheduler.
|
|
172
390
|
* Note: the task itself is never retried.
|
|
173
391
|
*
|
|
174
392
|
* defaults to 0 (no retries)
|
|
393
|
+
*
|
|
394
|
+
* @deprecated use `run` instead
|
|
175
395
|
*/
|
|
176
396
|
maxRetryAttempts?: 0 | 1 | 2 | 3 | 4 | 5;
|
|
177
397
|
};
|
|
178
398
|
|
|
179
399
|
export type DeployConfigCloudRunJobNormal = DeployConfigCloudRunJobBase & {
|
|
180
|
-
|
|
400
|
+
/**
|
|
401
|
+
* wait for completion of the job on preDeploy and postDeploy
|
|
402
|
+
*
|
|
403
|
+
* has no effect on preStop and postStop (which always wait for completion)
|
|
404
|
+
*
|
|
405
|
+
*
|
|
406
|
+
* @deprecated use `run` instead
|
|
407
|
+
*/
|
|
408
|
+
waitForCompletion?: boolean;
|
|
409
|
+
/**
|
|
410
|
+
* @deprecated use `run` instead
|
|
411
|
+
*/
|
|
412
|
+
when?: "manual" | "preDeploy" | "postDeploy" | "preStop" | "postStop";
|
|
413
|
+
};
|
|
414
|
+
|
|
415
|
+
export type DeployConfigCloudRunWithVolumes = {
|
|
416
|
+
/**
|
|
417
|
+
* adds volumes to the service. This is an experimental feature and requires beta gcloud.
|
|
418
|
+
* sets executionEnvironment to gen2 automatically, since that is required
|
|
419
|
+
*/
|
|
420
|
+
volumes?: DeployConfigCloudRunVolumes;
|
|
181
421
|
};
|
|
182
422
|
|
|
183
423
|
export type DeployConfigCloudRunJob =
|
|
@@ -222,4 +462,121 @@ export type DeployConfigCloudRun = {
|
|
|
222
462
|
* add cloudSql
|
|
223
463
|
*/
|
|
224
464
|
cloudSql?: DeployConfigCloudRunCloudSql | false;
|
|
465
|
+
|
|
466
|
+
/**
|
|
467
|
+
* execute jobs on deploy or execute jobs and http requests on a schedule
|
|
468
|
+
*/
|
|
469
|
+
execute?: Record<string, DeployConfigCloudRunExecute | null>;
|
|
470
|
+
|
|
471
|
+
debug?: boolean;
|
|
225
472
|
} & DeployConfigBase;
|
|
473
|
+
|
|
474
|
+
export type DeployConfigCloudRunVolumes = Record<
|
|
475
|
+
string,
|
|
476
|
+
DeployConfigCloudRunVolume
|
|
477
|
+
>;
|
|
478
|
+
|
|
479
|
+
export type DeployConfigCloudRunVolume = {
|
|
480
|
+
type: "cloud-storage";
|
|
481
|
+
bucket: string;
|
|
482
|
+
mountPath: string;
|
|
483
|
+
readonly?: boolean;
|
|
484
|
+
};
|
|
485
|
+
|
|
486
|
+
export type DeployConfigCloudRunExecuteJobBase = {
|
|
487
|
+
/**
|
|
488
|
+
* set to "job" to run a cloud run job
|
|
489
|
+
*/
|
|
490
|
+
type: "job";
|
|
491
|
+
/**
|
|
492
|
+
* the cloud run job to run
|
|
493
|
+
*/
|
|
494
|
+
job: string;
|
|
495
|
+
|
|
496
|
+
/**
|
|
497
|
+
* additional args to pass to the job
|
|
498
|
+
*/
|
|
499
|
+
args?: string[];
|
|
500
|
+
};
|
|
501
|
+
|
|
502
|
+
type WithSchedule = {
|
|
503
|
+
/**
|
|
504
|
+
* run the job on a schedule
|
|
505
|
+
*/
|
|
506
|
+
when: "schedule";
|
|
507
|
+
/**
|
|
508
|
+
* the cron schedule. See https://crontab.guru/
|
|
509
|
+
*/
|
|
510
|
+
schedule: `${Minute} ${Hour} ${DayOfMonth} ${Month} ${DayOfWeek}`;
|
|
511
|
+
|
|
512
|
+
/**
|
|
513
|
+
* Max number of retries of the cloud scheduler.
|
|
514
|
+
* Note: the task itself is never retried.
|
|
515
|
+
*
|
|
516
|
+
* defaults to 0 (no retries)
|
|
517
|
+
*/
|
|
518
|
+
maxRetryAttempts?: 0 | 1 | 2 | 3 | 4 | 5;
|
|
519
|
+
};
|
|
520
|
+
|
|
521
|
+
export type DeployConfigCloudRunExecuteJobScheduled =
|
|
522
|
+
DeployConfigCloudRunExecuteJobBase & WithSchedule;
|
|
523
|
+
|
|
524
|
+
export type DeployConfigCloudRunExecuteOnDeploy =
|
|
525
|
+
DeployConfigCloudRunExecuteJobBase &
|
|
526
|
+
(
|
|
527
|
+
| {
|
|
528
|
+
/**
|
|
529
|
+
* run the job before or after the deploy
|
|
530
|
+
*/
|
|
531
|
+
when: "preDeploy" | "postDeploy";
|
|
532
|
+
/**
|
|
533
|
+
* whether to wait for completion of the job
|
|
534
|
+
*/
|
|
535
|
+
waitForCompletion?: boolean;
|
|
536
|
+
}
|
|
537
|
+
| {
|
|
538
|
+
/**
|
|
539
|
+
* run the job before or after the environment is stopped
|
|
540
|
+
*/
|
|
541
|
+
when: "preStop" | "postStop";
|
|
542
|
+
}
|
|
543
|
+
);
|
|
544
|
+
|
|
545
|
+
export type DeployConfigCloudRunExecuteJob =
|
|
546
|
+
| DeployConfigCloudRunExecuteJobScheduled
|
|
547
|
+
| DeployConfigCloudRunExecuteOnDeploy;
|
|
548
|
+
|
|
549
|
+
export type DeployConfigCloudRunExecuteHttp = {
|
|
550
|
+
/**
|
|
551
|
+
* set to "http" to run a http request
|
|
552
|
+
*/
|
|
553
|
+
type: "http";
|
|
554
|
+
/**
|
|
555
|
+
* the url to call
|
|
556
|
+
*/
|
|
557
|
+
url: string;
|
|
558
|
+
|
|
559
|
+
/**
|
|
560
|
+
* the http-method to use. Defaults to "POST" (as specified by google cloud scheduler)
|
|
561
|
+
*/
|
|
562
|
+
method?: "GET" | "POST" | "PUT" | "DELETE" | "PATCH";
|
|
563
|
+
|
|
564
|
+
/**
|
|
565
|
+
* the body to send
|
|
566
|
+
*/
|
|
567
|
+
body?: string;
|
|
568
|
+
|
|
569
|
+
/**
|
|
570
|
+
* the headers to send
|
|
571
|
+
*/
|
|
572
|
+
headers?: Record<string, string>;
|
|
573
|
+
} & WithSchedule;
|
|
574
|
+
|
|
575
|
+
export type DeployConfigCloudRunExecute =
|
|
576
|
+
| DeployConfigCloudRunExecuteJob
|
|
577
|
+
| DeployConfigCloudRunExecuteHttp;
|
|
578
|
+
|
|
579
|
+
export type DeployConfigCloudRunExecuteWithSchedule = Extract<
|
|
580
|
+
DeployConfigCloudRunExecute,
|
|
581
|
+
WithSchedule
|
|
582
|
+
>;
|
|
@@ -21,8 +21,15 @@ 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
|
+
};
|
|
29
|
+
|
|
30
|
+
export const getDeployConfigType = (
|
|
31
|
+
t: DeployConfig | false | null | undefined,
|
|
32
|
+
) => {
|
|
33
|
+
if (!t) return undefined;
|
|
34
|
+
return t.type;
|
|
28
35
|
};
|
|
@@ -164,33 +164,6 @@ export type DeployConfigMongodbReplicaset = {
|
|
|
164
164
|
export type DeployConfigMongodb = DeployConfigMongodbBase &
|
|
165
165
|
(DeployConfigMongodbStandalone | DeployConfigMongodbReplicaset);
|
|
166
166
|
|
|
167
|
-
/**
|
|
168
|
-
* @deprecated use config with instanceConnectionName
|
|
169
|
-
*/
|
|
170
|
-
type DeployConfigKubernetesValuesCloudSQLLegacy = {
|
|
171
|
-
enabled: boolean;
|
|
172
|
-
/**
|
|
173
|
-
* @deprecated use config with instanceConnectionName
|
|
174
|
-
*/
|
|
175
|
-
instanceId?: string;
|
|
176
|
-
/**
|
|
177
|
-
* @deprecated use config with instanceConnectionName
|
|
178
|
-
*/
|
|
179
|
-
projectId?: string;
|
|
180
|
-
/**
|
|
181
|
-
* @deprecated use config with instanceConnectionName
|
|
182
|
-
*/
|
|
183
|
-
region?: string;
|
|
184
|
-
/**
|
|
185
|
-
* @deprecated use type "unmanaged".
|
|
186
|
-
*
|
|
187
|
-
* Be aware that "unmanaged" is not fully backward compatible with "legacy".
|
|
188
|
-
*
|
|
189
|
-
*
|
|
190
|
-
*/
|
|
191
|
-
type?: "legacy";
|
|
192
|
-
};
|
|
193
|
-
|
|
194
167
|
export type DeployConfigKubernetesValuesCloudSQLUnmanaged = {
|
|
195
168
|
enabled: boolean;
|
|
196
169
|
instanceConnectionName: string;
|
|
@@ -220,8 +193,7 @@ export type DeployConfigKubernetesValuesCloudSQLUnmanaged = {
|
|
|
220
193
|
dbBaseName?: string;
|
|
221
194
|
};
|
|
222
195
|
export type DeployConfigKubernetesValuesCloudSQL =
|
|
223
|
-
|
|
224
|
-
| DeployConfigKubernetesValuesCloudSQLUnmanaged;
|
|
196
|
+
DeployConfigKubernetesValuesCloudSQLUnmanaged;
|
|
225
197
|
export type DeployConfigKubernetesValues = AllowUnknownProps<{
|
|
226
198
|
/**
|
|
227
199
|
* enable cloudsql db. Currently you have to manually set it up
|
|
@@ -358,13 +330,6 @@ export type DeployConfigKubernetesValues = AllowUnknownProps<{
|
|
|
358
330
|
mapServiceUrlToEnv?: {
|
|
359
331
|
[envVar: string]: string;
|
|
360
332
|
};
|
|
361
|
-
/**
|
|
362
|
-
* Mount secrets as files in the filesystem.
|
|
363
|
-
* These secrets are still available as env vars, but will contain the path of the file instead
|
|
364
|
-
*
|
|
365
|
-
* @deprecated this will be removed in the future, because its very niche and not used
|
|
366
|
-
*/
|
|
367
|
-
secretsAsFile?: string[];
|
|
368
333
|
}>;
|
|
369
334
|
|
|
370
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
|
+
`;
|