@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/README.md
CHANGED
|
@@ -1,3 +1,17 @@
|
|
|
1
1
|
## @catladder/pipeline 🐱 🔧
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Panter workflow for cloud CI/CD and DevOps.
|
|
4
|
+
|
|
5
|
+
**It just works™**
|
|
6
|
+
|
|
7
|
+
## Getting started
|
|
8
|
+
|
|
9
|
+
[See the documentation][docs-getting-started].
|
|
10
|
+
|
|
11
|
+
[docs-getting-started]: https://catladder.git.panter.biz/catladder/docs/getting_started "Getting started"
|
|
12
|
+
|
|
13
|
+
## Contribution
|
|
14
|
+
|
|
15
|
+
[See contribution guide][docs-contribute].
|
|
16
|
+
|
|
17
|
+
[docs-contribute]: https://catladder.git.panter.biz/catladder/docs/contribute "Contribution guide"
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* this class represents a string that can be evaluated in bash scripts.
|
|
3
|
+
*
|
|
4
|
+
* you can do basic transforms like lowercase, but that does not return you a lowercase string, but instead an experssion represeting a lowercase string
|
|
5
|
+
*/
|
|
6
|
+
export declare class BashExpression {
|
|
7
|
+
private value;
|
|
8
|
+
constructor(value: string | BashExpression);
|
|
9
|
+
toJSON(): string;
|
|
10
|
+
toString(): string;
|
|
11
|
+
replace(searchValue: any, replacer: (substring: string, ...args: any[]) => string): BashExpression;
|
|
12
|
+
/**
|
|
13
|
+
*
|
|
14
|
+
* @returns a bash expression to lowercase the string
|
|
15
|
+
*/
|
|
16
|
+
toLowerCase(): BashExpression;
|
|
17
|
+
/**
|
|
18
|
+
* concats a value to this one and returns a new BashExpression
|
|
19
|
+
* @param value
|
|
20
|
+
* @returns
|
|
21
|
+
*/
|
|
22
|
+
concat(...values: Array<string | BashExpression>): BashExpression;
|
|
23
|
+
transformWithCommand(command: string): BashExpression;
|
|
24
|
+
}
|
|
25
|
+
export type StringOrBashExpression = string | BashExpression;
|
|
26
|
+
export declare const getBashVariable: (name: string) => BashExpression;
|
|
27
|
+
/**
|
|
28
|
+
* joins bash expressions together with a joiner
|
|
29
|
+
* returns a bash expression if any of the parts is a bash expression
|
|
30
|
+
* returns a string otherwise
|
|
31
|
+
*
|
|
32
|
+
* @param parts
|
|
33
|
+
* @param joiner
|
|
34
|
+
* @returns
|
|
35
|
+
*/
|
|
36
|
+
export declare const joinBashExpressions: (parts: Array<StringOrBashExpression>, joiner?: string) => StringOrBashExpression;
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var __read = this && this.__read || function (o, n) {
|
|
4
|
+
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
5
|
+
if (!m) return o;
|
|
6
|
+
var i = m.call(o),
|
|
7
|
+
r,
|
|
8
|
+
ar = [],
|
|
9
|
+
e;
|
|
10
|
+
try {
|
|
11
|
+
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
12
|
+
} catch (error) {
|
|
13
|
+
e = {
|
|
14
|
+
error: error
|
|
15
|
+
};
|
|
16
|
+
} finally {
|
|
17
|
+
try {
|
|
18
|
+
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
19
|
+
} finally {
|
|
20
|
+
if (e) throw e.error;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
var __spreadArray = this && this.__spreadArray || function (to, from, pack) {
|
|
26
|
+
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
27
|
+
if (ar || !(i in from)) {
|
|
28
|
+
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
29
|
+
ar[i] = from[i];
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
|
33
|
+
};
|
|
34
|
+
Object.defineProperty(exports, "__esModule", {
|
|
35
|
+
value: true
|
|
36
|
+
});
|
|
37
|
+
exports.joinBashExpressions = exports.getBashVariable = exports.BashExpression = void 0;
|
|
38
|
+
/**
|
|
39
|
+
* this class represents a string that can be evaluated in bash scripts.
|
|
40
|
+
*
|
|
41
|
+
* you can do basic transforms like lowercase, but that does not return you a lowercase string, but instead an experssion represeting a lowercase string
|
|
42
|
+
*/
|
|
43
|
+
var BashExpression = /** @class */function () {
|
|
44
|
+
function BashExpression(value) {
|
|
45
|
+
this.value = value;
|
|
46
|
+
}
|
|
47
|
+
BashExpression.prototype.toJSON = function () {
|
|
48
|
+
return this.toString();
|
|
49
|
+
};
|
|
50
|
+
BashExpression.prototype.toString = function () {
|
|
51
|
+
return this.value.toString();
|
|
52
|
+
};
|
|
53
|
+
BashExpression.prototype.replace = function (searchValue, replacer) {
|
|
54
|
+
return new BashExpression(this.value.toString().replace(searchValue, replacer));
|
|
55
|
+
};
|
|
56
|
+
/**
|
|
57
|
+
*
|
|
58
|
+
* @returns a bash expression to lowercase the string
|
|
59
|
+
*/
|
|
60
|
+
BashExpression.prototype.toLowerCase = function () {
|
|
61
|
+
return this.transformWithCommand("awk '{print tolower($0)}'");
|
|
62
|
+
};
|
|
63
|
+
/**
|
|
64
|
+
* concats a value to this one and returns a new BashExpression
|
|
65
|
+
* @param value
|
|
66
|
+
* @returns
|
|
67
|
+
*/
|
|
68
|
+
BashExpression.prototype.concat = function () {
|
|
69
|
+
var _a;
|
|
70
|
+
var values = [];
|
|
71
|
+
for (var _i = 0; _i < arguments.length; _i++) {
|
|
72
|
+
values[_i] = arguments[_i];
|
|
73
|
+
}
|
|
74
|
+
return new BashExpression((_a = this.toString()).concat.apply(_a, __spreadArray([], __read(values.map(function (v) {
|
|
75
|
+
return v.toString();
|
|
76
|
+
})), false)));
|
|
77
|
+
};
|
|
78
|
+
BashExpression.prototype.transformWithCommand = function (command) {
|
|
79
|
+
return new BashExpression(
|
|
80
|
+
// see https://stackoverflow.com/a/2264537
|
|
81
|
+
"$(printf %s \"".concat(this.toString(), "\" | ").concat(command, ")"));
|
|
82
|
+
};
|
|
83
|
+
return BashExpression;
|
|
84
|
+
}();
|
|
85
|
+
exports.BashExpression = BashExpression;
|
|
86
|
+
var getBashVariable = function (name) {
|
|
87
|
+
return new BashExpression("$".concat(name));
|
|
88
|
+
};
|
|
89
|
+
exports.getBashVariable = getBashVariable;
|
|
90
|
+
/**
|
|
91
|
+
* joins bash expressions together with a joiner
|
|
92
|
+
* returns a bash expression if any of the parts is a bash expression
|
|
93
|
+
* returns a string otherwise
|
|
94
|
+
*
|
|
95
|
+
* @param parts
|
|
96
|
+
* @param joiner
|
|
97
|
+
* @returns
|
|
98
|
+
*/
|
|
99
|
+
var joinBashExpressions = function (parts, joiner) {
|
|
100
|
+
if (joiner === void 0) {
|
|
101
|
+
joiner = "";
|
|
102
|
+
}
|
|
103
|
+
var anyIsBashExpression = parts.some(function (p) {
|
|
104
|
+
return p instanceof BashExpression;
|
|
105
|
+
});
|
|
106
|
+
if (anyIsBashExpression) {
|
|
107
|
+
return new BashExpression(parts.map(function (p) {
|
|
108
|
+
return p instanceof BashExpression ? p.toString() : p;
|
|
109
|
+
}).join(joiner));
|
|
110
|
+
} else {
|
|
111
|
+
return parts.join(joiner);
|
|
112
|
+
}
|
|
113
|
+
};
|
|
114
|
+
exports.joinBashExpressions = joinBashExpressions;
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import type { VariableValue } from "../variables/VariableValue";
|
|
2
|
+
import { BashExpression } from "./BashExpression";
|
|
3
|
+
export type QuotesEscapeMode = "single" | "double";
|
|
4
|
+
export type EscapeOptions = {
|
|
5
|
+
quotes?: QuotesEscapeMode | false;
|
|
6
|
+
};
|
|
7
|
+
/**
|
|
8
|
+
* escapes a string or bash expression for bash
|
|
9
|
+
* it either can escape single or double quotes (double is default)
|
|
10
|
+
*/
|
|
11
|
+
export declare const bashEscape: (value: VariableValue | any, options?: EscapeOptions) => string | BashExpression | null | undefined;
|
|
12
|
+
export declare const escapeString: (value: string | null | undefined, {
|
|
13
|
+
quotes
|
|
14
|
+
}?: EscapeOptions) => string | null | undefined;
|
|
15
|
+
export declare const escapeBashExpression: (value: BashExpression, options: EscapeOptions) => BashExpression;
|
|
16
|
+
export declare const escapeDoubleQuotes: (value: string | null | undefined) => string | undefined;
|
|
17
|
+
export declare const escapeSingleQuotes: (value: string | null | undefined) => string | undefined;
|
|
18
|
+
export type EscapeForDotEnvOptions = {
|
|
19
|
+
quoteMode: "auto" | "always";
|
|
20
|
+
};
|
|
21
|
+
/**
|
|
22
|
+
*
|
|
23
|
+
* escape env vars for .env files.
|
|
24
|
+
* unfortunatly, the format has many limitations. In order to be very forgiving, we need to do some magic here:
|
|
25
|
+
*
|
|
26
|
+
* - when the value contains no newlines, we are fine
|
|
27
|
+
* - if the value contains newlines, we need to wrap it in quotes. And thats where the problem begins:
|
|
28
|
+
* - you can't escape quotes. this is a limitation of dotenv and node
|
|
29
|
+
* - you can have inner quotes, but they break in node.js (not in dotenv though), see https://github.com/nodejs/node/issues/54134
|
|
30
|
+
* - so we need to quote cleverly
|
|
31
|
+
* - to make things worse, we need to check whether we have a simple stirng or a bash expression, that needs to be evalulated first...
|
|
32
|
+
*
|
|
33
|
+
* what an absolute nightmare.
|
|
34
|
+
*
|
|
35
|
+
* - other languages are currently only partially supported, since most .env implementations are slightly different
|
|
36
|
+
*/
|
|
37
|
+
export declare const escapeForDotEnv: (value: VariableValue | undefined | null, options?: EscapeForDotEnvOptions) => string;
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.escapeForDotEnv = exports.escapeSingleQuotes = exports.escapeDoubleQuotes = exports.escapeBashExpression = exports.escapeString = exports.bashEscape = void 0;
|
|
7
|
+
var globalScriptFunctions_1 = require("../globalScriptFunctions");
|
|
8
|
+
var VariableValueContainingReferences_1 = require("../variables/VariableValueContainingReferences");
|
|
9
|
+
var BashExpression_1 = require("./BashExpression");
|
|
10
|
+
/**
|
|
11
|
+
* escapes a string or bash expression for bash
|
|
12
|
+
* it either can escape single or double quotes (double is default)
|
|
13
|
+
*/
|
|
14
|
+
var bashEscape = function (value, options) {
|
|
15
|
+
if (options === void 0) {
|
|
16
|
+
options = {
|
|
17
|
+
quotes: "double"
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
if (value instanceof BashExpression_1.BashExpression) {
|
|
21
|
+
// no need to escape
|
|
22
|
+
return (0, exports.escapeBashExpression)(value, options);
|
|
23
|
+
}
|
|
24
|
+
if (value instanceof VariableValueContainingReferences_1.VariableValueContainingReferences) {
|
|
25
|
+
return value.toString(options);
|
|
26
|
+
}
|
|
27
|
+
return (0, exports.escapeString)(value, options);
|
|
28
|
+
};
|
|
29
|
+
exports.bashEscape = bashEscape;
|
|
30
|
+
var escapeString = function (value, _a) {
|
|
31
|
+
var _b = _a === void 0 ? {
|
|
32
|
+
quotes: "double"
|
|
33
|
+
} : _a,
|
|
34
|
+
quotes = _b.quotes;
|
|
35
|
+
var quoteEscaped = quotes ? quotes === "single" ? (0, exports.escapeSingleQuotes)(value) : (0, exports.escapeDoubleQuotes)(value) : value;
|
|
36
|
+
return quoteEscaped;
|
|
37
|
+
};
|
|
38
|
+
exports.escapeString = escapeString;
|
|
39
|
+
var escapeBashExpression = function (value, options) {
|
|
40
|
+
// no need to escape, we just return the string
|
|
41
|
+
return value;
|
|
42
|
+
};
|
|
43
|
+
exports.escapeBashExpression = escapeBashExpression;
|
|
44
|
+
var escapeDoubleQuotes = function (value) {
|
|
45
|
+
return value === null || value === void 0 ? void 0 : value.toString().replace(/"/g, '\\"');
|
|
46
|
+
};
|
|
47
|
+
exports.escapeDoubleQuotes = escapeDoubleQuotes;
|
|
48
|
+
var escapeSingleQuotes = function (value) {
|
|
49
|
+
return value === null || value === void 0 ? void 0 : value.toString().replace(/'/g, "\\'");
|
|
50
|
+
};
|
|
51
|
+
exports.escapeSingleQuotes = escapeSingleQuotes;
|
|
52
|
+
/**
|
|
53
|
+
*
|
|
54
|
+
* escape env vars for .env files.
|
|
55
|
+
* unfortunatly, the format has many limitations. In order to be very forgiving, we need to do some magic here:
|
|
56
|
+
*
|
|
57
|
+
* - when the value contains no newlines, we are fine
|
|
58
|
+
* - if the value contains newlines, we need to wrap it in quotes. And thats where the problem begins:
|
|
59
|
+
* - you can't escape quotes. this is a limitation of dotenv and node
|
|
60
|
+
* - you can have inner quotes, but they break in node.js (not in dotenv though), see https://github.com/nodejs/node/issues/54134
|
|
61
|
+
* - so we need to quote cleverly
|
|
62
|
+
* - to make things worse, we need to check whether we have a simple stirng or a bash expression, that needs to be evalulated first...
|
|
63
|
+
*
|
|
64
|
+
* what an absolute nightmare.
|
|
65
|
+
*
|
|
66
|
+
* - other languages are currently only partially supported, since most .env implementations are slightly different
|
|
67
|
+
*/
|
|
68
|
+
var escapeForDotEnv = function (value, options) {
|
|
69
|
+
if (options === void 0) {
|
|
70
|
+
options = {
|
|
71
|
+
quoteMode: "auto"
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
if (value === undefined || value === null) {
|
|
75
|
+
return "";
|
|
76
|
+
}
|
|
77
|
+
if (typeof value === "string") {
|
|
78
|
+
// if string contains newlines, we need to wrap it in quotes
|
|
79
|
+
// we additionaly escape newlines, that give best compatibility
|
|
80
|
+
if (options.quoteMode === "always" || value.includes("\n")) {
|
|
81
|
+
var newlinesReplaces = value.replace(/\n/g, "\\n");
|
|
82
|
+
// default to ", but if this is not possible, we try to use ' or `
|
|
83
|
+
var quote = value.includes("\"") ? value.includes("'") ? value.includes("`") ?
|
|
84
|
+
// If all quote types are present, default to double quotes. This works in dotenv, but not in node.js because of the bug mentioned abouve
|
|
85
|
+
'"' : "`" : "'" : '"';
|
|
86
|
+
// if we found a quote, we can wrap the string in it
|
|
87
|
+
return "".concat(quote).concat(newlinesReplaces).concat(quote);
|
|
88
|
+
} else {
|
|
89
|
+
// otherwise we can return as is
|
|
90
|
+
return value;
|
|
91
|
+
}
|
|
92
|
+
} else if (value instanceof BashExpression_1.BashExpression) {
|
|
93
|
+
return escapeBashExpressionForDotEnv(value);
|
|
94
|
+
} else if (value instanceof VariableValueContainingReferences_1.VariableValueContainingReferences) {
|
|
95
|
+
// instead of doing it part-wise, we just do it all at once
|
|
96
|
+
var containsAnyBashExpression = value.parts.some(function (part) {
|
|
97
|
+
return part instanceof BashExpression_1.BashExpression;
|
|
98
|
+
});
|
|
99
|
+
if (!containsAnyBashExpression) {
|
|
100
|
+
return (0, exports.escapeForDotEnv)(value.toString({
|
|
101
|
+
quotes: "double"
|
|
102
|
+
}));
|
|
103
|
+
} else {
|
|
104
|
+
var result = escapeBashExpressionForDotEnv(new BashExpression_1.BashExpression(value.toString({
|
|
105
|
+
quotes: "double"
|
|
106
|
+
})));
|
|
107
|
+
return result;
|
|
108
|
+
}
|
|
109
|
+
} else {
|
|
110
|
+
return value;
|
|
111
|
+
}
|
|
112
|
+
};
|
|
113
|
+
exports.escapeForDotEnv = escapeForDotEnv;
|
|
114
|
+
// basically the same thing as above for bash
|
|
115
|
+
// thx chatgpt for this
|
|
116
|
+
var escapeForDotEnvScript = (0, globalScriptFunctions_1.registerGlobalScriptFunction)("escapeForDotEnv", "\n input=\"${1:-$(cat)}\"\n input=\"${input//$'\\n'/\\\\n}\"\n if [[ \"$input\" == *\\\\n* ]]; then\n if [[ \"$input\" == *\\\"* && \"$input\" == *\\'* && \"$input\" == *\\`* ]]; then\n printf \"\\\"%s\\\"\\n\" \"$input\" ".concat( /* fallback to double quotes */"", "\n elif [[ \"$input\" == *\\\"* && \"$input\" == *\\'* ]]; then\n printf \"`%s`\\n\" \"$input\"\n elif [[ \"$input\" == *\\\"* ]]; then\n printf \"'%s'\\n\" \"$input\"\n else\n printf \"\\\"%s\\\"\\n\" \"$input\"\n fi\n else\n printf \"%s\\n\" \"$input\"\n fi\n "));
|
|
117
|
+
var escapeBashExpressionForDotEnv = function (value) {
|
|
118
|
+
return value.transformWithCommand(escapeForDotEnvScript.name).toString();
|
|
119
|
+
};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { PipelineType } from "../types/pipeline";
|
|
2
|
+
import type { BashExpression } from "./BashExpression";
|
|
3
|
+
export type BashExpressionPerPipelineType = { [type in PipelineType]?: BashExpression | string } & {
|
|
4
|
+
default: BashExpression | string;
|
|
5
|
+
};
|
|
6
|
+
export declare const getBashExpressionPerPipelineType: (definition: BashExpressionPerPipelineType, pipelineType?: PipelineType) => string | BashExpression;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.getBashExpressionPerPipelineType = void 0;
|
|
7
|
+
var getBashExpressionPerPipelineType = function (definition, pipelineType) {
|
|
8
|
+
if (!pipelineType) return definition.default;
|
|
9
|
+
return definition[pipelineType] || definition.default;
|
|
10
|
+
};
|
|
11
|
+
exports.getBashExpressionPerPipelineType = getBashExpressionPerPipelineType;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/***
|
|
2
|
+
* creates a yaml string that can be used in bash scripts
|
|
3
|
+
* it handles BashExpressions correctly so that they can be evaluated in bash
|
|
4
|
+
*/
|
|
5
|
+
export declare const yamlBashString: (value: any) => string;
|
|
6
|
+
/**
|
|
7
|
+
* creates a bash script that writes a yaml string to a file
|
|
8
|
+
* @param value the yaml value to write, it supports BashExpressions
|
|
9
|
+
*/
|
|
10
|
+
export declare const writeBashYamlToFileScript: (value: any, filename: string) => string[];
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.writeBashYamlToFileScript = exports.yamlBashString = void 0;
|
|
7
|
+
var yaml_1 = require("yaml");
|
|
8
|
+
var BashExpression_1 = require("./BashExpression");
|
|
9
|
+
var VariableValueContainingReferences_1 = require("../variables/VariableValueContainingReferences");
|
|
10
|
+
var bashExpressionType = {
|
|
11
|
+
tag: "",
|
|
12
|
+
resolve: function (str) {
|
|
13
|
+
// not really needed,but let's make typescript happy
|
|
14
|
+
return new BashExpression_1.BashExpression(str);
|
|
15
|
+
},
|
|
16
|
+
stringify: function (node, ctx) {
|
|
17
|
+
// we create a BLOCK_LITERAL
|
|
18
|
+
// but because bash will interpret the value, it may resolve to a multiline string
|
|
19
|
+
// so we need to indent every line using sed
|
|
20
|
+
return "|-\n" + ctx.indent + indentNewlinesInBashExpression(node.value, ctx.indent);
|
|
21
|
+
},
|
|
22
|
+
identify: function (v) {
|
|
23
|
+
return v instanceof BashExpression_1.BashExpression;
|
|
24
|
+
}
|
|
25
|
+
};
|
|
26
|
+
var indentNewlinesInBashExpression = function (expression, indent) {
|
|
27
|
+
return expression.transformWithCommand("sed '1!s/^/".concat(indent, "/'"));
|
|
28
|
+
};
|
|
29
|
+
var variableContainingReferences = {
|
|
30
|
+
tag: "",
|
|
31
|
+
resolve: function (str) {
|
|
32
|
+
// not really needed,but let's make typescript happy
|
|
33
|
+
return new VariableValueContainingReferences_1.VariableValueContainingReferences(str);
|
|
34
|
+
},
|
|
35
|
+
stringify: function (node, ctx) {
|
|
36
|
+
var value = node.value;
|
|
37
|
+
var stringified = value.parts.map(function (part) {
|
|
38
|
+
return part instanceof BashExpression_1.BashExpression ? indentNewlinesInBashExpression(part, ctx.indent) :
|
|
39
|
+
// indent every new line
|
|
40
|
+
part.toString().replace(/\n/g, "\n".concat(ctx.indent));
|
|
41
|
+
}).join("");
|
|
42
|
+
return "|-\n" + ctx.indent + stringified;
|
|
43
|
+
},
|
|
44
|
+
identify: function (v) {
|
|
45
|
+
return v instanceof VariableValueContainingReferences_1.VariableValueContainingReferences;
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
/***
|
|
49
|
+
* creates a yaml string that can be used in bash scripts
|
|
50
|
+
* it handles BashExpressions correctly so that they can be evaluated in bash
|
|
51
|
+
*/
|
|
52
|
+
var yamlBashString = function (value) {
|
|
53
|
+
return (0, yaml_1.stringify)(value, {
|
|
54
|
+
defaultStringType: "BLOCK_LITERAL",
|
|
55
|
+
defaultKeyType: "PLAIN",
|
|
56
|
+
customTags: [bashExpressionType, variableContainingReferences],
|
|
57
|
+
aliasDuplicateObjects: false,
|
|
58
|
+
lineWidth: 0
|
|
59
|
+
});
|
|
60
|
+
};
|
|
61
|
+
exports.yamlBashString = yamlBashString;
|
|
62
|
+
/**
|
|
63
|
+
* creates a bash script that writes a yaml string to a file
|
|
64
|
+
* @param value the yaml value to write, it supports BashExpressions
|
|
65
|
+
*/
|
|
66
|
+
var writeBashYamlToFileScript = function (value, filename) {
|
|
67
|
+
return ["cat > ".concat(filename, " <<EOF\n").concat((0, exports.yamlBashString)(value), "\nEOF\n")];
|
|
68
|
+
};
|
|
69
|
+
exports.writeBashYamlToFileScript = writeBashYamlToFileScript;
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var __read = this && this.__read || function (o, n) {
|
|
4
|
+
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
5
|
+
if (!m) return o;
|
|
6
|
+
var i = m.call(o),
|
|
7
|
+
r,
|
|
8
|
+
ar = [],
|
|
9
|
+
e;
|
|
10
|
+
try {
|
|
11
|
+
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
12
|
+
} catch (error) {
|
|
13
|
+
e = {
|
|
14
|
+
error: error
|
|
15
|
+
};
|
|
16
|
+
} finally {
|
|
17
|
+
try {
|
|
18
|
+
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
19
|
+
} finally {
|
|
20
|
+
if (e) throw e.error;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
Object.defineProperty(exports, "__esModule", {
|
|
26
|
+
value: true
|
|
27
|
+
});
|
|
28
|
+
exports.getInjectVarsScript = void 0;
|
|
29
|
+
var lodash_1 = require("lodash");
|
|
30
|
+
var bashEscape_1 = require("./bashEscape");
|
|
31
|
+
var getInjectVarsScript = function (vars) {
|
|
32
|
+
if (!vars) return [];
|
|
33
|
+
// filter out null and undefined values
|
|
34
|
+
return Object.entries(vars).filter(function (_a) {
|
|
35
|
+
var _b = __read(_a, 2),
|
|
36
|
+
value = _b[1];
|
|
37
|
+
return !(0, lodash_1.isNil)(value);
|
|
38
|
+
}).map(function (_a) {
|
|
39
|
+
var _b = __read(_a, 2),
|
|
40
|
+
key = _b[0],
|
|
41
|
+
value = _b[1];
|
|
42
|
+
return "export ".concat(key, "=\"").concat(value ? (0, bashEscape_1.bashEscape)(value, {
|
|
43
|
+
quotes: "double"
|
|
44
|
+
}) : "", "\"");
|
|
45
|
+
});
|
|
46
|
+
};
|
|
47
|
+
exports.getInjectVarsScript = getInjectVarsScript;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var __createBinding = this && this.__createBinding || (Object.create ? function (o, m, k, k2) {
|
|
4
|
+
if (k2 === undefined) k2 = k;
|
|
5
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
6
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
7
|
+
desc = {
|
|
8
|
+
enumerable: true,
|
|
9
|
+
get: function () {
|
|
10
|
+
return m[k];
|
|
11
|
+
}
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
Object.defineProperty(o, k2, desc);
|
|
15
|
+
} : function (o, m, k, k2) {
|
|
16
|
+
if (k2 === undefined) k2 = k;
|
|
17
|
+
o[k2] = m[k];
|
|
18
|
+
});
|
|
19
|
+
var __exportStar = this && this.__exportStar || function (m, exports) {
|
|
20
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
21
|
+
};
|
|
22
|
+
Object.defineProperty(exports, "__esModule", {
|
|
23
|
+
value: true
|
|
24
|
+
});
|
|
25
|
+
__exportStar(require("./bashEscape"), exports);
|
|
26
|
+
__exportStar(require("./BashExpression"), exports);
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var __assign = this && this.__assign || function () {
|
|
4
|
+
__assign = Object.assign || function (t) {
|
|
5
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
6
|
+
s = arguments[i];
|
|
7
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
|
|
8
|
+
}
|
|
9
|
+
return t;
|
|
10
|
+
};
|
|
11
|
+
return __assign.apply(this, arguments);
|
|
12
|
+
};
|
|
13
|
+
var __read = this && this.__read || function (o, n) {
|
|
14
|
+
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
15
|
+
if (!m) return o;
|
|
16
|
+
var i = m.call(o),
|
|
17
|
+
r,
|
|
18
|
+
ar = [],
|
|
19
|
+
e;
|
|
20
|
+
try {
|
|
21
|
+
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
22
|
+
} catch (error) {
|
|
23
|
+
e = {
|
|
24
|
+
error: error
|
|
25
|
+
};
|
|
26
|
+
} finally {
|
|
27
|
+
try {
|
|
28
|
+
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
29
|
+
} finally {
|
|
30
|
+
if (e) throw e.error;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
return ar;
|
|
34
|
+
};
|
|
35
|
+
var __spreadArray = this && this.__spreadArray || function (to, from, pack) {
|
|
36
|
+
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
37
|
+
if (ar || !(i in from)) {
|
|
38
|
+
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
39
|
+
ar[i] = from[i];
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
|
43
|
+
};
|
|
44
|
+
Object.defineProperty(exports, "__esModule", {
|
|
45
|
+
value: true
|
|
46
|
+
});
|
|
47
|
+
exports.createBuildJobArtifacts = void 0;
|
|
48
|
+
var path_1 = require("path");
|
|
49
|
+
var types_1 = require("../../types");
|
|
50
|
+
var lodash_1 = require("lodash");
|
|
51
|
+
var writeDotEnv_1 = require("../base/writeDotEnv");
|
|
52
|
+
var createBuildJobArtifacts = function (context) {
|
|
53
|
+
var _a, _b;
|
|
54
|
+
var paths = context.type === "workspace" ? context.components.flatMap(function (c) {
|
|
55
|
+
return getArtifactsPathForComponent(c);
|
|
56
|
+
}) : getArtifactsPathForComponent(context, ["__build_info.json"]);
|
|
57
|
+
// esxclude .env files if generated
|
|
58
|
+
var exclude = context.type === "workspace" ? context.components.flatMap(function (c) {
|
|
59
|
+
return getDotEnvPathsForComponent(c);
|
|
60
|
+
}) : getDotEnvPathsForComponent(context);
|
|
61
|
+
return __assign(__assign({
|
|
62
|
+
paths: (0, lodash_1.uniq)(paths).sort(function (a, b) {
|
|
63
|
+
return a.localeCompare(b);
|
|
64
|
+
})
|
|
65
|
+
}, exclude.length > 0 ? {
|
|
66
|
+
exclude: exclude
|
|
67
|
+
} : {}), {
|
|
68
|
+
expire_in: "1 day",
|
|
69
|
+
when: "always",
|
|
70
|
+
reports:
|
|
71
|
+
// TODO: support for junit reports in other builds
|
|
72
|
+
context.type === "component" && (0, types_1.componentContextIsStandaloneBuild)(context) ? {
|
|
73
|
+
junit: (_b = (_a = context.build.config.artifactsReports) === null || _a === void 0 ? void 0 : _a.junit) === null || _b === void 0 ? void 0 : _b.map(function (p) {
|
|
74
|
+
return (0, path_1.join)(context.build.dir, p);
|
|
75
|
+
})
|
|
76
|
+
} : {}
|
|
77
|
+
});
|
|
78
|
+
};
|
|
79
|
+
exports.createBuildJobArtifacts = createBuildJobArtifacts;
|
|
80
|
+
var getArtifactsPathForComponent = function (c, additionalPaths) {
|
|
81
|
+
var _a, _b;
|
|
82
|
+
return (_b = __spreadArray(__spreadArray([], __read(c.build.type !== "disabled" ? (_a = c.build.config.artifactsPaths) !== null && _a !== void 0 ? _a : [] : []), false), __read(additionalPaths !== null && additionalPaths !== void 0 ? additionalPaths : []), false)) === null || _b === void 0 ? void 0 : _b.flatMap(function (artifact) {
|
|
83
|
+
return c.build
|
|
84
|
+
// in theory, we only need "direct",
|
|
85
|
+
// but in some cases project may have packages in the workspace that create build artifacts, which aren't components
|
|
86
|
+
// this highly depends on the build tool. To be safe, we get all
|
|
87
|
+
.getComponentDirs("all").flatMap(function (cDir) {
|
|
88
|
+
return (0, path_1.join)(cDir, artifact);
|
|
89
|
+
});
|
|
90
|
+
});
|
|
91
|
+
};
|
|
92
|
+
var getDotEnvPathsForComponent = function (c) {
|
|
93
|
+
if ((0, writeDotEnv_1.componentContextNeedsBuildTimeDotEnv)(c)) {
|
|
94
|
+
return [(0, path_1.join)(c.build.dir, ".env")];
|
|
95
|
+
}
|
|
96
|
+
return [];
|
|
97
|
+
};
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
exports
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
4
6
|
var createArtifactsConfig_1 = require("../createArtifactsConfig");
|
|
5
7
|
describe("createArtifactsConfig", function () {
|
|
6
8
|
it("returns undefined if no artifacts or artifactsReports", function () {
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
exports
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
4
6
|
exports.RUNNER_BUILD_RESOURCE_VARIABLES = exports.APP_BUILD_JOB_NAME = void 0;
|
|
5
7
|
exports.APP_BUILD_JOB_NAME = "🔨 app";
|
|
6
8
|
exports.RUNNER_BUILD_RESOURCE_VARIABLES = {
|
|
7
|
-
KUBERNETES_CPU_REQUEST: "0.
|
|
9
|
+
KUBERNETES_CPU_REQUEST: "0.45",
|
|
8
10
|
KUBERNETES_MEMORY_REQUEST: "1Gi",
|
|
9
11
|
KUBERNETES_MEMORY_LIMIT: "4Gi"
|
|
10
12
|
};
|
|
@@ -1,8 +1,10 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { BuildContextStandalone, ComponentContext, WorkspaceContext } from "../..";
|
|
2
|
+
import type { AppBuildJobDefinition } from "../../types/jobDefinition";
|
|
2
3
|
import type { CatladderJob } from "../../types/jobs";
|
|
3
|
-
export declare
|
|
4
|
-
export declare const createAppBuildJob: (context: Context, {
|
|
4
|
+
export declare const createAppBuildJob: (context: ComponentContext<BuildContextStandalone> | WorkspaceContext, {
|
|
5
5
|
script,
|
|
6
6
|
variables,
|
|
7
|
+
runnerVariables,
|
|
8
|
+
cache,
|
|
7
9
|
...def
|
|
8
10
|
}: AppBuildJobDefinition) => CatladderJob;
|