-
Notifications
You must be signed in to change notification settings - Fork 0
/
.gitlab-ci.yml
140 lines (124 loc) · 2.76 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
stages:
- test
- build
- docs
- deploy
variables:
PIP_CACHE_DIR: "$CI_PROJECT_DIR/.cache/pip"
cache:
key: "${CI_JOB_NAME}"
paths:
- .cache/pip
# -- test -------------------
.test: &test
except:
- /^debian.*$/
image: python
script:
# install testing dependencies
- python -m pip install setuptools_scm pytest pytest-cov
# install package (using -e to get script coverage)
- python -m pip install -e ${CI_PROJECT_DIR}
# run tests
- python -m pytest gpstime/test.py -v --cov gpstime --cov-report= --junitxml="junit.xml"
#- python -m coverage run -a $(which gpstime)
- python -m coverage report
artifacts:
reports:
junit: junit.xml
test:3.7:
<<: *test
image: python:3.7
test:3.8:
<<: *test
image: python:3.8
test:3.9:
<<: *test
image: python:3.9
test:3.10:
<<: *test
image: python:3.10
test:3.10:mac:
<<: *test
image: python:3.10
tags:
- macos_bigsur_arm64
before_script:
- python3 -m venv test
- . test/bin/activate
# -- build ------------------
.build:debian: &build-debian
only:
- /^debian.*$/
before_script:
- apt-get update -yqq
- apt-get install -yq
dpkg-dev
devscripts
lintian
script:
- mkdir -pv dist
# install build dependencies
- mk-build-deps --tool "apt-get -y" --install --remove
# build packages
- dpkg-buildpackage -us -uc -b
# lint packages
- lintian ../gpstime_*.changes
# move things into dist/
- mv -v ../python3-gpstime_*.deb ../gpstime_*.{buildinfo,changes} dist/
artifacts:
paths:
- dist/
build:debian:buster:
<<: *build-debian
image: debian:buster
build:debian:bullseye:
<<: *build-debian
image: debian:bullseye
# -- docs -------------------
docs:
stage: docs
except:
- /^debian.*$/
image: python
before_script:
# install docs requirements
- python -m pip install sphinx sphinx_rtd_theme
# install this package
- python -m pip install .
script:
- _version=$(python setup.py --version)
- mkdir -v docs
- cd docs
# generate docs skeleton
- python -m sphinx.ext.apidoc
--module-first
--separate
--full
--ext-autodoc
--ext-intersphinx
--doc-project "gpstime"
--doc-author "California Institute of Technology"
--doc-version "${_version}"
--output-dir .
../gpstime
# use sphinx_rtd_theme
- sed -i 's/alabaster/sphinx_rtd_theme/g' conf.py
# run sphinx to generate docs
- python -m sphinx -b html . html
artifacts:
paths:
- docs/html
pages:
stage: deploy
except:
- /^debian.*$/
dependencies:
- docs
only:
- tags
script:
- mv docs/html public
artifacts:
paths:
- public