-
Notifications
You must be signed in to change notification settings - Fork 1
/
.gitlab-ci.yaml
120 lines (100 loc) · 2.01 KB
/
.gitlab-ci.yaml
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
---
image: python:3.7
stages:
- lint
- test
- package
- deploy
flake8:
stage: lint
before_script:
- source .gitlab-ci.env
- pip install -e ".[dev]"
script:
- flake8 ${PACKAGE_NAME}
mypy:
stage: lint
before_script:
- source .gitlab-ci.env
- pip install -e ".[dev]"
script:
- mypy ${PACKAGE_NAME}
test_3.7:
stage: test
image: python:3.7
before_script:
- source .gitlab-ci.env
- pip install -e ".[test]"
- chmod a+x test.py
script:
- ./test.py
rules:
- exists:
- test.py
test_3.8:
stage: test
image: python:3.8
before_script:
- source .gitlab-ci.env
- pip install -e ".[test]"
- chmod a+x test.py
script:
- ./test.py
rules:
- exists:
- test.py
test_3.9:
stage: test
image: python:3.9
before_script:
- source .gitlab-ci.env
- pip install -e ".[test]"
- chmod a+x test.py
script:
- ./test.py
rules:
- exists:
- test.py
test_3.10:
stage: test
image: python:3.10
before_script:
- source .gitlab-ci.env
- pip install -e ".[test]"
- chmod a+x test.py
script:
- ./test.py
rules:
- exists:
- test.py
test_3.11:
stage: test
image: python:3.11
before_script:
- source .gitlab-ci.env
- pip install -e ".[test]"
- chmod a+x test.py
script:
- ./test.py
rules:
- exists:
- test.py
package:
stage: package
image: docker.linss.com/docker-images/python-build:main
script:
- python -m build --no-isolation --outdir dist
artifacts:
paths:
- dist
rules:
- if: '$CI_COMMIT_TAG =~ /^v[0-9]+\.[0-9]+\.[0-9]+(-[a-zA-Z0-9-\.]+)?$/'
deploy:
stage: deploy
before_script:
- source .gitlab-ci.env
- pip install --upgrade wheel twine
script:
- python -m twine upload --username __token__ --password ${PYPI_API_TOKEN} --non-interactive --disable-progress-bar --repository-url ${PYPI_REPOSITORY_URL} dist/*
rules:
- if: '$CI_COMMIT_TAG =~ /^v[0-9]+\.[0-9]+\.[0-9]+(-[a-zA-Z0-9-\.]+)?$/'