Skip to content

Commit 124865f

Browse files
Merge pull request #56
2 parents becdb6d + 7670674 commit 124865f

28 files changed

+3274
-2055
lines changed

.coveragerc

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,7 @@
11
[run]
22
branch = True
3+
parallel = True
34
include = ./*.py
4-
omit = ./test_*.py
5+
omit =
6+
./test/*
7+
./integration_test/*

.coveralls.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
service_name: drone
2+
parallel: true

.drone.jsonnet

Lines changed: 111 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,34 @@
11
local images = {
2+
curl: 'alpine/curl@sha256:c64976d53728ca1b4918a49257845af27e343c4a79090788f83afe9f3e800965',
23
// https://github.com/drGrove/drone-kaniko/tree/v0.7.0
34
kaniko: 'drgrove/drone-kaniko@sha256:e3045421c3683e6baf5628b22ea0ee1cd7ae217f4de0e1bc53a0a1a20335b108',
45
postgres: 'postgres:12',
56
python: 'python:3.9-slim-buster',
67
};
78

9+
local pr_trigger = {
10+
event: [
11+
'pull_request',
12+
],
13+
};
14+
15+
local master_trigger = {
16+
event: [
17+
'push',
18+
],
19+
ref: {
20+
include: [
21+
'refs/heads/master',
22+
],
23+
},
24+
};
25+
26+
local tag_trigger = {
27+
event: [
28+
'tag',
29+
],
30+
};
31+
832
local pipeline(
933
name,
1034
kind='pipeline',
@@ -79,8 +103,8 @@ local postgresql = step(
79103
detach=true,
80104
);
81105

82-
local test(python_version) = step(
83-
'test',
106+
local unittest(python_version) = step(
107+
'unit test',
84108
'python:' + python_version + '-slim-buster',
85109
environment={
86110
PGHOST: 'postgresql',
@@ -102,16 +126,88 @@ local test(python_version) = step(
102126
]
103127
);
104128

129+
local integration_test(python_version) = step(
130+
'integration test',
131+
'python:' + python_version + '-slim-buster',
132+
environment={
133+
PGHOST: 'postgresql',
134+
COVERALLS_REPO_TOKEN: {
135+
from_secret: 'COVERALLS_REPO_TOKEN',
136+
},
137+
CLEANUP: '0',
138+
},
139+
commands=[
140+
'apt update && apt install -y make cmake gnupg git postgresql-client',
141+
'pip3 install pipenv',
142+
'make setup-dev',
143+
'cp config.ini.example config.ini',
144+
'make create-ca',
145+
'make integration-test.dev coverage coveralls',
146+
],
147+
depends_on=[
148+
clone.name,
149+
]
150+
);
151+
105152
local unittest_pl(pl_type, python_version, trigger={}) = pipeline(
106153
pl_type + ' Unit Test: ' + python_version,
107154
steps=[
108155
clone,
109156
postgresql,
110-
test(python_version),
157+
unittest(python_version),
111158
],
112159
trigger=trigger,
113160
);
114161

162+
local integration_test_pl(pl_type, python_version, trigger={}) = pipeline(
163+
pl_type + ' Integration Test: ' + python_version,
164+
steps=[
165+
clone,
166+
postgresql,
167+
integration_test(python_version),
168+
],
169+
trigger=trigger,
170+
);
171+
172+
local notify_coveralls_complete = step(
173+
'Coverage Complete',
174+
images.curl,
175+
environment={
176+
COVERALLS_REPO_TOKEN: {
177+
from_secret: 'COVERALLS_REPO_TOKEN',
178+
},
179+
},
180+
commands=[
181+
'curl -k https://coveralls.io/webhook?repo_token=$COVERALLS_REPO_TOKEN -d "payload[build_num]=$DRONE_BUILD_NUMBER&payload[status]=done"',
182+
],
183+
depends_on=[
184+
clone.name,
185+
],
186+
);
187+
188+
local coveralls_complete_pl(pl_type, trigger={}) = pipeline(
189+
pl_type + ': Coverage',
190+
steps=[
191+
clone,
192+
notify_coveralls_complete,
193+
],
194+
trigger=trigger,
195+
depends_on=[
196+
unittest_pl('PR', '3.10', trigger=pr_trigger).name,
197+
unittest_pl('Master', '3.10', trigger=master_trigger).name,
198+
unittest_pl('Tag', '3.10', trigger=tag_trigger).name,
199+
unittest_pl('PR', '3.9', trigger=pr_trigger).name,
200+
unittest_pl('Master', '3.9', trigger=master_trigger).name,
201+
unittest_pl('Tag', '3.9', trigger=tag_trigger).name,
202+
integration_test_pl('PR', '3.10', trigger=pr_trigger).name,
203+
integration_test_pl('Master', '3.10', trigger=master_trigger).name,
204+
integration_test_pl('Tag', '3.10', trigger=tag_trigger).name,
205+
integration_test_pl('PR', '3.9', trigger=pr_trigger).name,
206+
integration_test_pl('Master', '3.9', trigger=master_trigger).name,
207+
integration_test_pl('Tag', '3.9', trigger=tag_trigger).name,
208+
]
209+
);
210+
115211
local get_image_tag = step(
116212
'Get Tag',
117213
images.python,
@@ -154,39 +250,22 @@ local image_build_pl(pl_type, trigger={}, push=false) = pipeline(
154250
trigger=trigger
155251
);
156252

157-
local pr_trigger = {
158-
event: [
159-
'pull_request',
160-
],
161-
};
162-
163-
local master_trigger = {
164-
event: [
165-
'push',
166-
],
167-
ref: {
168-
include: [
169-
'refs/heads/master',
170-
],
171-
},
172-
};
173-
174-
local tag_trigger = {
175-
event: [
176-
'tag',
177-
],
178-
};
179-
180253
[
254+
unittest_pl('PR', '3.10', trigger=pr_trigger),
255+
unittest_pl('Master', '3.10', trigger=master_trigger),
256+
unittest_pl('Tag', '3.10', trigger=tag_trigger),
181257
unittest_pl('PR', '3.9', trigger=pr_trigger),
182258
unittest_pl('Master', '3.9', trigger=master_trigger),
183259
unittest_pl('Tag', '3.9', trigger=tag_trigger),
184-
unittest_pl('PR', '3.8', trigger=pr_trigger),
185-
unittest_pl('Master', '3.8', trigger=master_trigger),
186-
unittest_pl('Tag', '3.8', trigger=tag_trigger),
187-
unittest_pl('PR', '3.7', trigger=pr_trigger),
188-
unittest_pl('Master', '3.7', trigger=master_trigger),
189-
unittest_pl('Tag', '3.7', trigger=tag_trigger),
260+
integration_test_pl('PR', '3.10', trigger=pr_trigger),
261+
integration_test_pl('Master', '3.10', trigger=master_trigger),
262+
integration_test_pl('Tag', '3.10', trigger=tag_trigger),
263+
integration_test_pl('PR', '3.9', trigger=pr_trigger),
264+
integration_test_pl('Master', '3.9', trigger=master_trigger),
265+
integration_test_pl('Tag', '3.9', trigger=tag_trigger),
266+
coveralls_complete_pl('PR', trigger=pr_trigger),
267+
coveralls_complete_pl('Master', trigger=master_trigger),
268+
coveralls_complete_pl('Tag', trigger=tag_trigger),
190269
image_build_pl('PR', trigger=pr_trigger, push=false),
191270
image_build_pl('Master', trigger=master_trigger, push=false),
192271
image_build_pl('Tag', trigger=tag_trigger, push=true),

0 commit comments

Comments
 (0)