@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.
Files changed (639) hide show
  1. package/README.md +15 -1
  2. package/dist/bash/BashExpression.d.ts +36 -0
  3. package/dist/bash/BashExpression.js +114 -0
  4. package/dist/bash/bashEscape.d.ts +37 -0
  5. package/dist/bash/bashEscape.js +119 -0
  6. package/dist/bash/bashExpressionPerPipelineType.d.ts +6 -0
  7. package/dist/bash/bashExpressionPerPipelineType.js +11 -0
  8. package/dist/bash/bashYaml.d.ts +10 -0
  9. package/dist/bash/bashYaml.js +69 -0
  10. package/dist/bash/getInjectVarsScript.d.ts +2 -0
  11. package/dist/bash/getInjectVarsScript.js +47 -0
  12. package/dist/bash/index.d.ts +2 -0
  13. package/dist/bash/index.js +26 -0
  14. package/dist/build/artifacts/createBuildJobArtifact.d.ts +3 -0
  15. package/dist/build/artifacts/createBuildJobArtifact.js +97 -0
  16. package/dist/build/base/__tests__/createArtifactsConfig.test.js +3 -1
  17. package/dist/build/base/constants.js +4 -2
  18. package/dist/build/base/createAppBuildJob.d.ts +5 -3
  19. package/dist/build/base/createAppBuildJob.js +18 -15
  20. package/dist/build/base/createArtifactsConfig.d.ts +1 -1
  21. package/dist/build/base/createArtifactsConfig.js +3 -1
  22. package/dist/build/base/createBuildJobDefinition.d.ts +6 -0
  23. package/dist/build/base/createBuildJobDefinition.js +58 -0
  24. package/dist/build/base/index.d.ts +6 -4
  25. package/dist/build/base/index.js +17 -6
  26. package/dist/build/base/writeBuildInfo.d.ts +2 -2
  27. package/dist/build/base/writeBuildInfo.js +4 -3
  28. package/dist/build/base/writeDotEnv.d.ts +3 -2
  29. package/dist/build/base/writeDotEnv.js +30 -6
  30. package/dist/build/cache/createJobCache.d.ts +7 -0
  31. package/dist/build/cache/createJobCache.js +115 -0
  32. package/dist/build/cache/getAllCacheConfigsFromConfig.d.ts +3 -0
  33. package/dist/build/cache/getAllCacheConfigsFromConfig.js +64 -0
  34. package/dist/build/cache/transformLegacyJobCache.d.ts +3 -0
  35. package/dist/build/cache/transformLegacyJobCache.js +29 -0
  36. package/dist/build/custom/__tests__/testJob.test.js +15 -16
  37. package/dist/build/custom/buildJob.d.ts +2 -2
  38. package/dist/build/custom/buildJob.js +8 -66
  39. package/dist/build/custom/index.d.ts +2 -2
  40. package/dist/build/custom/index.js +3 -1
  41. package/dist/build/custom/testJob.d.ts +4 -4
  42. package/dist/build/custom/testJob.js +25 -20
  43. package/dist/build/docker.d.ts +37 -46
  44. package/dist/build/docker.js +65 -34
  45. package/dist/build/index.d.ts +14 -7
  46. package/dist/build/index.js +44 -17
  47. package/dist/build/node/buildJob.d.ts +8 -2
  48. package/dist/build/node/buildJob.js +39 -52
  49. package/dist/build/node/cache.d.ts +4 -5
  50. package/dist/build/node/cache.js +18 -24
  51. package/dist/build/node/constants.js +5 -3
  52. package/dist/build/node/index.d.ts +4 -4
  53. package/dist/build/node/index.js +3 -1
  54. package/dist/build/node/meteor.d.ts +2 -2
  55. package/dist/build/node/meteor.js +10 -12
  56. package/dist/build/node/testJob.d.ts +3 -2
  57. package/dist/build/node/testJob.js +29 -19
  58. package/dist/build/node/yarn.d.ts +4 -3
  59. package/dist/build/node/yarn.js +11 -12
  60. package/dist/build/rails/build.d.ts +2 -2
  61. package/dist/build/rails/build.js +13 -6
  62. package/dist/build/rails/index.d.ts +2 -2
  63. package/dist/build/rails/index.js +3 -1
  64. package/dist/build/rails/test.d.ts +2 -2
  65. package/dist/build/rails/test.js +30 -11
  66. package/dist/build/sbom.d.ts +2 -2
  67. package/dist/build/sbom.js +13 -7
  68. package/dist/build/types.d.ts +160 -47
  69. package/dist/build/types.js +10 -2
  70. package/dist/catladder-gitlab.js +129 -49
  71. package/dist/config/__tests__/configruedEnvs.test.js +3 -1
  72. package/dist/config/__tests__/getAllEnvs.test.js +79 -0
  73. package/dist/config/__tests__/getAllEnvsInAllComponents.test.d.ts +1 -0
  74. package/dist/config/__tests__/getAllEnvsInAllComponents.test.js +73 -0
  75. package/dist/config/configruedEnvs.js +3 -1
  76. package/dist/config/index.js +13 -7
  77. package/dist/config/readConfig.d.ts +2 -2
  78. package/dist/config/readConfig.js +191 -40
  79. package/dist/constants.js +5 -3
  80. package/dist/context/createAllComponentsContext.d.ts +12 -0
  81. package/dist/{pipeline/commitInfo/getCommitInfo.js โ†’ context/createAllComponentsContext.js} +35 -19
  82. package/dist/context/createComponentContext.d.ts +11 -0
  83. package/dist/context/createComponentContext.js +262 -0
  84. package/dist/context/createWorkspaceContext.d.ts +16 -0
  85. package/dist/context/createWorkspaceContext.js +173 -0
  86. package/dist/context/getBuildInfoVariables.d.ts +6 -0
  87. package/dist/context/getBuildInfoVariables.js +55 -0
  88. package/dist/context/getEnvConfig.js +21 -4
  89. package/dist/context/getEnvType.js +3 -1
  90. package/dist/context/getEnvironment.d.ts +3 -3
  91. package/dist/context/getEnvironment.js +11 -12
  92. package/dist/context/getEnvironmentContext.d.ts +7 -3
  93. package/dist/context/getEnvironmentContext.js +21 -11
  94. package/dist/context/getEnvironmentVariables.d.ts +22 -5
  95. package/dist/context/getEnvironmentVariables.js +79 -53
  96. package/dist/context/getLabels.d.ts +2 -2
  97. package/dist/context/getLabels.js +9 -7
  98. package/dist/context/getReviewSlug.d.ts +4 -0
  99. package/dist/context/getReviewSlug.js +21 -0
  100. package/dist/context/index.d.ts +2 -4
  101. package/dist/context/index.js +15 -162
  102. package/dist/context/transformJobOnlyVars.d.ts +5 -2
  103. package/dist/context/transformJobOnlyVars.js +4 -2
  104. package/dist/context/utils/envVars.d.ts +1 -1
  105. package/dist/context/utils/envVars.js +5 -2
  106. package/dist/defaults/index.js +3 -1
  107. package/dist/deploy/base/deploy.d.ts +3 -3
  108. package/dist/deploy/base/deploy.js +37 -21
  109. package/dist/deploy/base/index.d.ts +3 -5
  110. package/dist/deploy/base/index.js +3 -1
  111. package/dist/deploy/base/rollback.d.ts +3 -3
  112. package/dist/deploy/base/rollback.js +13 -9
  113. package/dist/deploy/base/stop.d.ts +3 -3
  114. package/dist/deploy/base/stop.js +16 -11
  115. package/dist/deploy/base/types.d.ts +1 -1
  116. package/dist/deploy/base/types.js +3 -1
  117. package/dist/deploy/base/variables.js +4 -2
  118. package/dist/deploy/cloudRun/artifactsRegistry.d.ts +8 -11
  119. package/dist/deploy/cloudRun/artifactsRegistry.js +15 -14
  120. package/dist/deploy/cloudRun/cleanup.d.ts +2 -2
  121. package/dist/deploy/cloudRun/cleanup.js +3 -1
  122. package/dist/deploy/cloudRun/cloudRunRevisions.d.ts +2 -2
  123. package/dist/deploy/cloudRun/cloudRunRevisions.js +7 -6
  124. package/dist/deploy/cloudRun/createJobs/cloudRunJobs.d.ts +8 -6
  125. package/dist/deploy/cloudRun/createJobs/cloudRunJobs.js +57 -106
  126. package/dist/deploy/cloudRun/createJobs/cloudRunServices.d.ts +3 -3
  127. package/dist/deploy/cloudRun/createJobs/cloudRunServices.js +79 -15
  128. package/dist/deploy/cloudRun/createJobs/common.d.ts +7 -7
  129. package/dist/deploy/cloudRun/createJobs/common.js +6 -3
  130. package/dist/deploy/cloudRun/createJobs/constants.d.ts +1 -0
  131. package/dist/deploy/cloudRun/createJobs/constants.js +7 -0
  132. package/dist/deploy/cloudRun/createJobs/execute/onDeploy.d.ts +3 -0
  133. package/dist/deploy/cloudRun/createJobs/execute/onDeploy.js +115 -0
  134. package/dist/deploy/cloudRun/createJobs/execute/schedules.d.ts +3 -0
  135. package/dist/deploy/cloudRun/createJobs/execute/schedules.js +173 -0
  136. package/dist/deploy/cloudRun/createJobs/getCloudRunDeployScripts.d.ts +2 -2
  137. package/dist/deploy/cloudRun/createJobs/getCloudRunDeployScripts.js +13 -5
  138. package/dist/deploy/cloudRun/createJobs/getCloudRunStopScripts.d.ts +2 -2
  139. package/dist/deploy/cloudRun/createJobs/getCloudRunStopScripts.js +7 -3
  140. package/dist/deploy/cloudRun/createJobs/healthCheck.d.ts +5 -0
  141. package/dist/deploy/cloudRun/createJobs/healthCheck.js +82 -0
  142. package/dist/deploy/cloudRun/createJobs/index.d.ts +2 -2
  143. package/dist/deploy/cloudRun/createJobs/index.js +26 -12
  144. package/dist/deploy/cloudRun/createJobs/volumes.d.ts +3 -0
  145. package/dist/deploy/cloudRun/createJobs/volumes.js +58 -0
  146. package/dist/deploy/cloudRun/index.d.ts +2 -2
  147. package/dist/deploy/cloudRun/index.js +25 -13
  148. package/dist/deploy/cloudRun/utils/cloudRunExecutionUrl.d.ts +10 -0
  149. package/dist/deploy/cloudRun/utils/cloudRunExecutionUrl.js +16 -0
  150. package/dist/deploy/cloudRun/utils/createArgsString.d.ts +2 -2
  151. package/dist/deploy/cloudRun/utils/createArgsString.js +3 -1
  152. package/dist/deploy/cloudRun/utils/database.d.ts +25 -4
  153. package/dist/deploy/cloudRun/utils/database.js +49 -15
  154. package/dist/deploy/cloudRun/utils/gcloudServiceAccountLoginCommands.d.ts +2 -2
  155. package/dist/deploy/cloudRun/utils/gcloudServiceAccountLoginCommands.js +3 -1
  156. package/dist/deploy/cloudRun/utils/getJobOrServiceArgs.d.ts +2 -0
  157. package/dist/deploy/cloudRun/utils/getJobOrServiceArgs.js +12 -0
  158. package/dist/deploy/cloudRun/utils/getServiceName.d.ts +2 -2
  159. package/dist/deploy/cloudRun/utils/getServiceName.js +3 -1
  160. package/dist/deploy/cloudRun/utils/jobName.d.ts +6 -1
  161. package/dist/deploy/cloudRun/utils/jobName.js +18 -4
  162. package/dist/deploy/cloudRun/utils/removeFirstLinesFromCommandOutput.js +3 -1
  163. package/dist/deploy/cloudSql/utils.d.ts +2 -1
  164. package/dist/deploy/cloudSql/utils.js +7 -2
  165. package/dist/deploy/custom/deployJob.d.ts +2 -2
  166. package/dist/deploy/custom/deployJob.js +10 -9
  167. package/dist/deploy/custom/index.d.ts +2 -2
  168. package/dist/deploy/custom/index.js +3 -1
  169. package/dist/deploy/dockerTag/deployJob.d.ts +2 -2
  170. package/dist/deploy/dockerTag/deployJob.js +6 -6
  171. package/dist/deploy/dockerTag/index.d.ts +2 -2
  172. package/dist/deploy/dockerTag/index.js +3 -1
  173. package/dist/deploy/index.d.ts +10 -9
  174. package/dist/deploy/index.js +13 -7
  175. package/dist/deploy/kubernetes/additionalSecretKeys.d.ts +3 -1
  176. package/dist/deploy/kubernetes/additionalSecretKeys.js +3 -1
  177. package/dist/deploy/kubernetes/cloudSql/index.d.ts +6 -5
  178. package/dist/deploy/kubernetes/cloudSql/index.js +14 -21
  179. package/dist/deploy/kubernetes/deployJob.d.ts +2 -2
  180. package/dist/deploy/kubernetes/deployJob.js +23 -22
  181. package/dist/deploy/kubernetes/index.d.ts +2 -2
  182. package/dist/deploy/kubernetes/index.js +52 -15
  183. package/dist/deploy/kubernetes/kubeEnv.d.ts +5 -4
  184. package/dist/deploy/kubernetes/kubeEnv.js +9 -5
  185. package/dist/deploy/kubernetes/kubeValues.d.ts +5 -6
  186. package/dist/deploy/kubernetes/kubeValues.js +17 -19
  187. package/dist/deploy/kubernetes/mongodb.d.ts +2 -2
  188. package/dist/deploy/kubernetes/mongodb.js +14 -12
  189. package/dist/deploy/sbom.d.ts +4 -4
  190. package/dist/deploy/sbom.js +8 -4
  191. package/dist/deploy/types/base.d.ts +5 -5
  192. package/dist/deploy/types/base.js +3 -1
  193. package/dist/deploy/types/custom.d.ts +3 -7
  194. package/dist/deploy/types/custom.js +3 -1
  195. package/dist/deploy/types/dockerTag.d.ts +1 -1
  196. package/dist/deploy/types/dockerTag.js +3 -1
  197. package/dist/deploy/types/googleCloudRun.d.ts +291 -16
  198. package/dist/deploy/types/googleCloudRun.js +28 -1
  199. package/dist/deploy/types/index.d.ts +8 -7
  200. package/dist/deploy/types/index.js +21 -10
  201. package/dist/deploy/types/kubernetes.d.ts +21 -54
  202. package/dist/deploy/types/kubernetes.js +3 -1
  203. package/dist/deploy/utils.d.ts +2 -2
  204. package/dist/deploy/utils.js +5 -2
  205. package/dist/globalScriptFunctions/index.d.ts +14 -0
  206. package/dist/globalScriptFunctions/index.js +37 -0
  207. package/dist/index.d.ts +5 -2
  208. package/dist/index.js +18 -9
  209. package/dist/packageInfos.d.ts +4 -0
  210. package/dist/packageInfos.js +20 -0
  211. package/dist/pipeline/__tests__/getPipelineStages.test.d.ts +1 -0
  212. package/dist/pipeline/__tests__/getPipelineStages.test.js +73 -0
  213. package/dist/pipeline/createAllJobs.d.ts +16 -6
  214. package/dist/pipeline/createAllJobs.js +99 -27
  215. package/dist/pipeline/createJobsForComponent.d.ts +2 -2
  216. package/dist/pipeline/createJobsForComponent.js +9 -149
  217. package/dist/pipeline/createJobsForWorkspace.d.ts +3 -0
  218. package/dist/pipeline/createJobsForWorkspace.js +12 -0
  219. package/dist/pipeline/createMainPipeline.d.ts +3 -0
  220. package/dist/pipeline/createMainPipeline.js +283 -0
  221. package/dist/pipeline/generatePipelineFiles.d.ts +7 -0
  222. package/dist/pipeline/generatePipelineFiles.js +305 -0
  223. package/dist/pipeline/getPipelineStages.d.ts +7 -0
  224. package/dist/pipeline/getPipelineStages.js +56 -0
  225. package/dist/pipeline/gitlab/createGitlabJobs.d.ts +11 -14
  226. package/dist/pipeline/gitlab/createGitlabJobs.js +264 -74
  227. package/dist/pipeline/gitlab/createGitlabPipeline.d.ts +9 -0
  228. package/dist/pipeline/gitlab/createGitlabPipeline.js +77 -0
  229. package/dist/pipeline/gitlab/gitlabReleaseJobs.d.ts +33 -0
  230. package/dist/pipeline/gitlab/gitlabReleaseJobs.js +25 -0
  231. package/dist/pipeline/gitlab/sortGitLabJobDefProps.d.ts +7 -0
  232. package/dist/pipeline/gitlab/sortGitLabJobDefProps.js +27 -0
  233. package/dist/pipeline/index.d.ts +3 -2
  234. package/dist/pipeline/index.js +16 -9
  235. package/dist/pipeline/packageManager.d.ts +4 -2
  236. package/dist/pipeline/packageManager.js +56 -19
  237. package/dist/pipeline/yarn/yarnUtils.d.ts +2 -2
  238. package/dist/pipeline/yarn/yarnUtils.js +18 -15
  239. package/dist/rules/index.d.ts +10 -3
  240. package/dist/rules/index.js +35 -17
  241. package/dist/runner/index.d.ts +1 -1
  242. package/dist/runner/index.js +3 -1
  243. package/dist/tsconfig.tsbuildinfo +1 -1
  244. package/dist/types/config.d.ts +54 -36
  245. package/dist/types/config.js +5 -2
  246. package/dist/types/context.d.ts +123 -38
  247. package/dist/types/context.js +12 -1
  248. package/dist/types/environmentContext.d.ts +15 -12
  249. package/dist/types/environmentContext.js +3 -1
  250. package/dist/types/gitlab-ci-yml.d.ts +30 -30
  251. package/dist/types/gitlab-ci-yml.js +3 -2
  252. package/dist/types/gitlab-types.d.ts +8 -8
  253. package/dist/types/gitlab-types.js +3 -1
  254. package/dist/types/index.d.ts +3 -1
  255. package/dist/types/index.js +16 -8
  256. package/dist/types/jobDefinition.d.ts +11 -0
  257. package/dist/types/jobDefinition.js +5 -0
  258. package/dist/types/jobs.d.ts +30 -15
  259. package/dist/types/jobs.js +3 -1
  260. package/dist/types/pipeline.d.ts +3 -3
  261. package/dist/types/pipeline.js +3 -1
  262. package/dist/types/utils.d.ts +1 -1
  263. package/dist/types/utils.js +3 -1
  264. package/dist/utils/gitlab.js +7 -2
  265. package/dist/utils/index.d.ts +2 -1
  266. package/dist/utils/index.js +10 -3
  267. package/dist/utils/jsonParse.d.ts +1 -0
  268. package/dist/utils/jsonParse.js +14 -0
  269. package/dist/utils/removeUndefined.d.ts +1 -0
  270. package/dist/utils/removeUndefined.js +36 -0
  271. package/dist/utils/writeFiles.d.ts +11 -0
  272. package/dist/{pipeline/commitInfo/getBuildId.js โ†’ utils/writeFiles.js} +39 -22
  273. package/dist/variables/VariableValue.d.ts +3 -0
  274. package/dist/variables/VariableValue.js +5 -0
  275. package/dist/variables/VariableValueContainingReferences.d.ts +24 -0
  276. package/dist/variables/VariableValueContainingReferences.js +97 -0
  277. package/dist/variables/__tests__/resolveAllReferences.test.d.ts +1 -0
  278. package/dist/variables/__tests__/resolveAllReferences.test.js +218 -0
  279. package/dist/variables/__tests__/resolveAllReferencesOnce.test.d.ts +1 -0
  280. package/dist/variables/__tests__/resolveAllReferencesOnce.test.js +171 -0
  281. package/dist/variables/__tests__/resolveReferencesOnce.test.d.ts +1 -0
  282. package/dist/variables/__tests__/resolveReferencesOnce.test.js +199 -0
  283. package/dist/variables/__tests__/variableValue.test.d.ts +1 -0
  284. package/dist/variables/__tests__/variableValue.test.js +36 -0
  285. package/dist/variables/resolveAllReferences.d.ts +3 -0
  286. package/dist/{pipeline/createChildPipeline.js โ†’ variables/resolveAllReferences.js} +44 -48
  287. package/dist/variables/resolveAllReferencesOnce.d.ts +5 -0
  288. package/dist/variables/resolveAllReferencesOnce.js +191 -0
  289. package/dist/variables/resolveReferencesOnce.d.ts +8 -0
  290. package/dist/variables/resolveReferencesOnce.js +22 -0
  291. package/examples/.test-gen-ignore +1 -0
  292. package/examples/__snapshots__/cloud-run-health-check-defaults.test.ts.snap +1394 -0
  293. package/examples/__snapshots__/cloud-run-health-check-only-startup.test.ts.snap +1394 -0
  294. package/examples/__snapshots__/cloud-run-health-check.test.ts.snap +1394 -0
  295. package/examples/__snapshots__/cloud-run-http2.test.ts.snap +1394 -0
  296. package/examples/__snapshots__/cloud-run-llama.test.ts.snap +624 -0
  297. package/examples/__snapshots__/cloud-run-memory-limit.test.ts.snap +1394 -0
  298. package/examples/__snapshots__/cloud-run-meteor-with-worker.test.ts.snap +1394 -0
  299. package/examples/__snapshots__/cloud-run-nextjs.test.ts.snap +1410 -0
  300. package/examples/__snapshots__/cloud-run-no-cpu-throttling.test.ts.snap +1394 -0
  301. package/examples/__snapshots__/cloud-run-no-service.test.ts.snap +1502 -0
  302. package/examples/__snapshots__/cloud-run-non-public.test.ts.snap +1394 -0
  303. package/examples/__snapshots__/cloud-run-post-stop-job.test.ts.snap +1412 -0
  304. package/examples/__snapshots__/cloud-run-service-custom-vpc-connector.test.ts.snap +1462 -0
  305. package/examples/__snapshots__/cloud-run-service-custom-vpc.test.ts.snap +1462 -0
  306. package/examples/__snapshots__/cloud-run-service-gen2.test.ts.snap +1394 -0
  307. package/examples/__snapshots__/cloud-run-service-increase-timout.test.ts.snap +1394 -0
  308. package/examples/__snapshots__/cloud-run-service-with-volumes.test.ts.snap +1466 -0
  309. package/examples/__snapshots__/cloud-run-storybook.test.ts.snap +1284 -0
  310. package/examples/__snapshots__/cloud-run-with-gpu.test.ts.snap +1394 -0
  311. package/examples/__snapshots__/cloud-run-with-ngnix.test.ts.snap +1394 -0
  312. package/examples/__snapshots__/cloud-run-with-sql-legacy-jobs.test.ts.snap +1709 -0
  313. package/examples/__snapshots__/cloud-run-with-sql-multiple-dbs.test.ts.snap +4515 -0
  314. package/examples/__snapshots__/cloud-run-with-sql-reuse-db.test.ts.snap +2950 -0
  315. package/examples/__snapshots__/cloud-run-with-sql.test.ts.snap +1772 -0
  316. package/examples/__snapshots__/cloud-run-with-worker.test.ts.snap +1402 -0
  317. package/examples/__snapshots__/custom-build-job-with-tests.test.ts.snap +1261 -0
  318. package/examples/__snapshots__/custom-build-job.test.ts.snap +1156 -0
  319. package/examples/__snapshots__/custom-deploy.test.ts.snap +1059 -0
  320. package/examples/__snapshots__/custom-envs.test.ts.snap +786 -0
  321. package/examples/__snapshots__/custom-sbom-java.test.ts.snap +1152 -0
  322. package/examples/__snapshots__/custom-verify-job.test.ts.snap +1606 -0
  323. package/examples/__snapshots__/git-submodule.test.ts.snap +1395 -0
  324. package/examples/__snapshots__/kubernetes-application-customization.test.ts.snap +1713 -0
  325. package/examples/__snapshots__/kubernetes-with-cloud-sql.test.ts.snap +1733 -0
  326. package/examples/__snapshots__/kubernetes-with-jobs.test.ts.snap +3265 -0
  327. package/examples/__snapshots__/kubernetes-with-mongodb.test.ts.snap +1837 -0
  328. package/examples/__snapshots__/local-dot-env.test.ts.snap +1318 -0
  329. package/examples/__snapshots__/meteor-kubernetes.test.ts.snap +1790 -0
  330. package/examples/__snapshots__/multiline-var.test.ts.snap +5585 -0
  331. package/examples/__snapshots__/native-app.test.ts.snap +2210 -0
  332. package/examples/__snapshots__/node-build-with-custom-image.test.ts.snap +1394 -0
  333. package/examples/__snapshots__/node-build-with-docker-additions.test.ts.snap +1402 -0
  334. package/examples/__snapshots__/override-secrets.test.ts.snap +1419 -0
  335. package/examples/__snapshots__/rails-k8s-with-worker-dockerfile.test.ts.snap +1464 -0
  336. package/examples/__snapshots__/rails-k8s-with-worker.test.ts.snap +1444 -0
  337. package/examples/__snapshots__/referencing-other-vars.test.ts.snap +4645 -0
  338. package/examples/__snapshots__/wait-for-other-deploy.test.ts.snap +1424 -0
  339. package/examples/__snapshots__/workspace-api-www-turbo-cache.test.ts.snap +2298 -0
  340. package/examples/__snapshots__/workspace-api-www.test.ts.snap +2290 -0
  341. package/examples/__utils__/helpers.ts +9 -12
  342. package/examples/cloud-run-health-check-defaults.test.ts +11 -0
  343. package/examples/cloud-run-health-check-defaults.ts +28 -0
  344. package/examples/cloud-run-health-check-only-startup.test.ts +11 -0
  345. package/examples/cloud-run-health-check-only-startup.ts +38 -0
  346. package/examples/cloud-run-health-check.test.ts +11 -0
  347. package/examples/cloud-run-health-check.ts +45 -0
  348. package/examples/cloud-run-http2.test.ts +11 -0
  349. package/examples/cloud-run-http2.ts +29 -0
  350. package/examples/cloud-run-llama.test.ts +11 -0
  351. package/examples/cloud-run-llama.ts +40 -0
  352. package/examples/cloud-run-memory-limit.test.ts +11 -0
  353. package/examples/cloud-run-memory-limit.ts +12 -7
  354. package/examples/cloud-run-meteor-with-worker.test.ts +11 -0
  355. package/examples/cloud-run-meteor-with-worker.ts +13 -7
  356. package/examples/cloud-run-nextjs.test.ts +11 -0
  357. package/examples/cloud-run-nextjs.ts +28 -0
  358. package/examples/cloud-run-no-cpu-throttling.test.ts +11 -0
  359. package/examples/cloud-run-no-cpu-throttling.ts +8 -6
  360. package/examples/cloud-run-no-service.test.ts +11 -0
  361. package/examples/cloud-run-no-service.ts +39 -0
  362. package/examples/cloud-run-non-public.test.ts +11 -0
  363. package/examples/cloud-run-non-public.ts +7 -6
  364. package/examples/cloud-run-post-stop-job.test.ts +11 -0
  365. package/examples/cloud-run-post-stop-job.ts +15 -6
  366. package/examples/cloud-run-service-custom-vpc-connector.test.ts +11 -0
  367. package/examples/cloud-run-service-custom-vpc-connector.ts +37 -0
  368. package/examples/cloud-run-service-custom-vpc.test.ts +11 -0
  369. package/examples/cloud-run-service-custom-vpc.ts +39 -0
  370. package/examples/cloud-run-service-gen2.test.ts +11 -0
  371. package/examples/cloud-run-service-gen2.ts +8 -6
  372. package/examples/cloud-run-service-increase-timout.test.ts +11 -0
  373. package/examples/cloud-run-service-increase-timout.ts +29 -0
  374. package/examples/cloud-run-service-with-volumes.test.ts +11 -0
  375. package/examples/cloud-run-service-with-volumes.ts +64 -0
  376. package/examples/cloud-run-storybook.test.ts +11 -0
  377. package/examples/cloud-run-storybook.ts +33 -0
  378. package/examples/cloud-run-with-gpu.test.ts +11 -0
  379. package/examples/cloud-run-with-gpu.ts +30 -0
  380. package/examples/cloud-run-with-ngnix.test.ts +11 -0
  381. package/examples/cloud-run-with-ngnix.ts +29 -0
  382. package/examples/cloud-run-with-sql-legacy-jobs.test.ts +11 -0
  383. package/examples/cloud-run-with-sql-legacy-jobs.ts +49 -0
  384. package/examples/cloud-run-with-sql-multiple-dbs.test.ts +11 -0
  385. package/examples/cloud-run-with-sql-multiple-dbs.ts +87 -0
  386. package/examples/cloud-run-with-sql-reuse-db.test.ts +11 -0
  387. package/examples/cloud-run-with-sql-reuse-db.ts +7 -6
  388. package/examples/cloud-run-with-sql.test.ts +11 -0
  389. package/examples/cloud-run-with-sql.ts +45 -24
  390. package/examples/cloud-run-with-worker.test.ts +11 -0
  391. package/examples/cloud-run-with-worker.ts +8 -6
  392. package/examples/custom-build-job-with-tests.test.ts +11 -0
  393. package/examples/custom-build-job-with-tests.ts +7 -6
  394. package/examples/custom-build-job.test.ts +11 -0
  395. package/examples/custom-build-job.ts +7 -6
  396. package/examples/custom-deploy.test.ts +11 -0
  397. package/examples/custom-deploy.ts +22 -14
  398. package/examples/custom-envs.test.ts +11 -0
  399. package/examples/custom-envs.ts +7 -6
  400. package/examples/custom-sbom-java.test.ts +11 -0
  401. package/examples/custom-sbom-java.ts +12 -8
  402. package/examples/custom-verify-job.test.ts +11 -0
  403. package/examples/custom-verify-job.ts +65 -0
  404. package/examples/git-submodule.test.ts +11 -0
  405. package/examples/git-submodule.ts +30 -0
  406. package/examples/kubernetes-application-customization.test.ts +11 -0
  407. package/examples/kubernetes-application-customization.ts +9 -6
  408. package/examples/kubernetes-with-cloud-sql.test.ts +11 -0
  409. package/examples/kubernetes-with-cloud-sql.ts +9 -6
  410. package/examples/kubernetes-with-jobs.test.ts +11 -0
  411. package/examples/kubernetes-with-jobs.ts +9 -6
  412. package/examples/kubernetes-with-mongodb.test.ts +11 -0
  413. package/examples/kubernetes-with-mongodb.ts +9 -6
  414. package/examples/local-dot-env.test.ts +11 -0
  415. package/examples/local-dot-env.ts +27 -0
  416. package/examples/meteor-kubernetes.test.ts +11 -0
  417. package/examples/meteor-kubernetes.ts +6 -7
  418. package/examples/multiline-var.test.ts +11 -0
  419. package/examples/multiline-var.ts +107 -0
  420. package/examples/native-app.test.ts +11 -0
  421. package/examples/native-app.ts +24 -19
  422. package/examples/node-build-with-custom-image.test.ts +11 -0
  423. package/examples/node-build-with-custom-image.ts +7 -6
  424. package/examples/node-build-with-docker-additions.test.ts +11 -0
  425. package/examples/node-build-with-docker-additions.ts +7 -6
  426. package/examples/override-secrets.test.ts +11 -0
  427. package/examples/override-secrets.ts +44 -0
  428. package/examples/rails-k8s-with-worker-dockerfile.test.ts +33 -0
  429. package/examples/rails-k8s-with-worker.test.ts +11 -0
  430. package/examples/rails-k8s-with-worker.ts +13 -13
  431. package/examples/referencing-other-vars.test.ts +11 -0
  432. package/examples/referencing-other-vars.ts +83 -0
  433. package/examples/wait-for-other-deploy.test.ts +11 -0
  434. package/examples/wait-for-other-deploy.ts +6 -5
  435. package/examples/workspace-api-www-turbo-cache.test.ts +11 -0
  436. package/examples/workspace-api-www-turbo-cache.ts +52 -0
  437. package/examples/workspace-api-www.test.ts +11 -0
  438. package/examples/workspace-api-www.ts +46 -0
  439. package/package.json +23 -26
  440. package/scripts/generate-examples-test.ts +84 -0
  441. package/scripts/generate-gitlab-ci-types.ts +2 -2
  442. package/scripts/tsconfig.json +7 -0
  443. package/src/bash/BashExpression.ts +78 -0
  444. package/src/bash/bashEscape.ts +164 -0
  445. package/src/bash/bashExpressionPerPipelineType.ts +16 -0
  446. package/src/bash/bashYaml.ts +80 -0
  447. package/src/bash/getInjectVarsScript.ts +21 -0
  448. package/src/bash/index.ts +2 -0
  449. package/src/build/artifacts/createBuildJobArtifact.ts +63 -0
  450. package/src/build/base/__tests__/createArtifactsConfig.test.ts +3 -3
  451. package/src/build/base/constants.ts +1 -1
  452. package/src/build/base/createAppBuildJob.ts +40 -24
  453. package/src/build/base/createArtifactsConfig.ts +2 -2
  454. package/src/build/base/createBuildJobDefinition.ts +37 -0
  455. package/src/build/base/index.ts +40 -8
  456. package/src/build/base/writeBuildInfo.ts +3 -3
  457. package/src/build/base/writeDotEnv.ts +25 -6
  458. package/src/build/cache/createJobCache.ts +83 -0
  459. package/src/build/cache/getAllCacheConfigsFromConfig.ts +29 -0
  460. package/src/build/cache/transformLegacyJobCache.ts +14 -0
  461. package/src/build/custom/__tests__/testJob.test.ts +10 -13
  462. package/src/build/custom/buildJob.ts +11 -37
  463. package/src/build/custom/index.ts +4 -2
  464. package/src/build/custom/testJob.ts +24 -21
  465. package/src/build/docker.ts +110 -49
  466. package/src/build/index.ts +45 -11
  467. package/src/build/node/buildJob.ts +68 -69
  468. package/src/build/node/cache.ts +28 -34
  469. package/src/build/node/constants.ts +2 -2
  470. package/src/build/node/index.ts +13 -4
  471. package/src/build/node/meteor.ts +19 -24
  472. package/src/build/node/testJob.ts +44 -25
  473. package/src/build/node/yarn.ts +22 -15
  474. package/src/build/rails/build.ts +15 -9
  475. package/src/build/rails/index.ts +4 -2
  476. package/src/build/rails/test.ts +41 -12
  477. package/src/build/sbom.ts +21 -11
  478. package/src/build/types.ts +198 -47
  479. package/src/catladder-gitlab.ts +7 -56
  480. package/src/config/__tests__/__snapshots__/getAllEnvs.test.ts.snap +31 -0
  481. package/src/config/__tests__/__snapshots__/getAllEnvsInAllComponents.test.ts.snap +15 -0
  482. package/src/config/__tests__/getAllEnvs.test.ts +71 -0
  483. package/src/config/__tests__/getAllEnvsInAllComponents.test.ts +63 -0
  484. package/src/config/configruedEnvs.ts +6 -6
  485. package/src/config/readConfig.ts +15 -22
  486. package/src/constants.ts +5 -2
  487. package/src/context/createAllComponentsContext.ts +31 -0
  488. package/src/context/createComponentContext.ts +148 -0
  489. package/src/context/createWorkspaceContext.ts +56 -0
  490. package/src/context/getBuildInfoVariables.ts +36 -0
  491. package/src/context/getEnvConfig.ts +25 -5
  492. package/src/context/getEnvType.ts +1 -1
  493. package/src/context/getEnvironment.ts +8 -24
  494. package/src/context/getEnvironmentContext.ts +25 -29
  495. package/src/context/getEnvironmentVariables.ts +101 -83
  496. package/src/context/getLabels.ts +8 -5
  497. package/src/context/getReviewSlug.ts +27 -0
  498. package/src/context/index.ts +1 -65
  499. package/src/context/transformJobOnlyVars.ts +6 -3
  500. package/src/context/utils/envVars.ts +5 -4
  501. package/src/deploy/base/deploy.ts +63 -47
  502. package/src/deploy/base/index.ts +11 -6
  503. package/src/deploy/base/rollback.ts +11 -16
  504. package/src/deploy/base/stop.ts +11 -15
  505. package/src/deploy/base/variables.ts +1 -1
  506. package/src/deploy/cloudRun/artifactsRegistry.ts +32 -28
  507. package/src/deploy/cloudRun/cleanup.ts +5 -5
  508. package/src/deploy/cloudRun/cloudRunRevisions.ts +9 -11
  509. package/src/deploy/cloudRun/createJobs/cloudRunJobs.ts +71 -153
  510. package/src/deploy/cloudRun/createJobs/cloudRunServices.ts +65 -26
  511. package/src/deploy/cloudRun/createJobs/common.ts +7 -7
  512. package/src/deploy/cloudRun/createJobs/constants.ts +1 -0
  513. package/src/deploy/cloudRun/createJobs/execute/onDeploy.ts +102 -0
  514. package/src/deploy/cloudRun/createJobs/execute/schedules.ts +186 -0
  515. package/src/deploy/cloudRun/createJobs/getCloudRunDeployScripts.ts +27 -16
  516. package/src/deploy/cloudRun/createJobs/getCloudRunStopScripts.ts +9 -11
  517. package/src/deploy/cloudRun/createJobs/healthCheck.ts +64 -0
  518. package/src/deploy/cloudRun/createJobs/index.ts +20 -14
  519. package/src/deploy/cloudRun/createJobs/volumes.ts +23 -0
  520. package/src/deploy/cloudRun/index.ts +94 -60
  521. package/src/deploy/cloudRun/utils/cloudRunExecutionUrl.ts +20 -0
  522. package/src/deploy/cloudRun/utils/createArgsString.ts +6 -2
  523. package/src/deploy/cloudRun/utils/database.ts +116 -9
  524. package/src/deploy/cloudRun/utils/gcloudServiceAccountLoginCommands.ts +5 -3
  525. package/src/deploy/cloudRun/utils/getJobOrServiceArgs.ts +18 -0
  526. package/src/deploy/cloudRun/utils/getServiceName.ts +2 -2
  527. package/src/deploy/cloudRun/utils/jobName.ts +22 -2
  528. package/src/deploy/cloudRun/utils/removeFirstLinesFromCommandOutput.ts +1 -1
  529. package/src/deploy/cloudSql/utils.ts +13 -10
  530. package/src/deploy/custom/deployJob.ts +15 -10
  531. package/src/deploy/custom/index.ts +2 -2
  532. package/src/deploy/dockerTag/deployJob.ts +6 -7
  533. package/src/deploy/dockerTag/index.ts +8 -7
  534. package/src/deploy/index.ts +15 -12
  535. package/src/deploy/kubernetes/additionalSecretKeys.ts +3 -1
  536. package/src/deploy/kubernetes/cloudSql/index.ts +16 -25
  537. package/src/deploy/kubernetes/deployJob.ts +30 -21
  538. package/src/deploy/kubernetes/index.ts +43 -35
  539. package/src/deploy/kubernetes/kubeEnv.ts +12 -10
  540. package/src/deploy/kubernetes/kubeValues.ts +25 -20
  541. package/src/deploy/kubernetes/mongodb.ts +15 -15
  542. package/src/deploy/sbom.ts +20 -10
  543. package/src/deploy/types/base.ts +3 -3
  544. package/src/deploy/types/custom.ts +3 -7
  545. package/src/deploy/types/googleCloudRun.ts +359 -2
  546. package/src/deploy/types/index.ts +9 -2
  547. package/src/deploy/types/kubernetes.ts +1 -36
  548. package/src/deploy/utils.ts +5 -5
  549. package/src/globalScriptFunctions/index.ts +30 -0
  550. package/src/index.ts +4 -1
  551. package/src/packageInfos.ts +14 -0
  552. package/src/pipeline/__tests__/__snapshots__/getPipelineStages.test.ts.snap +69 -0
  553. package/src/pipeline/__tests__/getPipelineStages.test.ts +63 -0
  554. package/src/pipeline/createAllJobs.ts +67 -33
  555. package/src/pipeline/createJobsForComponent.ts +17 -37
  556. package/src/pipeline/createJobsForWorkspace.ts +12 -0
  557. package/src/pipeline/createMainPipeline.ts +118 -0
  558. package/src/pipeline/generatePipelineFiles.ts +100 -0
  559. package/src/pipeline/getPipelineStages.ts +23 -0
  560. package/src/pipeline/gitlab/createGitlabJobs.ts +398 -108
  561. package/src/pipeline/gitlab/createGitlabPipeline.ts +35 -0
  562. package/src/pipeline/gitlab/gitlabReleaseJobs.ts +23 -0
  563. package/src/pipeline/gitlab/sortGitLabJobDefProps.ts +59 -0
  564. package/src/pipeline/index.ts +2 -1
  565. package/src/pipeline/packageManager.ts +42 -18
  566. package/src/pipeline/yarn/yarnUtils.ts +15 -12
  567. package/src/rules/index.ts +41 -18
  568. package/src/runner/index.ts +0 -1
  569. package/src/types/config.ts +62 -23
  570. package/src/types/context.ts +167 -36
  571. package/src/types/environmentContext.ts +18 -13
  572. package/src/types/gitlab-ci-yml.ts +0 -1
  573. package/src/types/gitlab-types.ts +10 -7
  574. package/src/types/index.ts +2 -0
  575. package/src/types/jobDefinition.ts +34 -0
  576. package/src/types/jobs.ts +31 -15
  577. package/src/types/utils.ts +4 -4
  578. package/src/utils/gitlab.ts +20 -3
  579. package/src/utils/index.ts +6 -3
  580. package/src/utils/jsonParse.ts +7 -0
  581. package/src/utils/removeUndefined.ts +4 -0
  582. package/src/utils/writeFiles.ts +52 -0
  583. package/src/variables/VariableValue.ts +6 -0
  584. package/src/variables/VariableValueContainingReferences.ts +89 -0
  585. package/src/variables/__tests__/resolveAllReferences.test.ts +110 -0
  586. package/src/variables/__tests__/resolveAllReferencesOnce.test.ts +64 -0
  587. package/src/variables/__tests__/resolveReferencesOnce.test.ts +117 -0
  588. package/src/variables/__tests__/variableValue.test.ts +73 -0
  589. package/src/variables/resolveAllReferences.ts +46 -0
  590. package/src/variables/resolveAllReferencesOnce.ts +44 -0
  591. package/src/variables/resolveReferencesOnce.ts +29 -0
  592. package/bin/catladder-gitlab-dev.js +0 -3
  593. package/bin/catladder-gitlab.js +0 -3
  594. package/dist/bundles/catladder-gitlab/index.js +0 -34559
  595. package/dist/context/__tests__/resolveReferences.test.js +0 -336
  596. package/dist/context/resolveReferences.d.ts +0 -4
  597. package/dist/context/resolveReferences.js +0 -254
  598. package/dist/deploy/cloudRun/createJobs/variables.d.ts +0 -5
  599. package/dist/deploy/cloudRun/createJobs/variables.js +0 -19
  600. package/dist/deploy/kubernetes/processSecretsAsFiles.d.ts +0 -84
  601. package/dist/deploy/kubernetes/processSecretsAsFiles.js +0 -31
  602. package/dist/pipeline/commitInfo/getBuildId.d.ts +0 -6
  603. package/dist/pipeline/commitInfo/getCommitInfo.d.ts +0 -2
  604. package/dist/pipeline/createChildPipeline.d.ts +0 -3
  605. package/examples/__snapshots__/cloud-run-memory-limit.ts.snap +0 -1839
  606. package/examples/__snapshots__/cloud-run-meteor-with-worker.ts.snap +0 -1807
  607. package/examples/__snapshots__/cloud-run-no-cpu-throttling.ts.snap +0 -1839
  608. package/examples/__snapshots__/cloud-run-non-public.ts.snap +0 -1839
  609. package/examples/__snapshots__/cloud-run-post-stop-job.ts.snap +0 -1849
  610. package/examples/__snapshots__/cloud-run-service-gen2.ts.snap +0 -1839
  611. package/examples/__snapshots__/cloud-run-with-sql-reuse-db.ts.snap +0 -3647
  612. package/examples/__snapshots__/cloud-run-with-sql.ts.snap +0 -3658
  613. package/examples/__snapshots__/cloud-run-with-worker.ts.snap +0 -1847
  614. package/examples/__snapshots__/custom-build-job-with-tests.ts.snap +0 -1663
  615. package/examples/__snapshots__/custom-build-job.ts.snap +0 -1375
  616. package/examples/__snapshots__/custom-deploy.ts.snap +0 -1625
  617. package/examples/__snapshots__/custom-envs.ts.snap +0 -1127
  618. package/examples/__snapshots__/custom-sbom-java.ts.snap +0 -1383
  619. package/examples/__snapshots__/kubernetes-application-customization.ts.snap +0 -2573
  620. package/examples/__snapshots__/kubernetes-with-cloud-sql-legacy.ts.snap +0 -2533
  621. package/examples/__snapshots__/kubernetes-with-cloud-sql.ts.snap +0 -2545
  622. package/examples/__snapshots__/kubernetes-with-jobs.ts.snap +0 -4660
  623. package/examples/__snapshots__/kubernetes-with-mongodb.ts.snap +0 -2737
  624. package/examples/__snapshots__/meteor-kubernetes.ts.snap +0 -2658
  625. package/examples/__snapshots__/native-app.ts.snap +0 -3007
  626. package/examples/__snapshots__/node-build-with-custom-image.ts.snap +0 -1839
  627. package/examples/__snapshots__/node-build-with-docker-additions.ts.snap +0 -1839
  628. package/examples/__snapshots__/rails-k8s-with-worker.ts.snap +0 -4291
  629. package/examples/__snapshots__/wait-for-other-deploy.ts.snap +0 -2049
  630. package/examples/kubernetes-with-cloud-sql-legacy.ts +0 -33
  631. package/scripts/bundle +0 -2
  632. package/src/context/__tests__/resolveReferences.test.ts +0 -143
  633. package/src/context/resolveReferences.ts +0 -70
  634. package/src/deploy/cloudRun/createJobs/variables.ts +0 -21
  635. package/src/deploy/kubernetes/processSecretsAsFiles.ts +0 -34
  636. package/src/pipeline/commitInfo/getBuildId.ts +0 -17
  637. package/src/pipeline/commitInfo/getCommitInfo.ts +0 -15
  638. package/src/pipeline/createChildPipeline.ts +0 -46
  639. /package/dist/{context/__tests__/resolveReferences.test.d.ts โ†’ config/__tests__/getAllEnvs.test.d.ts} +0 -0
@@ -0,0 +1,786 @@
1
+ // Jest Snapshot v1, https://goo.gl/fbAQLP
2
+
3
+ exports[`matches snapshot for custom-envs local pipeline YAML 1`] = `
4
+ "image: path/to/docker/jobs-default:the-version
5
+ stages:
6
+ - setup
7
+ - setup dev
8
+ - setup review
9
+ - setup stage
10
+ - setup prod
11
+ - setup asdf
12
+ - setup bla
13
+ - test
14
+ - test dev
15
+ - test review
16
+ - test stage
17
+ - test prod
18
+ - test asdf
19
+ - test bla
20
+ - build
21
+ - build dev
22
+ - build review
23
+ - build stage
24
+ - build prod
25
+ - build asdf
26
+ - build bla
27
+ - deploy
28
+ - deploy dev
29
+ - deploy review
30
+ - deploy stage
31
+ - deploy prod
32
+ - deploy asdf
33
+ - deploy bla
34
+ - verify
35
+ - verify dev
36
+ - verify review
37
+ - verify stage
38
+ - verify prod
39
+ - verify asdf
40
+ - verify bla
41
+ - rollback
42
+ - rollback dev
43
+ - rollback review
44
+ - rollback stage
45
+ - rollback prod
46
+ - rollback asdf
47
+ - rollback bla
48
+ - stop
49
+ - stop dev
50
+ - stop review
51
+ - stop stage
52
+ - stop prod
53
+ - stop asdf
54
+ - stop bla
55
+ - release
56
+ variables:
57
+ FF_USE_FASTZIP: 'true'
58
+ ARTIFACT_COMPRESSION_LEVEL: fast
59
+ CACHE_COMPRESSION_LEVEL: fast
60
+ TRANSFER_METER_FREQUENCY: 5s
61
+ GIT_DEPTH: '1'
62
+ before_script:
63
+ - |-
64
+ function escapeForDotEnv () {
65
+ input="\${1:-$(cat)}"
66
+ input="\${input//$'\\n'/\\\\n}"
67
+ if [[ "$input" == *\\\\n* ]]; then
68
+ if [[ "$input" == *\\"* && "$input" == *\\'* && "$input" == *\\\`* ]]; then
69
+ printf "\\"%s\\"\\n" "$input"
70
+ elif [[ "$input" == *\\"* && "$input" == *\\'* ]]; then
71
+ printf "\`%s\`\\n" "$input"
72
+ elif [[ "$input" == *\\"* ]]; then
73
+ printf "'%s'\\n" "$input"
74
+ else
75
+ printf "\\"%s\\"\\n" "$input"
76
+ fi
77
+ else
78
+ printf "%s\\n" "$input"
79
+ fi
80
+ }
81
+ - |-
82
+ function collapseable_section_start () {
83
+ local section_title="\${1}"
84
+ local section_description="\${2:-$section_title}"
85
+ echo -e "section_start:\`date +%s\`:\${section_title}[collapsed=true]\\r\\e[0K\${section_description}"
86
+ }
87
+ - |-
88
+ function collapseable_section_end () {
89
+ local section_title="\${1}"
90
+ echo -e "section_end:\`date +%s\`:\${section_title}\\r\\e[0K"
91
+ }
92
+ api ๐Ÿ›ก audit:
93
+ stage: test
94
+ image: path/to/docker/jobs-default:the-version
95
+ variables:
96
+ KUBERNETES_CPU_REQUEST: '0.45'
97
+ KUBERNETES_MEMORY_REQUEST: 1Gi
98
+ KUBERNETES_MEMORY_LIMIT: 4Gi
99
+ script:
100
+ - collapseable_section_start "injectvars" "Injecting variables"
101
+ - export APP_PATH="api"
102
+ - collapseable_section_end "injectvars"
103
+ - cd api
104
+ - yarn npm audit --environment production
105
+ rules:
106
+ - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH && $CI_COMMIT_MESSAGE !~ /^chore\\(release\\).*/
107
+ - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH && $CI_COMMIT_MESSAGE !~ /^chore\\(release\\).*/
108
+ - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH && $CI_COMMIT_MESSAGE !~ /^chore\\(release\\).*/
109
+ - if: $CI_MERGE_REQUEST_ID
110
+ needs: []
111
+ retry: &a1
112
+ max: 2
113
+ when:
114
+ - runner_system_failure
115
+ - stuck_or_timeout_failure
116
+ interruptible: true
117
+ allow_failure: true
118
+ api ๐Ÿ‘ฎ lint:
119
+ stage: test
120
+ image: path/to/docker/jobs-default:the-version
121
+ variables:
122
+ KUBERNETES_CPU_REQUEST: '0.45'
123
+ KUBERNETES_MEMORY_REQUEST: 1Gi
124
+ KUBERNETES_MEMORY_LIMIT: 4Gi
125
+ script:
126
+ - collapseable_section_start "injectvars" "Injecting variables"
127
+ - export APP_PATH="api"
128
+ - collapseable_section_end "injectvars"
129
+ - collapseable_section_start "nodeinstall" "Ensure node version"
130
+ - if [ -f ~/.nvm/nvm.sh ]; then source ~/.nvm/nvm.sh; fi
131
+ - if command -v nvm &> /dev/null && [ -f ./.nvmrc ]; then nvm install; fi
132
+ - collapseable_section_end "nodeinstall"
133
+ - cd api
134
+ - collapseable_section_start "nodeinstall" "Ensure node version"
135
+ - if [ -f ~/.nvm/nvm.sh ]; then source ~/.nvm/nvm.sh; fi
136
+ - if command -v nvm &> /dev/null && [ -f ./.nvmrc ]; then nvm install; fi
137
+ - collapseable_section_end "nodeinstall"
138
+ - collapseable_section_start "yarninstall" "Yarn install"
139
+ - yarn install --immutable
140
+ - collapseable_section_end "yarninstall"
141
+ - yarn lint
142
+ cache:
143
+ - key: api-yarn
144
+ policy: pull-push
145
+ paths:
146
+ - api/.yarn
147
+ - key: api-node-modules
148
+ policy: pull-push
149
+ paths:
150
+ - api/node_modules
151
+ rules:
152
+ - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH && $CI_COMMIT_MESSAGE !~ /^chore\\(release\\).*/
153
+ - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH && $CI_COMMIT_MESSAGE !~ /^chore\\(release\\).*/
154
+ - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH && $CI_COMMIT_MESSAGE !~ /^chore\\(release\\).*/
155
+ - if: $CI_MERGE_REQUEST_ID
156
+ needs: []
157
+ retry: *a1
158
+ interruptible: true
159
+ api ๐Ÿงช test:
160
+ stage: test
161
+ image: path/to/docker/jobs-testing-chrome:the-version
162
+ variables:
163
+ KUBERNETES_CPU_REQUEST: '0.45'
164
+ KUBERNETES_MEMORY_REQUEST: 1Gi
165
+ KUBERNETES_MEMORY_LIMIT: 4Gi
166
+ script:
167
+ - collapseable_section_start "injectvars" "Injecting variables"
168
+ - export APP_PATH="api"
169
+ - collapseable_section_end "injectvars"
170
+ - collapseable_section_start "nodeinstall" "Ensure node version"
171
+ - if [ -f ~/.nvm/nvm.sh ]; then source ~/.nvm/nvm.sh; fi
172
+ - if command -v nvm &> /dev/null && [ -f ./.nvmrc ]; then nvm install; fi
173
+ - collapseable_section_end "nodeinstall"
174
+ - cd api
175
+ - collapseable_section_start "nodeinstall" "Ensure node version"
176
+ - if [ -f ~/.nvm/nvm.sh ]; then source ~/.nvm/nvm.sh; fi
177
+ - if command -v nvm &> /dev/null && [ -f ./.nvmrc ]; then nvm install; fi
178
+ - collapseable_section_end "nodeinstall"
179
+ - collapseable_section_start "yarninstall" "Yarn install"
180
+ - yarn install --immutable
181
+ - collapseable_section_end "yarninstall"
182
+ - yarn test
183
+ cache:
184
+ - key: api-yarn
185
+ policy: pull-push
186
+ paths:
187
+ - api/.yarn
188
+ - key: api-node-modules
189
+ policy: pull-push
190
+ paths:
191
+ - api/node_modules
192
+ rules:
193
+ - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH && $CI_COMMIT_MESSAGE !~ /^chore\\(release\\).*/
194
+ - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH && $CI_COMMIT_MESSAGE !~ /^chore\\(release\\).*/
195
+ - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH && $CI_COMMIT_MESSAGE !~ /^chore\\(release\\).*/
196
+ - if: $CI_MERGE_REQUEST_ID
197
+ needs: []
198
+ retry: *a1
199
+ interruptible: true
200
+ 'api ๐Ÿ”จ app | dev ':
201
+ stage: build
202
+ image: path/to/docker/jobs-default:the-version
203
+ variables:
204
+ KUBERNETES_CPU_REQUEST: '0.45'
205
+ KUBERNETES_MEMORY_REQUEST: 1Gi
206
+ KUBERNETES_MEMORY_LIMIT: 4Gi
207
+ script:
208
+ - collapseable_section_start "injectvars" "Injecting variables"
209
+ - export ENV_SHORT="dev"
210
+ - export APP_DIR="api"
211
+ - export ENV_TYPE="dev"
212
+ - export BUILD_INFO_BUILD_ID="$(git describe --tags 2>/dev/null || git rev-parse HEAD)"
213
+ - export BUILD_INFO_BUILD_TIME="$CI_JOB_STARTED_AT"
214
+ - export BUILD_INFO_CURRENT_VERSION="$(tag=$(git ls-remote origin "refs/tags/v*[0-9]" 2>/dev/null | cut -f 2- | sort -V | tail -1 | sed 's/refs\\/tags\\/v//'); [ -z "$tag" ] && echo "0.0.0" || echo "$tag")"
215
+ - export HOSTNAME="unknown-host.example.com"
216
+ - export ROOT_URL="https://unknown-host.example.com"
217
+ - export HOSTNAME_INTERNAL="unknown-host.example.com"
218
+ - export ROOT_URL_INTERNAL="https://unknown-host.example.com"
219
+ - export _ALL_ENV_VAR_KEYS="[\\"ENV_SHORT\\",\\"APP_DIR\\",\\"ENV_TYPE\\",\\"BUILD_INFO_BUILD_ID\\",\\"BUILD_INFO_BUILD_TIME\\",\\"BUILD_INFO_CURRENT_VERSION\\",\\"HOSTNAME\\",\\"ROOT_URL\\",\\"HOSTNAME_INTERNAL\\",\\"ROOT_URL_INTERNAL\\"]"
220
+ - collapseable_section_end "injectvars"
221
+ - collapseable_section_start "write-dotenv-api" "write dot env for api"
222
+ - |-
223
+ cat <<EOF > api/.env
224
+ ENV_SHORT=dev
225
+ APP_DIR=api
226
+ ENV_TYPE=dev
227
+ HOSTNAME=unknown-host.example.com
228
+ ROOT_URL=https://unknown-host.example.com
229
+ HOSTNAME_INTERNAL=unknown-host.example.com
230
+ ROOT_URL_INTERNAL=https://unknown-host.example.com
231
+ _ALL_ENV_VAR_KEYS=["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_BUILD_ID","BUILD_INFO_BUILD_TIME","BUILD_INFO_CURRENT_VERSION","HOSTNAME","ROOT_URL","HOSTNAME_INTERNAL","ROOT_URL_INTERNAL"]
232
+ EOF
233
+ - collapseable_section_end "write-dotenv-api"
234
+ - echo '{"id":"$(git describe --tags 2>/dev/null || git rev-parse HEAD)","time":"$CI_JOB_STARTED_AT"}' > api/__build_info.json
235
+ - collapseable_section_start "nodeinstall" "Ensure node version"
236
+ - if [ -f ~/.nvm/nvm.sh ]; then source ~/.nvm/nvm.sh; fi
237
+ - if command -v nvm &> /dev/null && [ -f ./.nvmrc ]; then nvm install; fi
238
+ - collapseable_section_end "nodeinstall"
239
+ - cd api
240
+ - collapseable_section_start "nodeinstall" "Ensure node version"
241
+ - if [ -f ~/.nvm/nvm.sh ]; then source ~/.nvm/nvm.sh; fi
242
+ - if command -v nvm &> /dev/null && [ -f ./.nvmrc ]; then nvm install; fi
243
+ - collapseable_section_end "nodeinstall"
244
+ - collapseable_section_start "yarninstall" "Yarn install"
245
+ - yarn install --immutable
246
+ - collapseable_section_end "yarninstall"
247
+ - yarn build
248
+ cache:
249
+ - key: api-yarn
250
+ policy: pull-push
251
+ paths:
252
+ - api/.yarn
253
+ - key: api-node-modules
254
+ policy: pull-push
255
+ paths:
256
+ - api/node_modules
257
+ artifacts:
258
+ paths:
259
+ - api/__build_info.json
260
+ - api/.next
261
+ - api/dist
262
+ exclude:
263
+ - api/.env
264
+ expire_in: 1 day
265
+ when: always
266
+ reports: {}
267
+ rules:
268
+ - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH && $CI_COMMIT_MESSAGE !~ /^chore\\(release\\).*/
269
+ needs: []
270
+ retry: *a1
271
+ interruptible: true
272
+ 'api ๐Ÿงพ sbom | dev ':
273
+ stage: build
274
+ image:
275
+ name: aquasec/trivy:0.58.2
276
+ entrypoint:
277
+ - ''
278
+ variables: {}
279
+ script:
280
+ - collapseable_section_start "injectvars" "Injecting variables"
281
+ - collapseable_section_end "injectvars"
282
+ - trivy fs --quiet --format cyclonedx --output "__sbom.json" api
283
+ artifacts:
284
+ paths:
285
+ - __sbom.json
286
+ rules:
287
+ - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH && $CI_COMMIT_MESSAGE !~ /^chore\\(release\\).*/
288
+ needs: []
289
+ retry: *a1
290
+ interruptible: true
291
+ allow_failure: true
292
+ 'api ๐Ÿ”จ app | asdf ':
293
+ stage: build
294
+ image: path/to/docker/jobs-default:the-version
295
+ variables:
296
+ KUBERNETES_CPU_REQUEST: '0.45'
297
+ KUBERNETES_MEMORY_REQUEST: 1Gi
298
+ KUBERNETES_MEMORY_LIMIT: 4Gi
299
+ script:
300
+ - collapseable_section_start "injectvars" "Injecting variables"
301
+ - export ENV_SHORT="asdf"
302
+ - export APP_DIR="api"
303
+ - export ENV_TYPE="dev"
304
+ - export BUILD_INFO_BUILD_ID="$(git describe --tags 2>/dev/null || git rev-parse HEAD)"
305
+ - export BUILD_INFO_BUILD_TIME="$CI_JOB_STARTED_AT"
306
+ - export BUILD_INFO_CURRENT_VERSION="$(tag=$(git ls-remote origin "refs/tags/v*[0-9]" 2>/dev/null | cut -f 2- | sort -V | tail -1 | sed 's/refs\\/tags\\/v//'); [ -z "$tag" ] && echo "0.0.0" || echo "$tag")"
307
+ - export HOSTNAME="unknown-host.example.com"
308
+ - export ROOT_URL="https://unknown-host.example.com"
309
+ - export HOSTNAME_INTERNAL="unknown-host.example.com"
310
+ - export ROOT_URL_INTERNAL="https://unknown-host.example.com"
311
+ - export _ALL_ENV_VAR_KEYS="[\\"ENV_SHORT\\",\\"APP_DIR\\",\\"ENV_TYPE\\",\\"BUILD_INFO_BUILD_ID\\",\\"BUILD_INFO_BUILD_TIME\\",\\"BUILD_INFO_CURRENT_VERSION\\",\\"HOSTNAME\\",\\"ROOT_URL\\",\\"HOSTNAME_INTERNAL\\",\\"ROOT_URL_INTERNAL\\"]"
312
+ - collapseable_section_end "injectvars"
313
+ - collapseable_section_start "write-dotenv-api" "write dot env for api"
314
+ - |-
315
+ cat <<EOF > api/.env
316
+ ENV_SHORT=asdf
317
+ APP_DIR=api
318
+ ENV_TYPE=dev
319
+ HOSTNAME=unknown-host.example.com
320
+ ROOT_URL=https://unknown-host.example.com
321
+ HOSTNAME_INTERNAL=unknown-host.example.com
322
+ ROOT_URL_INTERNAL=https://unknown-host.example.com
323
+ _ALL_ENV_VAR_KEYS=["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_BUILD_ID","BUILD_INFO_BUILD_TIME","BUILD_INFO_CURRENT_VERSION","HOSTNAME","ROOT_URL","HOSTNAME_INTERNAL","ROOT_URL_INTERNAL"]
324
+ EOF
325
+ - collapseable_section_end "write-dotenv-api"
326
+ - echo '{"id":"$(git describe --tags 2>/dev/null || git rev-parse HEAD)","time":"$CI_JOB_STARTED_AT"}' > api/__build_info.json
327
+ - collapseable_section_start "nodeinstall" "Ensure node version"
328
+ - if [ -f ~/.nvm/nvm.sh ]; then source ~/.nvm/nvm.sh; fi
329
+ - if command -v nvm &> /dev/null && [ -f ./.nvmrc ]; then nvm install; fi
330
+ - collapseable_section_end "nodeinstall"
331
+ - cd api
332
+ - collapseable_section_start "nodeinstall" "Ensure node version"
333
+ - if [ -f ~/.nvm/nvm.sh ]; then source ~/.nvm/nvm.sh; fi
334
+ - if command -v nvm &> /dev/null && [ -f ./.nvmrc ]; then nvm install; fi
335
+ - collapseable_section_end "nodeinstall"
336
+ - collapseable_section_start "yarninstall" "Yarn install"
337
+ - yarn install --immutable
338
+ - collapseable_section_end "yarninstall"
339
+ - yarn build
340
+ cache:
341
+ - key: api-yarn
342
+ policy: pull-push
343
+ paths:
344
+ - api/.yarn
345
+ - key: api-node-modules
346
+ policy: pull-push
347
+ paths:
348
+ - api/node_modules
349
+ artifacts:
350
+ paths:
351
+ - api/__build_info.json
352
+ - api/.next
353
+ - api/dist
354
+ exclude:
355
+ - api/.env
356
+ expire_in: 1 day
357
+ when: always
358
+ reports: {}
359
+ rules:
360
+ - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH && $CI_COMMIT_MESSAGE !~ /^chore\\(release\\).*/
361
+ needs: []
362
+ retry: *a1
363
+ interruptible: true
364
+ 'api ๐Ÿงพ sbom | asdf ':
365
+ stage: build
366
+ image:
367
+ name: aquasec/trivy:0.58.2
368
+ entrypoint:
369
+ - ''
370
+ variables: {}
371
+ script:
372
+ - collapseable_section_start "injectvars" "Injecting variables"
373
+ - collapseable_section_end "injectvars"
374
+ - trivy fs --quiet --format cyclonedx --output "__sbom.json" api
375
+ artifacts:
376
+ paths:
377
+ - __sbom.json
378
+ rules:
379
+ - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH && $CI_COMMIT_MESSAGE !~ /^chore\\(release\\).*/
380
+ needs: []
381
+ retry: *a1
382
+ interruptible: true
383
+ allow_failure: true
384
+ 'api ๐Ÿ”จ app | bla ':
385
+ stage: build
386
+ image: path/to/docker/jobs-default:the-version
387
+ variables:
388
+ KUBERNETES_CPU_REQUEST: '0.45'
389
+ KUBERNETES_MEMORY_REQUEST: 1Gi
390
+ KUBERNETES_MEMORY_LIMIT: 4Gi
391
+ script:
392
+ - collapseable_section_start "injectvars" "Injecting variables"
393
+ - export ENV_SHORT="bla"
394
+ - export APP_DIR="api"
395
+ - export ENV_TYPE="dev"
396
+ - export BUILD_INFO_BUILD_ID="$(git describe --tags 2>/dev/null || git rev-parse HEAD)"
397
+ - export BUILD_INFO_BUILD_TIME="$CI_JOB_STARTED_AT"
398
+ - export BUILD_INFO_CURRENT_VERSION="$(tag=$(git ls-remote origin "refs/tags/v*[0-9]" 2>/dev/null | cut -f 2- | sort -V | tail -1 | sed 's/refs\\/tags\\/v//'); [ -z "$tag" ] && echo "0.0.0" || echo "$tag")"
399
+ - export HOSTNAME="unknown-host.example.com"
400
+ - export ROOT_URL="https://unknown-host.example.com"
401
+ - export HOSTNAME_INTERNAL="unknown-host.example.com"
402
+ - export ROOT_URL_INTERNAL="https://unknown-host.example.com"
403
+ - export _ALL_ENV_VAR_KEYS="[\\"ENV_SHORT\\",\\"APP_DIR\\",\\"ENV_TYPE\\",\\"BUILD_INFO_BUILD_ID\\",\\"BUILD_INFO_BUILD_TIME\\",\\"BUILD_INFO_CURRENT_VERSION\\",\\"HOSTNAME\\",\\"ROOT_URL\\",\\"HOSTNAME_INTERNAL\\",\\"ROOT_URL_INTERNAL\\"]"
404
+ - collapseable_section_end "injectvars"
405
+ - collapseable_section_start "write-dotenv-api" "write dot env for api"
406
+ - |-
407
+ cat <<EOF > api/.env
408
+ ENV_SHORT=bla
409
+ APP_DIR=api
410
+ ENV_TYPE=dev
411
+ HOSTNAME=unknown-host.example.com
412
+ ROOT_URL=https://unknown-host.example.com
413
+ HOSTNAME_INTERNAL=unknown-host.example.com
414
+ ROOT_URL_INTERNAL=https://unknown-host.example.com
415
+ _ALL_ENV_VAR_KEYS=["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_BUILD_ID","BUILD_INFO_BUILD_TIME","BUILD_INFO_CURRENT_VERSION","HOSTNAME","ROOT_URL","HOSTNAME_INTERNAL","ROOT_URL_INTERNAL"]
416
+ EOF
417
+ - collapseable_section_end "write-dotenv-api"
418
+ - echo '{"id":"$(git describe --tags 2>/dev/null || git rev-parse HEAD)","time":"$CI_JOB_STARTED_AT"}' > api/__build_info.json
419
+ - collapseable_section_start "nodeinstall" "Ensure node version"
420
+ - if [ -f ~/.nvm/nvm.sh ]; then source ~/.nvm/nvm.sh; fi
421
+ - if command -v nvm &> /dev/null && [ -f ./.nvmrc ]; then nvm install; fi
422
+ - collapseable_section_end "nodeinstall"
423
+ - cd api
424
+ - collapseable_section_start "nodeinstall" "Ensure node version"
425
+ - if [ -f ~/.nvm/nvm.sh ]; then source ~/.nvm/nvm.sh; fi
426
+ - if command -v nvm &> /dev/null && [ -f ./.nvmrc ]; then nvm install; fi
427
+ - collapseable_section_end "nodeinstall"
428
+ - collapseable_section_start "yarninstall" "Yarn install"
429
+ - yarn install --immutable
430
+ - collapseable_section_end "yarninstall"
431
+ - yarn build
432
+ cache:
433
+ - key: api-yarn
434
+ policy: pull-push
435
+ paths:
436
+ - api/.yarn
437
+ - key: api-node-modules
438
+ policy: pull-push
439
+ paths:
440
+ - api/node_modules
441
+ artifacts:
442
+ paths:
443
+ - api/__build_info.json
444
+ - api/.next
445
+ - api/dist
446
+ exclude:
447
+ - api/.env
448
+ expire_in: 1 day
449
+ when: always
450
+ reports: {}
451
+ rules:
452
+ - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH && $CI_COMMIT_MESSAGE !~ /^chore\\(release\\).*/
453
+ needs: []
454
+ retry: *a1
455
+ interruptible: true
456
+ 'api ๐Ÿงพ sbom | bla ':
457
+ stage: build
458
+ image:
459
+ name: aquasec/trivy:0.58.2
460
+ entrypoint:
461
+ - ''
462
+ variables: {}
463
+ script:
464
+ - collapseable_section_start "injectvars" "Injecting variables"
465
+ - collapseable_section_end "injectvars"
466
+ - trivy fs --quiet --format cyclonedx --output "__sbom.json" api
467
+ artifacts:
468
+ paths:
469
+ - __sbom.json
470
+ rules:
471
+ - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH && $CI_COMMIT_MESSAGE !~ /^chore\\(release\\).*/
472
+ needs: []
473
+ retry: *a1
474
+ interruptible: true
475
+ allow_failure: true
476
+ 'api ๐Ÿ”จ app | review ':
477
+ stage: build
478
+ image: path/to/docker/jobs-default:the-version
479
+ variables:
480
+ KUBERNETES_CPU_REQUEST: '0.45'
481
+ KUBERNETES_MEMORY_REQUEST: 1Gi
482
+ KUBERNETES_MEMORY_LIMIT: 4Gi
483
+ script:
484
+ - collapseable_section_start "injectvars" "Injecting variables"
485
+ - export ENV_SHORT="review"
486
+ - export APP_DIR="api"
487
+ - export ENV_TYPE="review"
488
+ - export BUILD_INFO_BUILD_ID="$(git describe --tags 2>/dev/null || git rev-parse HEAD)"
489
+ - export BUILD_INFO_BUILD_TIME="$CI_JOB_STARTED_AT"
490
+ - export BUILD_INFO_CURRENT_VERSION="$(tag=$(git ls-remote origin "refs/tags/v*[0-9]" 2>/dev/null | cut -f 2- | sort -V | tail -1 | sed 's/refs\\/tags\\/v//'); [ -z "$tag" ] && echo "0.0.0" || echo "$tag")"
491
+ - export HOSTNAME="unknown-host.example.com"
492
+ - export ROOT_URL="https://unknown-host.example.com"
493
+ - export HOSTNAME_INTERNAL="unknown-host.example.com"
494
+ - export ROOT_URL_INTERNAL="https://unknown-host.example.com"
495
+ - export _ALL_ENV_VAR_KEYS="[\\"ENV_SHORT\\",\\"APP_DIR\\",\\"ENV_TYPE\\",\\"BUILD_INFO_BUILD_ID\\",\\"BUILD_INFO_BUILD_TIME\\",\\"BUILD_INFO_CURRENT_VERSION\\",\\"HOSTNAME\\",\\"ROOT_URL\\",\\"HOSTNAME_INTERNAL\\",\\"ROOT_URL_INTERNAL\\"]"
496
+ - collapseable_section_end "injectvars"
497
+ - collapseable_section_start "write-dotenv-api" "write dot env for api"
498
+ - |-
499
+ cat <<EOF > api/.env
500
+ ENV_SHORT=review
501
+ APP_DIR=api
502
+ ENV_TYPE=review
503
+ HOSTNAME=unknown-host.example.com
504
+ ROOT_URL=https://unknown-host.example.com
505
+ HOSTNAME_INTERNAL=unknown-host.example.com
506
+ ROOT_URL_INTERNAL=https://unknown-host.example.com
507
+ _ALL_ENV_VAR_KEYS=["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_BUILD_ID","BUILD_INFO_BUILD_TIME","BUILD_INFO_CURRENT_VERSION","HOSTNAME","ROOT_URL","HOSTNAME_INTERNAL","ROOT_URL_INTERNAL"]
508
+ EOF
509
+ - collapseable_section_end "write-dotenv-api"
510
+ - echo '{"id":"$(git describe --tags 2>/dev/null || git rev-parse HEAD)","time":"$CI_JOB_STARTED_AT"}' > api/__build_info.json
511
+ - collapseable_section_start "nodeinstall" "Ensure node version"
512
+ - if [ -f ~/.nvm/nvm.sh ]; then source ~/.nvm/nvm.sh; fi
513
+ - if command -v nvm &> /dev/null && [ -f ./.nvmrc ]; then nvm install; fi
514
+ - collapseable_section_end "nodeinstall"
515
+ - cd api
516
+ - collapseable_section_start "nodeinstall" "Ensure node version"
517
+ - if [ -f ~/.nvm/nvm.sh ]; then source ~/.nvm/nvm.sh; fi
518
+ - if command -v nvm &> /dev/null && [ -f ./.nvmrc ]; then nvm install; fi
519
+ - collapseable_section_end "nodeinstall"
520
+ - collapseable_section_start "yarninstall" "Yarn install"
521
+ - yarn install --immutable
522
+ - collapseable_section_end "yarninstall"
523
+ - yarn build
524
+ cache:
525
+ - key: api-yarn
526
+ policy: pull-push
527
+ paths:
528
+ - api/.yarn
529
+ - key: api-node-modules
530
+ policy: pull-push
531
+ paths:
532
+ - api/node_modules
533
+ artifacts:
534
+ paths:
535
+ - api/__build_info.json
536
+ - api/.next
537
+ - api/dist
538
+ exclude:
539
+ - api/.env
540
+ expire_in: 1 day
541
+ when: always
542
+ reports: {}
543
+ rules:
544
+ - if: $CI_MERGE_REQUEST_ID
545
+ needs: []
546
+ retry: *a1
547
+ interruptible: true
548
+ 'api ๐Ÿงพ sbom | review ':
549
+ stage: build
550
+ image:
551
+ name: aquasec/trivy:0.58.2
552
+ entrypoint:
553
+ - ''
554
+ variables: {}
555
+ script:
556
+ - collapseable_section_start "injectvars" "Injecting variables"
557
+ - collapseable_section_end "injectvars"
558
+ - trivy fs --quiet --format cyclonedx --output "__sbom.json" api
559
+ artifacts:
560
+ paths:
561
+ - __sbom.json
562
+ rules:
563
+ - if: $CI_MERGE_REQUEST_ID
564
+ needs: []
565
+ retry: *a1
566
+ interruptible: true
567
+ allow_failure: true
568
+ 'api ๐Ÿ”จ app | stage ':
569
+ stage: build
570
+ image: path/to/docker/jobs-default:the-version
571
+ variables:
572
+ KUBERNETES_CPU_REQUEST: '0.45'
573
+ KUBERNETES_MEMORY_REQUEST: 1Gi
574
+ KUBERNETES_MEMORY_LIMIT: 4Gi
575
+ script:
576
+ - collapseable_section_start "injectvars" "Injecting variables"
577
+ - export ENV_SHORT="stage"
578
+ - export APP_DIR="api"
579
+ - export ENV_TYPE="stage"
580
+ - export BUILD_INFO_BUILD_ID="$(git describe --tags 2>/dev/null || git rev-parse HEAD)"
581
+ - export BUILD_INFO_BUILD_TIME="$CI_JOB_STARTED_AT"
582
+ - export BUILD_INFO_CURRENT_VERSION="$(tag=$(git ls-remote origin "refs/tags/v*[0-9]" 2>/dev/null | cut -f 2- | sort -V | tail -1 | sed 's/refs\\/tags\\/v//'); [ -z "$tag" ] && echo "0.0.0" || echo "$tag")"
583
+ - export HOSTNAME="unknown-host.example.com"
584
+ - export ROOT_URL="https://unknown-host.example.com"
585
+ - export HOSTNAME_INTERNAL="unknown-host.example.com"
586
+ - export ROOT_URL_INTERNAL="https://unknown-host.example.com"
587
+ - export _ALL_ENV_VAR_KEYS="[\\"ENV_SHORT\\",\\"APP_DIR\\",\\"ENV_TYPE\\",\\"BUILD_INFO_BUILD_ID\\",\\"BUILD_INFO_BUILD_TIME\\",\\"BUILD_INFO_CURRENT_VERSION\\",\\"HOSTNAME\\",\\"ROOT_URL\\",\\"HOSTNAME_INTERNAL\\",\\"ROOT_URL_INTERNAL\\"]"
588
+ - collapseable_section_end "injectvars"
589
+ - collapseable_section_start "write-dotenv-api" "write dot env for api"
590
+ - |-
591
+ cat <<EOF > api/.env
592
+ ENV_SHORT=stage
593
+ APP_DIR=api
594
+ ENV_TYPE=stage
595
+ HOSTNAME=unknown-host.example.com
596
+ ROOT_URL=https://unknown-host.example.com
597
+ HOSTNAME_INTERNAL=unknown-host.example.com
598
+ ROOT_URL_INTERNAL=https://unknown-host.example.com
599
+ _ALL_ENV_VAR_KEYS=["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_BUILD_ID","BUILD_INFO_BUILD_TIME","BUILD_INFO_CURRENT_VERSION","HOSTNAME","ROOT_URL","HOSTNAME_INTERNAL","ROOT_URL_INTERNAL"]
600
+ EOF
601
+ - collapseable_section_end "write-dotenv-api"
602
+ - echo '{"id":"$(git describe --tags 2>/dev/null || git rev-parse HEAD)","time":"$CI_JOB_STARTED_AT"}' > api/__build_info.json
603
+ - collapseable_section_start "nodeinstall" "Ensure node version"
604
+ - if [ -f ~/.nvm/nvm.sh ]; then source ~/.nvm/nvm.sh; fi
605
+ - if command -v nvm &> /dev/null && [ -f ./.nvmrc ]; then nvm install; fi
606
+ - collapseable_section_end "nodeinstall"
607
+ - cd api
608
+ - collapseable_section_start "nodeinstall" "Ensure node version"
609
+ - if [ -f ~/.nvm/nvm.sh ]; then source ~/.nvm/nvm.sh; fi
610
+ - if command -v nvm &> /dev/null && [ -f ./.nvmrc ]; then nvm install; fi
611
+ - collapseable_section_end "nodeinstall"
612
+ - collapseable_section_start "yarninstall" "Yarn install"
613
+ - yarn install --immutable
614
+ - collapseable_section_end "yarninstall"
615
+ - yarn build
616
+ cache:
617
+ - key: api-yarn
618
+ policy: pull-push
619
+ paths:
620
+ - api/.yarn
621
+ - key: api-node-modules
622
+ policy: pull-push
623
+ paths:
624
+ - api/node_modules
625
+ artifacts:
626
+ paths:
627
+ - api/__build_info.json
628
+ - api/.next
629
+ - api/dist
630
+ exclude:
631
+ - api/.env
632
+ expire_in: 1 day
633
+ when: always
634
+ reports: {}
635
+ rules:
636
+ - if: $CI_COMMIT_TAG
637
+ needs: []
638
+ retry: *a1
639
+ interruptible: true
640
+ 'api ๐Ÿงพ sbom | stage ':
641
+ stage: build
642
+ image:
643
+ name: aquasec/trivy:0.58.2
644
+ entrypoint:
645
+ - ''
646
+ variables: {}
647
+ script:
648
+ - collapseable_section_start "injectvars" "Injecting variables"
649
+ - collapseable_section_end "injectvars"
650
+ - trivy fs --quiet --format cyclonedx --output "__sbom.json" api
651
+ artifacts:
652
+ paths:
653
+ - __sbom.json
654
+ rules:
655
+ - if: $CI_COMMIT_TAG
656
+ needs: []
657
+ retry: *a1
658
+ interruptible: true
659
+ allow_failure: true
660
+ 'api ๐Ÿ”จ app | prod ':
661
+ stage: build
662
+ image: path/to/docker/jobs-default:the-version
663
+ variables:
664
+ KUBERNETES_CPU_REQUEST: '0.45'
665
+ KUBERNETES_MEMORY_REQUEST: 1Gi
666
+ KUBERNETES_MEMORY_LIMIT: 4Gi
667
+ script:
668
+ - collapseable_section_start "injectvars" "Injecting variables"
669
+ - export ENV_SHORT="prod"
670
+ - export APP_DIR="api"
671
+ - export ENV_TYPE="prod"
672
+ - export BUILD_INFO_BUILD_ID="$(git describe --tags 2>/dev/null || git rev-parse HEAD)"
673
+ - export BUILD_INFO_BUILD_TIME="$CI_JOB_STARTED_AT"
674
+ - export BUILD_INFO_CURRENT_VERSION="$(tag=$(git ls-remote origin "refs/tags/v*[0-9]" 2>/dev/null | cut -f 2- | sort -V | tail -1 | sed 's/refs\\/tags\\/v//'); [ -z "$tag" ] && echo "0.0.0" || echo "$tag")"
675
+ - export HOSTNAME="unknown-host.example.com"
676
+ - export ROOT_URL="https://unknown-host.example.com"
677
+ - export HOSTNAME_INTERNAL="unknown-host.example.com"
678
+ - export ROOT_URL_INTERNAL="https://unknown-host.example.com"
679
+ - export _ALL_ENV_VAR_KEYS="[\\"ENV_SHORT\\",\\"APP_DIR\\",\\"ENV_TYPE\\",\\"BUILD_INFO_BUILD_ID\\",\\"BUILD_INFO_BUILD_TIME\\",\\"BUILD_INFO_CURRENT_VERSION\\",\\"HOSTNAME\\",\\"ROOT_URL\\",\\"HOSTNAME_INTERNAL\\",\\"ROOT_URL_INTERNAL\\"]"
680
+ - collapseable_section_end "injectvars"
681
+ - collapseable_section_start "write-dotenv-api" "write dot env for api"
682
+ - |-
683
+ cat <<EOF > api/.env
684
+ ENV_SHORT=prod
685
+ APP_DIR=api
686
+ ENV_TYPE=prod
687
+ HOSTNAME=unknown-host.example.com
688
+ ROOT_URL=https://unknown-host.example.com
689
+ HOSTNAME_INTERNAL=unknown-host.example.com
690
+ ROOT_URL_INTERNAL=https://unknown-host.example.com
691
+ _ALL_ENV_VAR_KEYS=["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_BUILD_ID","BUILD_INFO_BUILD_TIME","BUILD_INFO_CURRENT_VERSION","HOSTNAME","ROOT_URL","HOSTNAME_INTERNAL","ROOT_URL_INTERNAL"]
692
+ EOF
693
+ - collapseable_section_end "write-dotenv-api"
694
+ - echo '{"id":"$(git describe --tags 2>/dev/null || git rev-parse HEAD)","time":"$CI_JOB_STARTED_AT"}' > api/__build_info.json
695
+ - collapseable_section_start "nodeinstall" "Ensure node version"
696
+ - if [ -f ~/.nvm/nvm.sh ]; then source ~/.nvm/nvm.sh; fi
697
+ - if command -v nvm &> /dev/null && [ -f ./.nvmrc ]; then nvm install; fi
698
+ - collapseable_section_end "nodeinstall"
699
+ - cd api
700
+ - collapseable_section_start "nodeinstall" "Ensure node version"
701
+ - if [ -f ~/.nvm/nvm.sh ]; then source ~/.nvm/nvm.sh; fi
702
+ - if command -v nvm &> /dev/null && [ -f ./.nvmrc ]; then nvm install; fi
703
+ - collapseable_section_end "nodeinstall"
704
+ - collapseable_section_start "yarninstall" "Yarn install"
705
+ - yarn install --immutable
706
+ - collapseable_section_end "yarninstall"
707
+ - yarn build
708
+ cache:
709
+ - key: api-yarn
710
+ policy: pull-push
711
+ paths:
712
+ - api/.yarn
713
+ - key: api-node-modules
714
+ policy: pull-push
715
+ paths:
716
+ - api/node_modules
717
+ artifacts:
718
+ paths:
719
+ - api/__build_info.json
720
+ - api/.next
721
+ - api/dist
722
+ exclude:
723
+ - api/.env
724
+ expire_in: 1 day
725
+ when: always
726
+ reports: {}
727
+ rules:
728
+ - if: $CI_COMMIT_TAG
729
+ needs: []
730
+ retry: *a1
731
+ interruptible: true
732
+ 'api ๐Ÿงพ sbom | prod ':
733
+ stage: build
734
+ image:
735
+ name: aquasec/trivy:0.58.2
736
+ entrypoint:
737
+ - ''
738
+ variables: {}
739
+ script:
740
+ - collapseable_section_start "injectvars" "Injecting variables"
741
+ - collapseable_section_end "injectvars"
742
+ - trivy fs --quiet --format cyclonedx --output "__sbom.json" api
743
+ artifacts:
744
+ paths:
745
+ - __sbom.json
746
+ rules:
747
+ - if: $CI_COMMIT_TAG
748
+ needs: []
749
+ retry: *a1
750
+ interruptible: true
751
+ allow_failure: true
752
+ create release:
753
+ stage: release
754
+ image: path/to/docker/semantic-release:the-version
755
+ script:
756
+ - semanticRelease
757
+ - echo '๐Ÿ‘‰ The project access token might be invald - run \`project-renew-token\` in catladder CLI to fix.'
758
+ rules:
759
+ - &a2
760
+ if: $CI_COMMIT_MESSAGE =~ /^chore\\(release\\).*/
761
+ when: never
762
+ - &a3
763
+ if: $CI_PIPELINE_SOURCE == "schedule"
764
+ when: never
765
+ - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH && $AUTO_RELEASE == "true"
766
+ when: on_success
767
+ - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
768
+ when: manual
769
+ - if: $CI_COMMIT_BRANCH =~ /^[0-9]+.([0-9]+|x).x$/
770
+ when: manual
771
+ โš ๏ธ force create release:
772
+ stage: release
773
+ image: path/to/docker/semantic-release:the-version
774
+ script:
775
+ - semanticRelease
776
+ - echo '๐Ÿ‘‰ The project access token might be invald - run \`project-renew-token\` in catladder CLI to fix.'
777
+ rules:
778
+ - *a2
779
+ - *a3
780
+ - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
781
+ when: manual
782
+ - if: $CI_COMMIT_BRANCH =~ /^[0-9]+.([0-9]+|x).x$/
783
+ when: manual
784
+ needs: []
785
+ "
786
+ `;