-
Notifications
You must be signed in to change notification settings - Fork 9
135 lines (121 loc) · 3.77 KB
/
Copy pathtest.yml
File metadata and controls
135 lines (121 loc) · 3.77 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
# Terraform Provider testing workflow.
name: Tests
# This GitHub action runs your tests for each pull request and push.
# Optionally, you can turn it on using a schedule for regular testing.
on:
pull_request:
paths-ignore:
- 'README.md'
push:
paths-ignore:
- 'README.md'
# Testing only needs permissions to read the repository contents.
permissions:
contents: read
concurrency: ${{ github.workflow }}
jobs:
# Ensure project builds before running testing matrix
build:
name: Build
runs-on: ubuntu-latest
timeout-minutes: 5
steps:
- uses: actions/checkout@v4.1.1
- uses: actions/setup-go@v5.0.0
with:
go-version-file: 'go.mod'
- run: go mod download
- uses: golangci/golangci-lint-action@v6.3.2
generate:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4.1.1
- uses: actions/setup-go@v5.0.0
with:
go-version-file: 'go.mod'
cache: true
- uses: hashicorp/setup-terraform@v3
with:
terraform_version: 1.4.0
- run: go generate ./...
- name: git diff
run: |
git diff --compact-summary --exit-code || \
(echo; echo "Unexpected difference in directories after code generation. Run 'go generate ./...' command and commit."; exit 1)
# Run acceptance tests in a matrix with Terraform CLI versions
test:
name: Terraform Provider Acceptance Tests
needs: build
runs-on: ubuntu-latest
timeout-minutes: 15
strategy:
fail-fast: false
matrix:
# list whatever Terraform versions here you would like to support
terraform:
- '1.0.*'
- '1.1.*'
- '1.2.*'
- '1.3.*'
- '1.4.*'
steps:
- uses: actions/checkout@v4.1.1
- uses: actions/setup-go@v5.0.0
with:
go-version-file: 'go.mod'
cache: true
- uses: hashicorp/setup-terraform@v2.0.3
with:
terraform_version: ${{ matrix.terraform }}
terraform_wrapper: false
- run: go mod download
- name: Run tests with Terraform 1.0
if: matrix.terraform == '1.0.*'
env:
TF_ACC: "1"
PERMITIO_API_KEY: ${{ secrets.PERMITIO_API_KEY_1_0 }}
PERMITIO_TIMEOUT: 20
run: |
for i in 1 2 3 4 5; do
go test -v -cover ./internal/provider/ && break || sleep 10
done
- name: Run tests with Terraform 1.1
if: matrix.terraform == '1.1.*'
env:
TF_ACC: "1"
PERMITIO_API_KEY: ${{ secrets.PERMITIO_API_KEY_1_1 }}
PERMITIO_TIMEOUT: 20
run: |
for i in 1 2 3 4 5; do
go test -v -cover ./internal/provider/ && break || sleep 10
done
- name: Run tests with Terraform 1.2
if: matrix.terraform == '1.2.*'
env:
TF_ACC: "1"
PERMITIO_API_KEY: ${{ secrets.PERMITIO_API_KEY_1_2 }}
PERMITIO_TIMEOUT: 20
run: |
for i in 1 2 3 4 5; do
go test -v -cover ./internal/provider/ && break || sleep 10
done
- name: Run tests with Terraform 1.3
if: matrix.terraform == '1.3.*'
env:
TF_ACC: "1"
PERMITIO_API_KEY: ${{ secrets.PERMITIO_API_KEY_1_3 }}
PERMITIO_TIMEOUT: 20
run: |
for i in 1 2 3 4 5; do
go test -v -cover ./internal/provider/ && break || sleep 10
done
- name: Run tests with Terraform 1.4
if: matrix.terraform == '1.4.*'
env:
TF_ACC: "1"
PERMITIO_API_KEY: ${{ secrets.PERMITIO_API_KEY_1_4 }}
PERMITIO_TIMEOUT: 20
run: |
for i in 1 2 3 4 5; do
go test -v -cover ./internal/provider/ && break || sleep 10
done