Advertisement
Guest User

full-pipeline calls this X number of times for whatever environments are listed

a guest
May 22nd, 2025
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.23 KB | None | 0 0
  1. spec:
  2. inputs:
  3. environmentName:
  4. default: "lab"
  5. options:
  6. - lab
  7. - dev
  8. - qa
  9. - uat
  10. - prod
  11. escEnvironment:
  12. pulumiBuildImage:
  13. dockerBuildImage:
  14. dockerTLSCertDir:
  15. dockerHost:
  16. dockerDriver:
  17. dockerBuildArgs:
  18. ecrRepository:
  19. gradleBuildImage:
  20. ecrRepoName:
  21. runnerTag:
  22. buildScript:
  23. ---
  24.  
  25. before_script:
  26. - export GRADLE_USER_HOME=`pwd`/.gradle
  27.  
  28. variables:
  29. GRADLE_OPTS: "-Dorg.gradle.daemon=false"
  30.  
  31. include:
  32. - local: dependencies/aws-oidc/template.yml
  33. - local: dependencies/pulumi-base-jobs/template.yml
  34. - local: dependencies/gitleaks/template.yml
  35. inputs:
  36. jobName: "gitleaks-scan"
  37. stageName: "build"
  38. runnerTag: $[[ inputs.runnerTag ]]
  39. - local: dependencies/iac-scan/template.yml
  40. inputs:
  41. jobName: "iac-scanner"
  42. stageName: "build"
  43. runnerTag: $[[ inputs.runnerTag ]]
  44. jobDependancy: "gitleaks-scan"
  45. - local: dependencies/gradle-audit/template.yml
  46. inputs:
  47. jobName: "gradle-audit"
  48. stageName: "build"
  49. gradleBuildImage: $[[ inputs.gradleBuildImage ]]
  50. runnerTag: $[[ inputs.runnerTag ]]
  51. jobDependancy: "iac-scanner"
  52. - local: dependencies/gradle-build/template.yml
  53. inputs:
  54. jobName: "build-container"
  55. stageName: "build"
  56. gradleBuildImage: $[[ inputs.gradleBuildImage ]]
  57. runnerTag: $[[ inputs.runnerTag ]]
  58. buildScript: $[[ inputs.buildScript ]]
  59. - local: dependencies/sonarqube/template.yml
  60. inputs:
  61. jobName: "sonarqube-check"
  62. stageName: "build"
  63. runnerTag: $[[ inputs.runnerTag ]]
  64. - local: dependencies/container-publish/template.yml
  65. inputs:
  66. jobName: "publish-container"
  67. stageName: "publish"
  68. dockerBuildArgs: $[[ inputs.dockerBuildArgs ]]
  69. ecrRepository: $[[ inputs.ecrRepository ]]
  70. escEnvironmentName: $[[ inputs.escEnvironment ]]
  71. artifactDependancy: "build-container"
  72. ecrRepoName: $[[ inputs.ecrRepoName ]]
  73. runnerTag: $[[ inputs.runnerTag ]]
  74. ####################################################################################################################
  75. ## LAB ##
  76. ####################################################################################################################
  77. - local: dependencies/pulumi-up/template.yml
  78. rules:
  79. - if: '$CI_COMMIT_BRANCH =~ /^feature\/.*|^hotfix\/.*/ && "$[[ inputs.environmentName ]]" == "lab"'
  80. inputs:
  81. jobName: "pulumi-up-lab"
  82. stageName: "up"
  83. jobDependancy: "publish-container"
  84. escEnvironmentName: $[[ inputs.escEnvironmentName ]]
  85. runnerTag: $[[ inputs.runnerTag ]]
  86. - local: dependencies/get-ecs-deployment-status/template.yml
  87. rules:
  88. - if: '$CI_COMMIT_BRANCH =~ /^feature\/.*|^hotfix\/.*/ && "$[[ inputs.environmentName ]]" == "lab"'
  89. inputs:
  90. jobName: "check-ecs-status"
  91. stageName: "up"
  92. jobDependancy: "pulumi-up-lab"
  93. escEnvironmentName: $[[ inputs.escEnvironment ]]
  94. runnerTag: $[[ inputs.runnerTag ]]
  95. ###################################################################################################################
  96. ## ##
  97. ###################################################################################################################
  98. ####################################################################################################################
  99. ## LAB-TO-DEV MR PREVIEW ##
  100. ####################################################################################################################
  101. - local: dependencies/gradle-build/template.yml
  102. rules:
  103. - if: '$CI_PIPELINE_SOURCE == "merge_request_event" && $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "develop"'
  104. inputs:
  105. jobName: "build"
  106. stageName: "preview"
  107. gradleBuildImage: $[[ inputs.gradleBuildImage ]]
  108. runnerTag: $[[ inputs.runnerTag ]]
  109. buildScript: $[[ inputs.buildScript ]]
  110. - local: dependencies/pulumi-preview/template.yml
  111. rules:
  112. - if: '$CI_PIPELINE_SOURCE == "merge_request_event" && $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "develop"'
  113. inputs:
  114. branchName: ${CI_COMMIT_BRANCH}
  115. jobName: "pulumi-preview"
  116. stageName: "preview"
  117. runnerTag: $[[ inputs.runnerTag ]]
  118. escEnvironmentName: $[[ inputs.escEnvironment ]]
  119. jobDependancy: "build-preview"
  120. - local: dependencies/pulumi-preview/template.yml
  121. rules:
  122. - if: '$CI_PIPELINE_SOURCE == "merge_request_event" && $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "develop"'
  123. inputs:
  124. branchName: ${CI_COMMIT_BRANCH}
  125. jobName: "pulumi-preview"
  126. stageName: "preview"
  127. stackName: "dev"
  128. runnerTag: $[[ inputs.runnerTag ]]
  129. escEnvironmentName: $[[ inputs.escEnvironment ]]
  130. jobDependancy: "build-preview"
  131. ###################################################################################################################
  132. ## ##
  133. ###################################################################################################################
  134. ####################################################################################################################
  135. ## DEV ##
  136. ####################################################################################################################
  137. - local: dependencies/gitlab-create-deployment/template.yml
  138. rules:
  139. - if: '$CI_COMMIT_BRANCH == "develop" && "$[[ inputs.environmentName ]]" == "dev"'
  140. inputs:
  141. deploymentBranch: ${CI_COMMIT_BRANCH}
  142. jobName: "create-gitlab-deployment-dev"
  143. stageName: "up"
  144. jobDependancy: "publish-container"
  145. environmentName: "dev"
  146. deploymentSHA: ${CI_COMMIT_SHA}
  147. projectID: ${CI_PROJECT_ID}
  148. runnerTag: $[[ inputs.runnerTag ]]
  149. - local: dependencies/pulumi-up/template.yml
  150. rules:
  151. - if: '$CI_COMMIT_BRANCH == "develop" && "$[[ inputs.environmentName ]]" == "dev"'
  152. inputs:
  153. jobName: "pulumi-up"
  154. stageName: "up"
  155. jobDependancy: "create-gitlab-deployment-dev"
  156. escEnvironmentName: $[[ inputs.escEnvironment ]]
  157. stackName: "dev"
  158. runnerTag: $[[ inputs.runnerTag ]]
  159. - local: dependencies/get-ecs-deployment-status/template.yml
  160. rules:
  161. - if: '$CI_COMMIT_BRANCH == "develop" && "$[[ inputs.environmentName ]]" == "dev"'
  162. inputs:
  163. jobName: "check-ecs-status"
  164. stageName: "up"
  165. jobDependancy: "pulumi-up-dev"
  166. escEnvironmentName: $[[ inputs.escEnvironment ]]
  167. stackName: "dev"
  168. runnerTag: $[[ inputs.runnerTag ]]
  169. - local: dependencies/gitlab-update-deployment/template.yml
  170. rules:
  171. - if: '$CI_COMMIT_BRANCH == "develop" && "$[[ inputs.environmentName ]]" == "dev"'
  172. inputs:
  173. jobName: "update-gitlab-deployment-dev"
  174. environmentName: "dev"
  175. stageName: "up"
  176. jobDependancy: "check-ecs-status-dev"
  177. gitlabDeploymentJobName: "create-gitlab-deployment-dev"
  178. projectID: ${CI_PROJECT_ID}
  179. runnerTag: $[[ inputs.runnerTag ]]
  180. ###################################################################################################################
  181. ## ##
  182. ###################################################################################################################
  183.  
  184. ... Rinse and repeat for every environment we have or ever will think of having when we think of it; Swapping out "environmentName" where necessary. Surely there has to be a much much better way of doing this that doesn't require specifying what the environments all are ahead of time?
  185.  
  186. stages:
  187. - build
  188. - publish
  189. - featureTeardown
  190. - scan
  191. - preview
  192. - up
  193. - destroy
  194. - cleanup
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement