Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- spec:
- inputs:
- environmentName:
- default: "lab"
- options:
- - lab
- - dev
- - qa
- - uat
- - prod
- escEnvironment:
- pulumiBuildImage:
- dockerBuildImage:
- dockerTLSCertDir:
- dockerHost:
- dockerDriver:
- dockerBuildArgs:
- ecrRepository:
- gradleBuildImage:
- ecrRepoName:
- runnerTag:
- buildScript:
- ---
- before_script:
- - export GRADLE_USER_HOME=`pwd`/.gradle
- variables:
- GRADLE_OPTS: "-Dorg.gradle.daemon=false"
- include:
- - local: dependencies/aws-oidc/template.yml
- - local: dependencies/pulumi-base-jobs/template.yml
- - local: dependencies/gitleaks/template.yml
- inputs:
- jobName: "gitleaks-scan"
- stageName: "build"
- runnerTag: $[[ inputs.runnerTag ]]
- - local: dependencies/iac-scan/template.yml
- inputs:
- jobName: "iac-scanner"
- stageName: "build"
- runnerTag: $[[ inputs.runnerTag ]]
- jobDependancy: "gitleaks-scan"
- - local: dependencies/gradle-audit/template.yml
- inputs:
- jobName: "gradle-audit"
- stageName: "build"
- gradleBuildImage: $[[ inputs.gradleBuildImage ]]
- runnerTag: $[[ inputs.runnerTag ]]
- jobDependancy: "iac-scanner"
- - local: dependencies/gradle-build/template.yml
- inputs:
- jobName: "build-container"
- stageName: "build"
- gradleBuildImage: $[[ inputs.gradleBuildImage ]]
- runnerTag: $[[ inputs.runnerTag ]]
- buildScript: $[[ inputs.buildScript ]]
- - local: dependencies/sonarqube/template.yml
- inputs:
- jobName: "sonarqube-check"
- stageName: "build"
- runnerTag: $[[ inputs.runnerTag ]]
- - local: dependencies/container-publish/template.yml
- inputs:
- jobName: "publish-container"
- stageName: "publish"
- dockerBuildArgs: $[[ inputs.dockerBuildArgs ]]
- ecrRepository: $[[ inputs.ecrRepository ]]
- escEnvironmentName: $[[ inputs.escEnvironment ]]
- artifactDependancy: "build-container"
- ecrRepoName: $[[ inputs.ecrRepoName ]]
- runnerTag: $[[ inputs.runnerTag ]]
- ####################################################################################################################
- ## LAB ##
- ####################################################################################################################
- - local: dependencies/pulumi-up/template.yml
- rules:
- - if: '$CI_COMMIT_BRANCH =~ /^feature\/.*|^hotfix\/.*/ && "$[[ inputs.environmentName ]]" == "lab"'
- inputs:
- jobName: "pulumi-up-lab"
- stageName: "up"
- jobDependancy: "publish-container"
- escEnvironmentName: $[[ inputs.escEnvironmentName ]]
- runnerTag: $[[ inputs.runnerTag ]]
- - local: dependencies/get-ecs-deployment-status/template.yml
- rules:
- - if: '$CI_COMMIT_BRANCH =~ /^feature\/.*|^hotfix\/.*/ && "$[[ inputs.environmentName ]]" == "lab"'
- inputs:
- jobName: "check-ecs-status"
- stageName: "up"
- jobDependancy: "pulumi-up-lab"
- escEnvironmentName: $[[ inputs.escEnvironment ]]
- runnerTag: $[[ inputs.runnerTag ]]
- ###################################################################################################################
- ## ##
- ###################################################################################################################
- ####################################################################################################################
- ## LAB-TO-DEV MR PREVIEW ##
- ####################################################################################################################
- - local: dependencies/gradle-build/template.yml
- rules:
- - if: '$CI_PIPELINE_SOURCE == "merge_request_event" && $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "develop"'
- inputs:
- jobName: "build"
- stageName: "preview"
- gradleBuildImage: $[[ inputs.gradleBuildImage ]]
- runnerTag: $[[ inputs.runnerTag ]]
- buildScript: $[[ inputs.buildScript ]]
- - local: dependencies/pulumi-preview/template.yml
- rules:
- - if: '$CI_PIPELINE_SOURCE == "merge_request_event" && $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "develop"'
- inputs:
- branchName: ${CI_COMMIT_BRANCH}
- jobName: "pulumi-preview"
- stageName: "preview"
- runnerTag: $[[ inputs.runnerTag ]]
- escEnvironmentName: $[[ inputs.escEnvironment ]]
- jobDependancy: "build-preview"
- - local: dependencies/pulumi-preview/template.yml
- rules:
- - if: '$CI_PIPELINE_SOURCE == "merge_request_event" && $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "develop"'
- inputs:
- branchName: ${CI_COMMIT_BRANCH}
- jobName: "pulumi-preview"
- stageName: "preview"
- stackName: "dev"
- runnerTag: $[[ inputs.runnerTag ]]
- escEnvironmentName: $[[ inputs.escEnvironment ]]
- jobDependancy: "build-preview"
- ###################################################################################################################
- ## ##
- ###################################################################################################################
- ####################################################################################################################
- ## DEV ##
- ####################################################################################################################
- - local: dependencies/gitlab-create-deployment/template.yml
- rules:
- - if: '$CI_COMMIT_BRANCH == "develop" && "$[[ inputs.environmentName ]]" == "dev"'
- inputs:
- deploymentBranch: ${CI_COMMIT_BRANCH}
- jobName: "create-gitlab-deployment-dev"
- stageName: "up"
- jobDependancy: "publish-container"
- environmentName: "dev"
- deploymentSHA: ${CI_COMMIT_SHA}
- projectID: ${CI_PROJECT_ID}
- runnerTag: $[[ inputs.runnerTag ]]
- - local: dependencies/pulumi-up/template.yml
- rules:
- - if: '$CI_COMMIT_BRANCH == "develop" && "$[[ inputs.environmentName ]]" == "dev"'
- inputs:
- jobName: "pulumi-up"
- stageName: "up"
- jobDependancy: "create-gitlab-deployment-dev"
- escEnvironmentName: $[[ inputs.escEnvironment ]]
- stackName: "dev"
- runnerTag: $[[ inputs.runnerTag ]]
- - local: dependencies/get-ecs-deployment-status/template.yml
- rules:
- - if: '$CI_COMMIT_BRANCH == "develop" && "$[[ inputs.environmentName ]]" == "dev"'
- inputs:
- jobName: "check-ecs-status"
- stageName: "up"
- jobDependancy: "pulumi-up-dev"
- escEnvironmentName: $[[ inputs.escEnvironment ]]
- stackName: "dev"
- runnerTag: $[[ inputs.runnerTag ]]
- - local: dependencies/gitlab-update-deployment/template.yml
- rules:
- - if: '$CI_COMMIT_BRANCH == "develop" && "$[[ inputs.environmentName ]]" == "dev"'
- inputs:
- jobName: "update-gitlab-deployment-dev"
- environmentName: "dev"
- stageName: "up"
- jobDependancy: "check-ecs-status-dev"
- gitlabDeploymentJobName: "create-gitlab-deployment-dev"
- projectID: ${CI_PROJECT_ID}
- runnerTag: $[[ inputs.runnerTag ]]
- ###################################################################################################################
- ## ##
- ###################################################################################################################
- ... 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?
- stages:
- - build
- - publish
- - featureTeardown
- - scan
- - preview
- - up
- - destroy
- - cleanup
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement