Skip to content

Commit b0eaf7a

Browse files
committed
Adds deploy step for pipeline
1 parent cb85251 commit b0eaf7a

File tree

3 files changed

+95
-87
lines changed

3 files changed

+95
-87
lines changed

.github/workflows/pipeline.yml

Lines changed: 56 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -112,51 +112,59 @@ jobs:
112112
source scripts/utils.sh
113113
plan_terraform aws github heroku
114114
115-
# deploy:
116-
# if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/main' }}
117-
# runs-on: "ubuntu-20.04"
118-
# steps:
119-
# - uses: actions/checkout@v2
120-
121-
# - uses: hashicorp/setup-terraform@v1
122-
123-
# - name: "Initializes terraform"
124-
# env:
125-
# AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
126-
# AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
127-
# run: |
128-
# source scripts/pipeline_utils.sh
129-
# init_terraform github heroku aws
130-
131-
# - name: "Apply terraform plan"
132-
# env:
133-
# AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
134-
# AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
135-
# TF_VAR_GH_PERSONAL_ACCESS_TOKEN: ${{ secrets.GH_PERSONAL_ACCESS_TOKEN }}
136-
# TF_VAR_DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }}
137-
# TF_VAR_DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }}
138-
# TF_VAR_HEROKU_EMAIL: ${{ secrets.HEROKU_EMAIL }}
139-
# TF_VAR_HEROKU_API_KEY: ${{ secrets.HEROKU_API_KEY }}
140-
# TF_VAR_EMAIL_SERVICE_CODECOV_TOKEN: ${{ secrets.EMAIL_SERVICE_CODECOV_TOKEN }}
141-
# TF_VAR_API_GATEWAY_CODECOV_TOKEN: ${{ secrets.API_GATEWAY_CODECOV_TOKEN }}
142-
# TF_VAR_EMAIL_SERVICE_DATABASE_URL: ${{ secrets.EMAIL_SERVICE_DATABASE_URL }}
143-
# TF_VAR_EMAIL_SERVICE_MAIL_PASSWORD: ${{ secrets.EMAIL_SERVICE_MAIL_PASSWORD }}
144-
# TF_VAR_EMAIL_SERVICE_MAIL_USERNAME: ${{ secrets.EMAIL_SERVICE_MAIL_USERNAME }}
145-
# TF_VAR_EMAIL_SERVICE_REDIS_TLS_URL: ${{ secrets.EMAIL_SERVICE_REDIS_TLS_URL }}
146-
# TF_VAR_EMAIL_SERVICE_REDIS_URL: ${{ secrets.EMAIL_SERVICE_REDIS_URL }}
147-
# TF_VAR_PROFILE_SERVICE_DATABASE_URL: ${{ secrets.PROFILE_SERVICE_DATABASE_URL }}
148-
# TF_VAR_PROFILE_SERVICE_REDIS_TLS_URL: ${{ secrets.PROFILE_SERVICE_REDIS_TLS_URL }}
149-
# TF_VAR_PROFILE_SERVICE_REDIS_URL: ${{ secrets.PROFILE_SERVICE_REDIS_URL }}
150-
# TF_VAR_WIKI_DATABASE_HOST: ${{ secrets.WIKI_DATABASE_HOST }}
151-
# TF_VAR_WIKI_DATABASE_PORT: ${{ secrets.WIKI_DATABASE_PORT }}
152-
# TF_VAR_WIKI_DATABASE_USER: ${{ secrets.WIKI_DATABASE_USER }}
153-
# TF_VAR_WIKI_DATABASE_PASSWORD: ${{ secrets.WIKI_DATABASE_PASSWORD }}
154-
# TF_VAR_WIKI_DATABASE_NAME: ${{ secrets.WIKI_DATABASE_NAME }}
155-
# TF_VAR_DISCORD_WEBHOOK_URL: ${{ secrets.DISCORD_WEBHOOK_URL }}
156-
# TF_VAR_TRUSTED_HOSTS: ${{ secrets.TRUSTED_HOSTS }}
157-
# TF_VAR_GAMBLEY_CD_USER_AWS_ACCESS_KEY: ${{ secrets.GAMBLEY_CD_USER_AWS_ACCESS_KEY }}
158-
# TF_VAR_GAMBLEY_CD_USER_AWS_SECRET_KEY: ${{ secrets.GAMBLEY_CD_USER_AWS_SECRET_KEY }}
159-
# TF_VAR_SNYK_SECRET_KEY: ${{ secrets.SNYK_SECRET_KEY }}
160-
# run: |
161-
# source scripts/pipeline_utils.sh
162-
# apply_terraform github heroku aws
115+
deploy:
116+
if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/main' }}
117+
runs-on: "ubuntu-20.04"
118+
steps:
119+
- uses: actions/checkout@v2
120+
121+
- name: "Build the image"
122+
run: docker image build --file .docker/Dockerfile --tag infrastructure:${{ github.sha }} .
123+
124+
- name: "Create the volumes"
125+
run: |
126+
docker volume create aws-provider
127+
docker volume create github-provider
128+
docker volume create heroku-provider
129+
130+
- name: "Initializes terraform"
131+
env:
132+
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
133+
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
134+
GITHUB_COMMIT_SHA: ${{ github.sha }}
135+
run: |
136+
source scripts/utils.sh
137+
init_terraform aws github heroku
138+
139+
- name: "Apply terraform plan"
140+
env:
141+
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
142+
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
143+
TF_VAR_GH_PERSONAL_ACCESS_TOKEN: ${{ secrets.GH_PERSONAL_ACCESS_TOKEN }}
144+
TF_VAR_DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }}
145+
TF_VAR_DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }}
146+
TF_VAR_HEROKU_EMAIL: ${{ secrets.HEROKU_EMAIL }}
147+
TF_VAR_HEROKU_API_KEY: ${{ secrets.HEROKU_API_KEY }}
148+
TF_VAR_EMAIL_SERVICE_CODECOV_TOKEN: ${{ secrets.EMAIL_SERVICE_CODECOV_TOKEN }}
149+
TF_VAR_API_GATEWAY_CODECOV_TOKEN: ${{ secrets.API_GATEWAY_CODECOV_TOKEN }}
150+
TF_VAR_EMAIL_SERVICE_DATABASE_URL: ${{ secrets.EMAIL_SERVICE_DATABASE_URL }}
151+
TF_VAR_EMAIL_SERVICE_MAIL_PASSWORD: ${{ secrets.EMAIL_SERVICE_MAIL_PASSWORD }}
152+
TF_VAR_EMAIL_SERVICE_MAIL_USERNAME: ${{ secrets.EMAIL_SERVICE_MAIL_USERNAME }}
153+
TF_VAR_EMAIL_SERVICE_REDIS_TLS_URL: ${{ secrets.EMAIL_SERVICE_REDIS_TLS_URL }}
154+
TF_VAR_EMAIL_SERVICE_REDIS_URL: ${{ secrets.EMAIL_SERVICE_REDIS_URL }}
155+
TF_VAR_PROFILE_SERVICE_DATABASE_URL: ${{ secrets.PROFILE_SERVICE_DATABASE_URL }}
156+
TF_VAR_PROFILE_SERVICE_REDIS_TLS_URL: ${{ secrets.PROFILE_SERVICE_REDIS_TLS_URL }}
157+
TF_VAR_PROFILE_SERVICE_REDIS_URL: ${{ secrets.PROFILE_SERVICE_REDIS_URL }}
158+
TF_VAR_WIKI_DATABASE_HOST: ${{ secrets.WIKI_DATABASE_HOST }}
159+
TF_VAR_WIKI_DATABASE_PORT: ${{ secrets.WIKI_DATABASE_PORT }}
160+
TF_VAR_WIKI_DATABASE_USER: ${{ secrets.WIKI_DATABASE_USER }}
161+
TF_VAR_WIKI_DATABASE_PASSWORD: ${{ secrets.WIKI_DATABASE_PASSWORD }}
162+
TF_VAR_WIKI_DATABASE_NAME: ${{ secrets.WIKI_DATABASE_NAME }}
163+
TF_VAR_DISCORD_WEBHOOK_URL: ${{ secrets.DISCORD_WEBHOOK_URL }}
164+
TF_VAR_TRUSTED_HOSTS: ${{ secrets.TRUSTED_HOSTS }}
165+
TF_VAR_GAMBLEY_CD_USER_AWS_ACCESS_KEY: ${{ secrets.GAMBLEY_CD_USER_AWS_ACCESS_KEY }}
166+
TF_VAR_GAMBLEY_CD_USER_AWS_SECRET_KEY: ${{ secrets.GAMBLEY_CD_USER_AWS_SECRET_KEY }}
167+
TF_VAR_SNYK_SECRET_KEY: ${{ secrets.SNYK_SECRET_KEY }}
168+
run: |
169+
source scripts/pipeline_utils.sh
170+
apply_terraform aws github heroku

scripts/pipeline_utils.sh

Lines changed: 0 additions & 39 deletions
This file was deleted.

scripts/utils.sh

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,3 +78,42 @@ plan_terraform() {
7878
infrastructure:"$GITHUB_COMMIT_SHA" -chdir=src/"$dir" plan -input=false 2>&1
7979
done
8080
}
81+
82+
apply_terraform() {
83+
for dir in "$@"
84+
do
85+
echo "Applying terraform plan for" "$dir"
86+
docker container run \
87+
--env AWS_ACCESS_KEY_ID="$AWS_ACCESS_KEY_ID" \
88+
--env AWS_SECRET_ACCESS_KEY="$AWS_SECRET_ACCESS_KEY" \
89+
--env TF_VAR_GH_PERSONAL_ACCESS_TOKEN="$GH_PERSONAL_ACCESS_TOKEN" \
90+
--env TF_VAR_DOCKERHUB_USERNAME="$DOCKERHUB_USERNAME" \
91+
--env TF_VAR_DOCKERHUB_TOKEN="$DOCKERHUB_TOKEN" \
92+
--env TF_VAR_HEROKU_EMAIL="$HEROKU_EMAIL" \
93+
--env TF_VAR_HEROKU_API_KEY="$HEROKU_API_KEY" \
94+
--env TF_VAR_EMAIL_SERVICE_CODECOV_TOKEN="$EMAIL_SERVICE_CODECOV_TOKEN" \
95+
--env TF_VAR_API_GATEWAY_CODECOV_TOKEN="$API_GATEWAY_CODECOV_TOKEN" \
96+
--env TF_VAR_EMAIL_SERVICE_DATABASE_URL="$EMAIL_SERVICE_DATABASE_URL" \
97+
--env TF_VAR_EMAIL_SERVICE_MAIL_PASSWORD="$EMAIL_SERVICE_MAIL_PASSWORD" \
98+
--env TF_VAR_EMAIL_SERVICE_MAIL_USERNAME="$EMAIL_SERVICE_MAIL_USERNAME" \
99+
--env TF_VAR_EMAIL_SERVICE_REDIS_TLS_URL="$EMAIL_SERVICE_REDIS_TLS_URL" \
100+
--env TF_VAR_EMAIL_SERVICE_REDIS_URL="$EMAIL_SERVICE_REDIS_URL" \
101+
--env TF_VAR_PROFILE_SERVICE_DATABASE_URL="$PROFILE_SERVICE_DATABASE_URL" \
102+
--env TF_VAR_PROFILE_SERVICE_REDIS_TLS_URL="$PROFILE_SERVICE_REDIS_TLS_URL" \
103+
--env TF_VAR_PROFILE_SERVICE_REDIS_URL="$PROFILE_SERVICE_REDIS_URL" \
104+
--env TF_VAR_WIKI_DATABASE_HOST="$WIKI_DATABASE_HOST" \
105+
--env TF_VAR_WIKI_DATABASE_PORT="$WIKI_DATABASE_PORT" \
106+
--env TF_VAR_WIKI_DATABASE_USER="$WIKI_DATABASE_USER" \
107+
--env TF_VAR_WIKI_DATABASE_PASSWORD="$WIKI_DATABASE_PASSWORD" \
108+
--env TF_VAR_WIKI_DATABASE_NAME="$WIKI_DATABASE_NAME" \
109+
--env TF_VAR_DISCORD_WEBHOOK_URL="$DISCORD_WEBHOOK_URL" \
110+
--env TF_VAR_TRUSTED_HOSTS="$TRUSTED_HOSTS" \
111+
--env TF_VAR_GAMBLEY_CD_USER_AWS_ACCESS_KEY="$GAMBLEY_CD_USER_AWS_ACCESS_KEY" \
112+
--env TF_VAR_GAMBLEY_CD_USER_AWS_SECRET_KEY="$GAMBLEY_CD_USER_AWS_SECRET_KEY" \
113+
--env TF_VAR_SNYK_SECRET_KEY="$SNYK_SECRET_KEY" \
114+
--volume aws-provider:/app/src/aws/.terraform \
115+
--volume github-provider:/app/src/github/.terraform \
116+
--volume heroku-provider:/app/src/heroku/.terraform \
117+
infrastructure:"$GITHUB_COMMIT_SHA" -chdir=src/"$dir" apply -auto-approve -input=false 2>&1
118+
done
119+
}

0 commit comments

Comments
 (0)