11local 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+
832local 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+
105152local 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+
115211local 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