-
Notifications
You must be signed in to change notification settings - Fork 1
/
.gitlab-ci.yml
108 lines (100 loc) · 2.32 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
image: python:3.9
.cache-definitions:
- &julia
key:
prefix: julia
files:
- julia/Manifest.toml
- julia/Project.toml
paths:
- .julia/
- julia-*/
when: always
- &pip
key:
prefix: pip
files:
- .constraints/*.txt
paths:
- .cache/pip/
when: always
- &sphinx
key:
prefix: myst-nb
files:
- .constraints/*.txt
- data/*
# https://gitlab.com/gitlab-org/gitlab/-/issues/301161
# - src/polarimetry/*.py
# - src/polarimetry/*/*.py
paths:
- docs/_build/.jupyter_cache
- docs/_images
- docs/_static/export
- docs/_static/images
- docs/appendix/export
when: always
- &sympy
key:
prefix: sympy
files:
- .constraints/*.txt
paths:
- .sympy-cache-jax
- .sympy-cache
when: always
documentation:
stage: build
cache:
- *julia
- *pip
- *sphinx
- *sympy
before_script:
- apt-get update -y
- apt-get install -y cm-super dvipng inkscape latexmk texlive-fonts-extra texlive-latex-extra texlive-xetex xindy
- python3 -m pip install .[doc] tox -c .constraints/py3.9.txt
- version=$(sed -n '3p' julia/Manifest.toml)
- version=${version:17:-1}
- major_version=${version:0:-2}
- filename=julia-${version}-linux-x86_64.tar.gz
- |
if [ ! -d julia-${version} ]; then
wget -q https://julialang-s3.julialang.org/bin/linux/x64/${major_version}/${filename}
tar xzf ${filename}
fi
- mv julia-${version} /opt/
- ln -s /opt/julia-${version}/bin/julia /usr/local/bin/julia
- julia --version
- julia --project=./julia -e 'import Pkg; Pkg.instantiate()'
script:
- tox -e pdfnb
- EXECUTE_PLUTO="YES" tox -e docnb
artifacts:
paths:
- docs/_build/html
- docs/_build/latex
when: always
pages:
stage: deploy
dependencies:
- documentation
only:
- main
- tags
script:
- mv docs/_build/html/ public/
artifacts:
paths:
- public
when: always
stages:
- build
- deploy
# https://docs.gitlab.com/ee/ci/caching/#cache-python-dependencies
variables:
JULIA_CI: "true"
JULIA_DEPOT_PATH: "$CI_PROJECT_DIR/.julia/"
PIP_CACHE_DIR: "$CI_PROJECT_DIR/.cache/pip"
PYTHONHASHSEED: "0"
SYMPY_CACHE_DIR: "$CI_PROJECT_DIR"