generated from hashicorp/terraform-provider-scaffolding-framework
-
Notifications
You must be signed in to change notification settings - Fork 0
140 lines (133 loc) · 3.71 KB
/
test.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
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
name: Tests
on:
pull_request:
paths-ignore:
- 'README.md'
push:
branches:
- main
paths-ignore:
- 'README.md'
permissions:
contents: read
pull-requests: read
checks: write
concurrency:
group: tests-${{ github.ref }}
cancel-in-progress: true
jobs:
build:
name: Build provider
runs-on: ubuntu-latest
timeout-minutes: 5
steps:
- uses: actions/checkout@v4
- uses: actions/setup-go@v5
with:
go-version-file: 'go.mod'
cache: true
- run: go mod download
- run: go build -v .
- name: Run linters
uses: golangci/golangci-lint-action@v3.7.0
with:
version: latest
generate:
name: Generate docs
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-go@v5
with:
go-version-file: 'go.mod'
cache: true
- 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)
testacc:
name: Acceptance tests (tf=${{ matrix.terraform }},ch=${{ matrix.clickhouse-version }})
needs: build
runs-on: ubuntu-latest
timeout-minutes: 20
strategy:
fail-fast: ${{ github.event_name != 'pull_request' }}
matrix:
terraform:
- '1.7.*'
clickhouse-version:
- '24.1'
- '24.2'
- '24.3'
steps:
- uses: actions/checkout@v4
- name: Setup Go
uses: actions/setup-go@v5
with:
go-version-file: 'go.mod'
cache: true
- name: Setup Terraform
uses: hashicorp/setup-terraform@v2
with:
terraform_version: ${{ matrix.terraform }}
terraform_wrapper: false
- name: Prepare for tests
env:
CLICKHOUSE_VERSION: ${{ matrix.clickhouse-version }}
run: |
make init-config
make chup
- name: Run acceptance tests
timeout-minutes: 15
env:
TF_CLI_CONFIG_FILE: ${{ github.workspace }}/.terraformrc
run: make testacc
testsql:
name: SQL tests (tf=${{ matrix.terraform }},protocol=${{ matrix.clickhouse-protocol }},ch=${{ matrix.clickhouse-version }})
needs: build
runs-on: ubuntu-latest
timeout-minutes: 20
strategy:
fail-fast: ${{ github.event_name != 'pull_request' }}
matrix:
terraform:
- '1.7.*'
clickhouse-protocol:
- 'native'
- 'http'
clickhouse-version:
- '24.1'
- '24.2'
- '24.3'
steps:
- uses: actions/checkout@v4
- name: Setup Go
uses: actions/setup-go@v5
with:
go-version-file: 'go.mod'
cache: true
- name: Setup Terraform
uses: hashicorp/setup-terraform@v2
with:
terraform_version: ${{ matrix.terraform }}
terraform_wrapper: false
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: '3.11'
cache: 'pip'
- name: Prepare for tests
run: |
make init-config
make build
pip install -r tests/requirements.txt
- name: Pull ClickHouse Docker image
run: docker pull clickhouse/clickhouse-server:${{ matrix.clickhouse-version }}
- name: Run SQL tests
timeout-minutes: 15
env:
TF_CLI_CONFIG_FILE: ${{ github.workspace }}/.terraformrc
TESTS_TF_CH_PROTOCOL: ${{ matrix.clickhouse-protocol }}
TESTS_TF_CH_CLICKHOUSE_VERSION: ${{ matrix.clickhouse-version }}
run: make testsql