-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path.gitlab-ci.yml
More file actions
180 lines (159 loc) · 3.76 KB
/
Copy path.gitlab-ci.yml
File metadata and controls
180 lines (159 loc) · 3.76 KB
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
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
image: python:3.10
cache:
paths:
- .venv
stages:
- style
- test
- deploy
before_script:
- pip install poetry
- poetry config virtualenvs.in-project true
- poetry install --with test,docs,planner
- source .venv/bin/activate
###### Test #########
unittest:
stage: test
rules:
# Run all scenarios on these branches
- if: '$CI_COMMIT_BRANCH =~ /^(develop|master|release)$/'
variables:
RUN_ALL_SCENARIOS: "1"
# Run all scenarios if commit message contains a marker
# (example marker: [full-scenarios])
- if: '$CI_COMMIT_MESSAGE =~ /\[RUN_ALL_SCENARIOS\]/'
variables:
RUN_ALL_SCENARIOS: "1"
# Otherwise: only first two scenarios
- when: on_success
variables:
RUN_ALL_SCENARIOS: "0"
script:
- echo "RUN_ALL_SCENARIOS=$RUN_ALL_SCENARIOS"
- coverage run --source=./commonroad_control -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
expire_in: 2 days
test_build_pages:
stage: test
allow_failure: true
script:
- mkdocs build
artifacts:
paths:
- site
expire_in: 2 days
needs: [ ]
####### Style ##########
isort:
stage: style
needs: []
allow_failure: true
image: python:3.10
before_script: []
cache: []
only:
- develop
- master
- release
script:
- pip install isort
- isort --profile black --check-only --diff commonroad_control/
flake8:
stage: style
needs: []
allow_failure: true
image: python:3.10
before_script: []
cache: []
only:
- develop
- master
- release
script:
- pip install flake8
- flake8 commonroad_control/ --extend-ignore=E501,E203 --max-line-length=120
black:
stage: style
needs: []
allow_failure: true
image: pyfound/black:24.2.0
before_script: []
cache: []
only:
- develop
- master
- release
script:
- black --check --verbose --diff --color --line-length 120 commonroad_control/
#mdformat:
# stage: style
# needs: []
# allow_failure: true
# image: python:3.10
# before_script: []
# cache: []
# only:
# - develop
# - master
# - release
# script:
# - pip install "mdformat[black]"
# - mdformat --check docs/
################# Deploy ##########
# Deploy the package to the internal package registry
deploy_master:
stage: deploy
when: manual
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
# Deploy to gitlab pages
pages:
stage: deploy
when: manual
publish: site
only:
- develop
- master
script:
- mkdocs build
artifacts:
paths:
- site
environment:
name: Gitlab Pages
url: https://cps.pages.gitlab.lrz.de/commonroad/commonroad-control/
# 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-control