generated from bcgov-c/bcgov-terraform-module-template
-
Notifications
You must be signed in to change notification settings - Fork 1
90 lines (79 loc) · 2.88 KB
/
terraform-batch.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
name: Terraform Batch
on: workflow_dispatch
env:
TF_VERSION: 0.15.3
KEYCLOAK_DEV_URL: https://dev.oidc.gov.bc.ca
KEYCLOAK_TEST_URL: https://test.oidc.gov.bc.ca
KEYCLOAK_PROD_URL: https://oidc.gov.bc.ca
jobs:
terraform:
runs-on: ubuntu-22.04
timeout-minutes: 30
env:
API_URL: ${{ secrets.WEBAPP_API_URL }}
steps:
- uses: hmarr/debug-action@v2
- uses: actions/checkout@v2
- name: Wake Up API
uses: fjogeleit/http-request-action@master
with:
url: ${{ env.API_URL }}/heartbeat
method: GET
customHeaders: '{"Authorization": "${{ secrets.GH_SECRET }}"}'
timeout: '60000'
continue-on-error: true
- name: Fetch Requests Count
id: requests
uses: fjogeleit/http-request-action@master
with:
url: ${{ env.API_URL }}/batch/items/silver
method: GET
customHeaders: '{"Authorization": "${{ secrets.GH_SECRET }}"}'
timeout: '60000'
- name: Get Requests Count
id: count
run: |
count=$(jq length <<< ${{ steps.requests.outputs.response }})
echo "$count"
echo "::set-output name=count::$count"
- name: Pull the main branch again
if: steps.count.outputs.count != '0'
run: |
git pull origin main --rebase
- name: Setup Terraform
if: steps.count.outputs.count != '0'
id: tf
uses: bcgov/sso-requests-actions/actions/[email protected]
with:
context: ./terraform
tf-version: ${{ env.TF_VERSION }}
tf-s3-bucket: xgr00q-prod-keycloak
tf-s3-bucket-key: keycloak/silver
tf-s3-dynamodb-table: xgr00q-prod-state-locking
tf-s3-access-key: ${{ secrets.TF_S3_ACCESS_KEY }}
tf-s3-secret-key: ${{ secrets.TF_S3_SECRET_KEY }}
tf-s3-role-arn: ${{ secrets.TF_S3_ROLE_ARN }}
kc-provider-version: 3.10.0
kc-dev-url: ${{ env.KEYCLOAK_DEV_URL }}
kc-test-url: ${{ env.KEYCLOAK_TEST_URL }}
kc-prod-url: ${{ env.KEYCLOAK_PROD_URL }}
kc-dev-secret: ${{ secrets.KEYCLOAK_DEV_CLIENT_SECRET }}
kc-test-secret: ${{ secrets.KEYCLOAK_TEST_CLIENT_SECRET }}
kc-prod-secret: ${{ secrets.KEYCLOAK_PROD_CLIENT_SECRET }}
apply: true
continue-on-error: true
- name: Setup NPM Packages
if: steps.count.outputs.count != '0'
uses: bcgov/sso-requests-actions/actions/[email protected]
- name: Update Requests Status
if: steps.count.outputs.count != '0'
uses: fjogeleit/http-request-action@master
with:
url: ${{ env.API_URL }}/batch/items
method: PUT
data: "{\"ids\": ${{ steps.requests.outputs.response }}, \"success\": \"${{ steps.tf.outputs.apply != 'failure' }}\"}"
customHeaders: '{"Authorization": "${{ secrets.GH_SECRET }}"}'
timeout: '60000'
- name: Set Failure Code
if: steps.tf.outputs.apply == 'failure'
run: exit 1