-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path.drone.star
123 lines (120 loc) · 3.46 KB
/
.drone.star
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
def main(ctx):
return [
lint(),
test("3-9", "3.9"),
test("3-10", "3.10"),
test("3-11", "3.11"),
test("3-12", "3.12"),
test("3-13", "3.13"),
release("3-9", "3.9"),
release("3-10", "3.10"),
release("3-11", "3.11"),
release("3-12", "3.12"),
release("3-13", "3.13", custom_tags = "latest"),
]
def lint():
return {
"kind": "pipeline",
"type": "docker",
"name": "lint",
"steps": [
{
"name": "Lint Dockerfiles",
"image": "hadolint/hadolint:latest-debian",
"pull": "if-not-exists",
"commands": [
"hadolint --version",
"hadolint */Dockerfile",
],
},
],
"trigger": {
"event": [
"pull_request",
"push",
],
"ref": {
"exclude": [
"refs/heads/renovate/*",
],
},
},
}
def test(name, python_version, dockerfile = "Dockerfile"):
return {
"kind": "pipeline",
"type": "docker",
"name": "test_%s" % name,
"steps": [
{
"name": "build test",
"image": "plugins/docker",
"pull": "if-not-exists",
"settings": {
"dockerfile": "%s/%s" % (python_version, dockerfile),
"username": {
"from_secret": "dockerhub_username",
},
"password": {
"from_secret": "dockerhub_password_ro",
},
"dry_run": "true",
"repo": "mwalbeck/python-poetry",
},
},
],
"trigger": {
"event": [
"pull_request",
],
},
"depends_on": [
"lint",
],
}
def release(name, python_version, dockerfile = "Dockerfile", custom_tags = ""):
return {
"kind": "pipeline",
"type": "docker",
"name": "release_%s" % name,
"steps": [
{
"name": "determine tags",
"image": "mwalbeck/determine-docker-tags",
"pull": "if-not-exists",
"environment": {
"VERSION_TYPE": "docker_env",
"APP_NAME": "POETRY",
"DOCKERFILE_PATH": "%s/%s" % (python_version, dockerfile),
"APP_ENV": python_version,
"CUSTOM_TAGS": custom_tags,
},
},
{
"name": "build and publish",
"image": "plugins/docker",
"pull": "if-not-exists",
"settings": {
"dockerfile": "%s/%s" % (python_version, dockerfile),
"username": {
"from_secret": "dockerhub_username",
},
"password": {
"from_secret": "dockerhub_password",
},
"repo": "mwalbeck/python-poetry",
},
},
],
"trigger": {
"branch": [
"master",
],
"event": [
"push",
],
},
"depends_on": [
"lint",
],
}