-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path.gitlab-ci.yml
146 lines (123 loc) · 2.7 KB
/
.gitlab-ci.yml
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
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
image: python:3.10
cache:
paths:
- .venv
stages:
- style
- testinstall
- test
- deploy
before_script:
- pip install poetry
- poetry config virtualenvs.in-project true
- poetry update
- poetry install --with test,docs,mapmatching
- source .venv/bin/activate
###### Test #########
unittest:
stage: test
except:
- public
- feature/release_check
script:
- coverage run --source=./commonroad_route_planner -m unittest discover test
- coverage report -m || true
- coverage xml
coverage: '/(?i)total.*? (100(?:\.0+)?\%|[1-9]?\d(?:\.\d+)?\%)$/'
artifacts:
reports:
coverage_report:
coverage_format: cobertura
path: coverage.xml
test_build_pages:
stage: test
allow_failure: true
script:
- mkdocs build
artifacts:
paths:
- site
needs: [ ]
test_no_scenario_files:
stage: test
only:
- public
- feature/release_check
script:
- if [ -d scenarios/ ]; then exit 1; fi
####### Style ##########
flake8:
stage: style
needs: []
image: python:3.10
before_script: []
cache: []
only:
- develop
- master
- release
script:
- pip install flake8
- flake8 commonroad_route_planner/ --extend-ignore=E501,E203 --max-line-length=120
black:
stage: style
needs: []
image: pyfound/black:24.2.0
before_script: []
cache: []
only:
- develop
- master
- release
script:
- black --check --verbose --diff --color commonroad_route_planner/
################# Deploy ##########
# Deploy the package to the internal package registry
deploy_master:
stage: deploy
script:
- poetry config repositories.gitlab ${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/pypi
- poetry build
- poetry publish --repository gitlab -u gitlab-ci-token -p ${CI_JOB_TOKEN}
only:
- master
except:
- tags
when: manual
# Deploy to gitlab pages
pages:
stage: deploy
publish: site
only:
- master
when: manual
script:
- mkdocs build
artifacts:
paths:
- site
environment:
name: Gitlab Pages
url: https://cps.pages.gitlab.lrz.de/commonroad/commonroad-route-planner/
# deploy to external pypy-test from master
push_to_external_pipy_test_registry:
stage: deploy
when: manual
only:
- master
script:
- poetry config repositories.test https://test.pypi.org/legacy/
- poetry build
- poetry publish --repository test -u __token__ -p ${CR_PYPI_TEST_API_TOKEN}
# Deploy to PiPy from release
publish_pypi:
stage: deploy
when: manual
only:
- release
script:
- poetry build
- poetry publish -u __token__ -p ${CR_PYPI_RELEASE_API_TOKEN}
environment:
name: production
url: https://pypi.org/project/commonroad-route-planner