Repository navigation
Expand file tree
/
Copy pathacceptance-test-beta-multi-region.yml
More file actions
186 lines (160 loc) · 5.86 KB
/
Copy pathacceptance-test-beta-multi-region.yml
File metadata and controls
186 lines (160 loc) · 5.86 KB
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
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
name: Multi-region Acceptance Tests (Beta)
on:
workflow_dispatch:
schedule:
- cron: '0 3 * * *'
jobs:
# ensure the code builds...
build:
name: Build
runs-on: ubuntu-latest
timeout-minutes: 5
steps:
- name: Check out code into the Go module directory
uses: actions/checkout@v7
- name: Set up Go
uses: actions/setup-go@v7
with:
go-version-file: 'go.mod'
cache: true
id: go
- name: Get dependencies
run: |
go mod download
- name: Build
run: |
make build BETA=true
prepare:
name: Prepare ${{ matrix.region }}
needs: [build]
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
region: [AP, CA, EU, NA, SG]
env:
TESTACC_BETA: true
PINGONE_TESTING_PROVIDER_VERSION: test
PINGONE_CLIENT_ID: ${{ vars[format('PINGONE_PROD_{0}_FF_CLIENT_ID_CLIENT_SECRET_BASIC', matrix.region)] }}
PINGONE_CLIENT_SECRET: ${{ secrets[format('PINGONE_PROD_{0}_FF_CLIENT_SECRET_CLIENT_SECRET_BASIC', matrix.region)] }}
PINGONE_ENVIRONMENT_ID: ${{ vars[format('PINGONE_PROD_{0}_FF_ENVIRONMENT_ID', matrix.region)] }}
PINGONE_REGION_CODE: ${{ matrix.region }}
PINGONE_LICENSE_ID: ${{ vars[format('PINGONE_PROD_{0}_FF_LICENSE_ID', matrix.region)] }}
PINGONE_ORGANIZATION_ID: ${{ vars[format('PINGONE_PROD_{0}_FF_ORG_ID', matrix.region)] }}
timeout-minutes: 10
steps:
- name: Check out code into the Go module directory
uses: actions/checkout@v7
- name: Set up Go
uses: actions/setup-go@v7
with:
go-version-file: 'go.mod'
cache: true
id: go
- name: Get dependencies
run: |
go mod download
- name: Sweep to prepare
run: |
make sweep BETA=true
# run acceptance tests in a matrix with Terraform core versions and regions
test:
name: Acceptance Test ${{ matrix.region }}
needs: [prepare]
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
region: [AP, CA, EU, NA, SG]
# list whatever Terraform versions here you would like to support
terraform:
- '1.13.*'
# If we have issues due to simultaneous tests across regions, max-parallel can be set to 1 to run sequentially
#max-parallel: 1
env:
TESTACC_BETA: true
PINGONE_TESTING_PROVIDER_VERSION: test
PINGONE_CLIENT_ID: ${{ vars[format('PINGONE_PROD_{0}_FF_CLIENT_ID_CLIENT_SECRET_BASIC', matrix.region)] }}
PINGONE_CLIENT_SECRET: ${{ secrets[format('PINGONE_PROD_{0}_FF_CLIENT_SECRET_CLIENT_SECRET_BASIC', matrix.region)] }}
PINGONE_ENVIRONMENT_ID: ${{ vars[format('PINGONE_PROD_{0}_FF_ENVIRONMENT_ID', matrix.region)] }}
PINGONE_REGION_CODE: ${{ matrix.region }}
PINGONE_LICENSE_ID: ${{ vars[format('PINGONE_PROD_{0}_FF_LICENSE_ID', matrix.region)] }}
PINGONE_ORGANIZATION_ID: ${{ vars[format('PINGONE_PROD_{0}_FF_ORG_ID', matrix.region)] }}
# Two vars needed for application data source acceptance tests - can be removed when CDI-631 is done
PINGONE_KEY_PKCS7_CERT: ${{ secrets.PINGONE_KEY_PKCS7_CERT }}
PINGONE_KEY_PEM_CERT: ${{ secrets.PINGONE_KEY_PEM_CERT }}
# Set skips
PINGONE_TWILIO_TEST_SKIP: true
PINGONE_SYNIVERSE_TEST_SKIP: true
PINGONE_EMAIL_DOMAIN_TEST_SKIP: false
PINGONE_CUSTOM_DOMAIN_TEST_SKIP: false
timeout-minutes: 45
steps:
- name: Check out code into the Go module directory
uses: actions/checkout@v7
- name: Set up Go
uses: actions/setup-go@v7
with:
go-version-file: 'go.mod'
cache: true
id: go
- uses: hashicorp/setup-terraform@v4
with:
terraform_version: ${{ matrix.terraform }}
terraform_wrapper: false
- name: Get dependencies
run: |
go mod download
- name: TF acceptance tests
timeout-minutes: 45
run: |
make testacc BETA=true
cleanup:
name: Clean up ${{ matrix.region }}
needs: [test]
runs-on: ubuntu-latest
if: always()
strategy:
fail-fast: false
matrix:
region: [AP, CA, EU, NA, SG]
env:
TESTACC_BETA: true
PINGONE_TESTING_PROVIDER_VERSION: test
PINGONE_CLIENT_ID: ${{ vars[format('PINGONE_PROD_{0}_FF_CLIENT_ID_CLIENT_SECRET_BASIC', matrix.region)] }}
PINGONE_CLIENT_SECRET: ${{ secrets[format('PINGONE_PROD_{0}_FF_CLIENT_SECRET_CLIENT_SECRET_BASIC', matrix.region)] }}
PINGONE_ENVIRONMENT_ID: ${{ vars[format('PINGONE_PROD_{0}_FF_ENVIRONMENT_ID', matrix.region)] }}
PINGONE_REGION_CODE: ${{ matrix.region }}
PINGONE_LICENSE_ID: ${{ vars[format('PINGONE_PROD_{0}_FF_LICENSE_ID', matrix.region)] }}
PINGONE_ORGANIZATION_ID: ${{ vars[format('PINGONE_PROD_{0}_FF_ORG_ID', matrix.region)] }}
timeout-minutes: 10
steps:
- name: Check out code into the Go module directory
uses: actions/checkout@v7
- name: Set up Go
uses: actions/setup-go@v7
with:
go-version-file: 'go.mod'
cache: true
id: go
- name: Get dependencies
run: |
go mod download
- name: Sweep to cleanup
run: |
make sweep BETA=true
onfailure:
if: ${{ failure() && github.event_name == 'schedule' }}
needs: [build, prepare, test, cleanup]
name: Send failure webhook
runs-on: ubuntu-latest
steps:
- run: |
curl --silent --request POST "${{ secrets.FAILURE_WEBHOOK_URL }}" \
--header 'Accept: application/json' \
--header 'Content-Type: text/plain' \
--data-raw '{
"WorkflowName": "${{ github.workflow }}",
"WorkflowURL": "https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}",
"RepoName" : "${{ github.repository }}",
}'