Skip to content
Snippets Groups Projects
Commit 47f69dde authored by Timothée AUFORT's avatar Timothée AUFORT
Browse files

Merge branch 'feat/update-ci-for-mr' into 'master'

feat(gitlab): update CI pipeline

See merge request edebrye/cloud-monitor!16
parents 82a76acb acf9843a
No related branches found
No related tags found
No related merge requests found
......@@ -3,14 +3,20 @@ image:
entrypoint:
- '/usr/bin/env'
- 'PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin'
stages:
- Test and Lint
- Staging Plan
- Staging Apply
- Apply
- Integration Test
- Destroy
.load_tf_workspace: &load_tf_workspace |
if [[ $CI_COMMIT_REF_SLUG == "master" ]]; then
export TF_WORKSPACE="staging"
else
export TF_WORKSPACE="dev"
fi
Validate Terraform:
stage: Test and Lint
script:
......@@ -19,20 +25,12 @@ Validate Terraform:
- terraform init -backend=false
- terraform validate
rules:
- if: '$CI_MERGE_REQUEST_TARGET_BRANCH_NAME =~ /^(master)$/ || $CI_COMMIT_BRANCH =~ /^(master)$/'
- if: '$CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "master" || $CI_COMMIT_BRANCH == "master"'
Staging Plan:
stage: Staging Plan
script:
- cd deploy/
- terraform init
- terraform workspace select staging || terraform workspace new staging
- terraform plan -var-file=vars/staging.tfvars
rules:
- if: '$CI_MERGE_REQUEST_TARGET_BRANCH_NAME =~ /^(master)$/ || $CI_COMMIT_BRANCH =~ /^(master)$/'
Staging Apply:
stage: Staging Apply
Apply:
stage: Apply
before_script:
- *load_tf_workspace
script:
- apk add --update npm
- cd deploy/
......@@ -40,14 +38,14 @@ Staging Apply:
- npm install
- cd -
- terraform init
- terraform workspace select staging
- terraform apply -var-file=vars/staging.tfvars -auto-approve
- terraform plan -var-file=vars/${TF_WORKSPACE}.tfvars -out=tfplan.out
- terraform apply tfplan.out
- echo "API_ENDPOINT=$(terraform output -raw api_endpoint)" >> ../deploy.env
artifacts:
reports:
dotenv: deploy.env
rules:
- if: '$CI_COMMIT_BRANCH =~ /^(master)$/'
- if: '$CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "master" || $CI_COMMIT_BRANCH == "master"'
Integration Tests:
stage: Integration Test
......@@ -57,7 +55,7 @@ Integration Tests:
script:
- newman run Lambda_CRUD.postman_collection.json --env-var "endpoint=$API_ENDPOINT"
rules:
- if: '$CI_COMMIT_BRANCH =~ /^(master)$/'
- if: '$CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "master" || $CI_COMMIT_BRANCH == "master"'
Load Tests:
stage: Integration Test
......@@ -70,16 +68,19 @@ Load Tests:
- echo "PATCH $API_ENDPOINT/crud" | vegeta attack -duration=3s -rate=100/s | vegeta report
- echo "DELETE $API_ENDPOINT/crud" | vegeta attack -duration=3s -rate=100/s | vegeta report
rules:
- if: '$CI_COMMIT_BRANCH =~ /^(master)$/'
- if: '$CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "master" || $CI_COMMIT_BRANCH == "master"'
allow_failure: true
when: manual
Staging Destroy:
Destroy:
stage: Destroy
before_script:
- *load_tf_workspace
script:
- cd deploy/
- terraform init
- terraform workspace select staging
- terraform destroy -var-file=vars/staging.tfvars -auto-approve
rules:
- if: '$CI_COMMIT_BRANCH =~ /^(master)$/'
- terraform destroy -var-file=vars/${TF_WORKSPACE}.tfvars -auto-approve
rules:
- if: '$CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "master" || $CI_COMMIT_BRANCH == "master"'
allow_failure: true
when: manual
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment