Skip to content

Commit 1294c23

Browse files
Run OSS tests on all currently supported versions (#321)
* Run OSS tests on all currently supported versions Add all 8.x versions + the latest 7.x Closes #318 * Use lighter build images * Add make * Use debian go instead of alpine * Use GetAPIKeys instead of Delete to check for deletion
1 parent b14d03c commit 1294c23

File tree

4 files changed

+191
-61
lines changed

4 files changed

+191
-61
lines changed

.drone/drone.jsonnet

Lines changed: 36 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
1-
local grafana = 'grafana/grafana:8.2.5';
2-
local build = 'grafana/build-container:1.4.7';
3-
local goImage = 'golang:1.16-alpine';
4-
1+
local grafanaVersions = ['8.3.3', '8.2.7', '8.1.8', '8.0.7', '7.5.12'];
2+
local images = {
3+
go: 'golang:1.16',
4+
lint: 'golangci/golangci-lint',
5+
grafana(version): 'grafana/grafana:' + version,
6+
};
57

68
local secret(name, vaultPath, vaultKey) = {
79
kind: 'secret',
@@ -40,7 +42,7 @@ local pipeline(name, steps, services=[]) = {
4042
'lint', steps=[
4143
{
4244
name: 'lint',
43-
image: build,
45+
image: images.lint,
4446
commands: [
4547
'golangci-lint --version',
4648
'golangci-lint run ./...',
@@ -53,9 +55,8 @@ local pipeline(name, steps, services=[]) = {
5355
'docs', steps=[
5456
{
5557
name: 'check for drift',
56-
image: goImage,
58+
image: images.go,
5759
commands: [
58-
'apk add git',
5960
'go generate',
6061
'gitstatus="$(git status --porcelain)"',
6162
'if [ -n "$gitstatus" ]; then',
@@ -69,11 +70,34 @@ local pipeline(name, steps, services=[]) = {
6970
),
7071

7172
pipeline(
72-
'oss tests',
73+
'cloud tests',
7374
steps=[
7475
{
7576
name: 'tests',
76-
image: build,
77+
image: images.go,
78+
commands: [
79+
'make testacc-cloud',
80+
],
81+
environment: {
82+
GRAFANA_URL: 'https://terraformprovidergrafana.grafana.net/',
83+
GRAFANA_AUTH: apiToken.fromSecret,
84+
GRAFANA_SM_ACCESS_TOKEN: smToken.fromSecret,
85+
GRAFANA_ORG_ID: 1,
86+
},
87+
},
88+
]
89+
),
90+
91+
apiToken,
92+
smToken,
93+
] +
94+
[
95+
pipeline(
96+
'oss tests: %s' % version,
97+
steps=[
98+
{
99+
name: 'tests',
100+
image: images.go,
77101
commands: [
78102
'sleep 5', // https://docs.drone.io/pipeline/docker/syntax/services/#initialization
79103
'make testacc-oss',
@@ -88,32 +112,13 @@ local pipeline(name, steps, services=[]) = {
88112
services=[
89113
{
90114
name: 'grafana',
91-
image: grafana,
115+
image: images.grafana(version),
92116
environment: {
93117
// Prevents error="database is locked"
94118
GF_DATABASE_URL: 'sqlite3:///var/lib/grafana/grafana.db?cache=private&mode=rwc&_journal_mode=WAL',
95119
},
96120
},
97121
],
98-
),
99-
100-
pipeline(
101-
'cloud tests',
102-
steps=[
103-
{
104-
name: 'tests',
105-
image: build,
106-
commands: ['make testacc-cloud'],
107-
environment: {
108-
GRAFANA_URL: 'https://terraformprovidergrafana.grafana.net/',
109-
GRAFANA_AUTH: apiToken.fromSecret,
110-
GRAFANA_SM_ACCESS_TOKEN: smToken.fromSecret,
111-
GRAFANA_ORG_ID: 1,
112-
},
113-
},
114-
]
115-
),
116-
117-
apiToken,
118-
smToken,
122+
)
123+
for version in grafanaVersions
119124
]

.drone/drone.yml

Lines changed: 145 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ steps:
99
- commands:
1010
- golangci-lint --version
1111
- golangci-lint run ./...
12-
image: grafana/build-container:1.4.7
12+
image: golangci/golangci-lint
1313
name: lint
1414
trigger:
1515
branch:
@@ -29,15 +29,14 @@ platform:
2929
services: []
3030
steps:
3131
- commands:
32-
- apk add git
3332
- go generate
3433
- gitstatus="$(git status --porcelain)"
3534
- if [ -n "$gitstatus" ]; then
3635
- ' echo "$gitstatus"'
3736
- ' echo "docs are out of sync, run \"go generate\""'
3837
- ' exit 1'
3938
- fi
40-
image: golang:1.16-alpine
39+
image: golang:1.16
4140
name: check for drift
4241
trigger:
4342
branch:
@@ -50,14 +49,54 @@ workspace:
5049
path: /drone/terraform-provider-grafana
5150
---
5251
kind: pipeline
53-
name: oss tests
52+
name: cloud tests
53+
platform:
54+
arch: amd64
55+
os: linux
56+
services: []
57+
steps:
58+
- commands:
59+
- make testacc-cloud
60+
environment:
61+
GRAFANA_AUTH:
62+
from_secret: grafana-api-token
63+
GRAFANA_ORG_ID: 1
64+
GRAFANA_SM_ACCESS_TOKEN:
65+
from_secret: grafana-sm-token
66+
GRAFANA_URL: https://terraformprovidergrafana.grafana.net/
67+
image: golang:1.16
68+
name: tests
69+
trigger:
70+
branch:
71+
- master
72+
event:
73+
- pull_request
74+
- push
75+
type: docker
76+
workspace:
77+
path: /drone/terraform-provider-grafana
78+
---
79+
get:
80+
name: api-key
81+
path: infra/data/ci/terraform-provider-grafana/cloud
82+
kind: secret
83+
name: grafana-api-token
84+
---
85+
get:
86+
name: sm-access-token
87+
path: infra/data/ci/terraform-provider-grafana/cloud
88+
kind: secret
89+
name: grafana-sm-token
90+
---
91+
kind: pipeline
92+
name: 'oss tests: 8.3.3'
5493
platform:
5594
arch: amd64
5695
os: linux
5796
services:
5897
- environment:
5998
GF_DATABASE_URL: sqlite3:///var/lib/grafana/grafana.db?cache=private&mode=rwc&_journal_mode=WAL
60-
image: grafana/grafana:8.2.5
99+
image: grafana/grafana:8.3.3
61100
name: grafana
62101
steps:
63102
- commands:
@@ -67,7 +106,7 @@ steps:
67106
GRAFANA_AUTH: admin:admin
68107
GRAFANA_ORG_ID: 1
69108
GRAFANA_URL: http://grafana:3000
70-
image: grafana/build-container:1.4.7
109+
image: golang:1.16
71110
name: tests
72111
trigger:
73112
branch:
@@ -80,22 +119,24 @@ workspace:
80119
path: /drone/terraform-provider-grafana
81120
---
82121
kind: pipeline
83-
name: cloud tests
122+
name: 'oss tests: 8.2.7'
84123
platform:
85124
arch: amd64
86125
os: linux
87-
services: []
126+
services:
127+
- environment:
128+
GF_DATABASE_URL: sqlite3:///var/lib/grafana/grafana.db?cache=private&mode=rwc&_journal_mode=WAL
129+
image: grafana/grafana:8.2.7
130+
name: grafana
88131
steps:
89132
- commands:
90-
- make testacc-cloud
133+
- sleep 5
134+
- make testacc-oss
91135
environment:
92-
GRAFANA_AUTH:
93-
from_secret: grafana-api-token
136+
GRAFANA_AUTH: admin:admin
94137
GRAFANA_ORG_ID: 1
95-
GRAFANA_SM_ACCESS_TOKEN:
96-
from_secret: grafana-sm-token
97-
GRAFANA_URL: https://terraformprovidergrafana.grafana.net/
98-
image: grafana/build-container:1.4.7
138+
GRAFANA_URL: http://grafana:3000
139+
image: golang:1.16
99140
name: tests
100141
trigger:
101142
branch:
@@ -107,19 +148,97 @@ type: docker
107148
workspace:
108149
path: /drone/terraform-provider-grafana
109150
---
110-
get:
111-
name: api-key
112-
path: infra/data/ci/terraform-provider-grafana/cloud
113-
kind: secret
114-
name: grafana-api-token
151+
kind: pipeline
152+
name: 'oss tests: 8.1.8'
153+
platform:
154+
arch: amd64
155+
os: linux
156+
services:
157+
- environment:
158+
GF_DATABASE_URL: sqlite3:///var/lib/grafana/grafana.db?cache=private&mode=rwc&_journal_mode=WAL
159+
image: grafana/grafana:8.1.8
160+
name: grafana
161+
steps:
162+
- commands:
163+
- sleep 5
164+
- make testacc-oss
165+
environment:
166+
GRAFANA_AUTH: admin:admin
167+
GRAFANA_ORG_ID: 1
168+
GRAFANA_URL: http://grafana:3000
169+
image: golang:1.16
170+
name: tests
171+
trigger:
172+
branch:
173+
- master
174+
event:
175+
- pull_request
176+
- push
177+
type: docker
178+
workspace:
179+
path: /drone/terraform-provider-grafana
115180
---
116-
get:
117-
name: sm-access-token
118-
path: infra/data/ci/terraform-provider-grafana/cloud
119-
kind: secret
120-
name: grafana-sm-token
181+
kind: pipeline
182+
name: 'oss tests: 8.0.7'
183+
platform:
184+
arch: amd64
185+
os: linux
186+
services:
187+
- environment:
188+
GF_DATABASE_URL: sqlite3:///var/lib/grafana/grafana.db?cache=private&mode=rwc&_journal_mode=WAL
189+
image: grafana/grafana:8.0.7
190+
name: grafana
191+
steps:
192+
- commands:
193+
- sleep 5
194+
- make testacc-oss
195+
environment:
196+
GRAFANA_AUTH: admin:admin
197+
GRAFANA_ORG_ID: 1
198+
GRAFANA_URL: http://grafana:3000
199+
image: golang:1.16
200+
name: tests
201+
trigger:
202+
branch:
203+
- master
204+
event:
205+
- pull_request
206+
- push
207+
type: docker
208+
workspace:
209+
path: /drone/terraform-provider-grafana
210+
---
211+
kind: pipeline
212+
name: 'oss tests: 7.5.12'
213+
platform:
214+
arch: amd64
215+
os: linux
216+
services:
217+
- environment:
218+
GF_DATABASE_URL: sqlite3:///var/lib/grafana/grafana.db?cache=private&mode=rwc&_journal_mode=WAL
219+
image: grafana/grafana:7.5.12
220+
name: grafana
221+
steps:
222+
- commands:
223+
- sleep 5
224+
- make testacc-oss
225+
environment:
226+
GRAFANA_AUTH: admin:admin
227+
GRAFANA_ORG_ID: 1
228+
GRAFANA_URL: http://grafana:3000
229+
image: golang:1.16
230+
name: tests
231+
trigger:
232+
branch:
233+
- master
234+
event:
235+
- pull_request
236+
- push
237+
type: docker
238+
workspace:
239+
path: /drone/terraform-provider-grafana
121240
---
122241
kind: signature
123-
hmac: 309ebe722ec79c0757942e8b3abc29ff11f472844c9a9bff8231d8c7c20616ed
242+
hmac: 08afcf164f1e51f8ae7c7ccbf390c0ab4c7ef3cab3015c7dccabb26123474f32
124243

125244
...

GNUmakefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
GRAFANA_VERSION ?= 8.2.5
1+
GRAFANA_VERSION ?= 8.3.3
22

33
testacc:
44
TF_ACC=1 go test ./... -v $(TESTARGS) -timeout 120m

grafana/resource_api_key_test.go

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -62,9 +62,15 @@ func testAccGrafanaAuthKeyCheckDestroy(s *terraform.State) error {
6262
return err
6363
}
6464

65-
_, err = c.DeleteAPIKey(id)
66-
if err == nil {
67-
return fmt.Errorf("api key still exists")
65+
keys, err := c.GetAPIKeys(false)
66+
if err != nil {
67+
return err
68+
}
69+
70+
for _, key := range keys {
71+
if key.ID == id {
72+
return fmt.Errorf("API key still exists")
73+
}
6874
}
6975
}
7076

0 commit comments

Comments
 (0)