@catladder/pipeline 0.0.0-more-collapse-deeb54d7 โ†’ 0.0.0-multiple-gitlab-includes-1a40efc0

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