-
-
Notifications
You must be signed in to change notification settings - Fork 12.4k
Expand file tree
/
Copy pathconfig.yml
More file actions
173 lines (150 loc) · 5.24 KB
/
config.yml
File metadata and controls
173 lines (150 loc) · 5.24 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
# Python CircleCI 2.1 configuration file
#
# Check https://circleci.com/docs/2.1/language-python/ for more details
#
version: 2.1
# Aliases to reuse
_defaults: &defaults
docker:
# CircleCI maintains a library of pre-built images
# documented at https://circleci.com/developer/images/image/cimg/python
- image: cimg/python:3.12.12
working_directory: ~/repo
jobs:
build:
<<: *defaults
steps:
- checkout:
method: blobless
- run:
name: check skip
command: |
export git_log=$(git log --max-count=1 --pretty=format:"%B" | tr "\n" " ")
echo "Got commit message:"
echo "${git_log}"
if [[ -v CIRCLE_PULL_REQUEST ]] && \
([[ "$git_log" == *"[skip circle]"* ]] || \
[[ "$git_log" == *"[circle skip]"* ]])
then
echo "Skip detected, exiting job ${CIRCLE_JOB} for PR ${CIRCLE_PULL_REQUEST}."
circleci-agent step halt;
fi
- run:
name: pull changes from merge
command: |
if [[ -v CI_PULL_REQUEST ]] ; then git pull --ff-only origin "refs/pull/${CI_PULL_REQUEST//*pull\//}/merge" ; fi
- run:
name: update submodules
command: |
git submodule update --init
- run:
name: install system dependencies
command: |
sudo apt-get update
sudo apt-get install -y graphviz texlive-fonts-recommended texlive-latex-recommended \
texlive-latex-extra latexmk texlive-xetex texlive-lang-chinese doxygen
- run:
name: build NumPy
command: |
python3.12 -m venv venv
. venv/bin/activate
pip install --progress-bar=off -r requirements/test_requirements.txt \
-r requirements/build_requirements.txt \
-r requirements/ci_requirements.txt
# get newer, pre-release versions of critical packages
pip install --progress-bar=off --pre -r requirements/doc_requirements.txt
# then install numpy HEAD, which will override the version installed above
spin build --with-scipy-openblas=64 -j 2
- run:
name: build devdocs w/ref warnings
command: |
. venv/bin/activate
# Don't use -q, show warning summary"
SPHINXOPTS="-W -n" spin docs
if [[ $(find doc/build/html -type f | wc -l) -lt 1000 ]]; then
echo "doc build failed: doc/build/html is empty"
exit -1
fi
- run:
name: build neps
command: |
. venv/bin/activate
cd doc/neps
SPHINXOPTS="-n" make -e html || echo "ignoring errors for now"
- store_artifacts:
path: doc/build/html/
- store_artifacts:
path: doc/neps/_build/html/
# destination: neps
- run:
name: check doctests
command: |
. venv/bin/activate
spin check-docs -v
spin check-tutorials -v
# Currently, this does two checks not done by check-docs:
# - validates ReST blocks (via validate_rst_syntax)
# - checks that all of a module's `__all__` is reflected in the
# module-level docstring autosummary
echo calling python3 tools/refguide_check.py -v
python3 tools/refguide_check.py -v
- persist_to_workspace:
root: ~/repo
paths:
- doc/build/html
- doc/neps/_build
- tools/ci/push_docs_to_repo.py
deploy:
<<: *defaults
steps:
- checkout:
method: blobless
- attach_workspace:
at: ~/repo
- add_ssh_keys:
fingerprints:
- "45:d8:d1:d6:f7:53:47:c5:d0:9e:35:19:79:e7:ff:24"
- run:
name: deploy devdocs
command: |
touch doc/build/html/.nojekyll
./tools/ci/push_docs_to_repo.py doc/build/html \
--committer "numpy-circleci-bot" \
--email "numpy-circleci-bot@nomail" \
--message "Docs build of $CIRCLE_SHA1" \
--count 5 \
--force \
[email protected]:numpy/devdocs.git
- add_ssh_keys:
fingerprints:
- "df:8b:fb:34:2d:38:7d:49:fc:1b:e8:44:4f:bd:2c:0e"
- run:
name: select SSH key for neps repo
command: |
cat \<<\EOF > ~/.ssh/config
Host github.com
IdentitiesOnly yes
IdentityFile /home/circleci/.ssh/id_rsa_df8bfb342d387d49fc1be8444fbd2c0e
EOF
- run:
name: deploy neps
command: |
touch doc/neps/_build/html/.nojekyll
./tools/ci/push_docs_to_repo.py doc/neps/_build/html \
--committer "numpy-circleci-bot" \
--email "numpy-circleci-bot@nomail" \
--message "Docs build of $CIRCLE_SHA1" \
--count 5 \
--force \
[email protected]:numpy/neps.git \
workflows:
version: 2
default:
jobs:
- build
- deploy:
requires:
- build
filters:
branches:
only: main