-
Notifications
You must be signed in to change notification settings - Fork 8
158 lines (134 loc) · 4.69 KB
/
doc.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
147
148
149
150
151
152
153
154
155
156
157
158
name: Build Documentation
on:
pull_request:
push:
branches:
- main
workflow_dispatch:
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
env:
PYVISTA_OFF_SCREEN: "True"
ALLOW_PLOTTING: true
SHELLOPTS: "errexit:pipefail"
DISPLAY: ":99.0"
jobs:
build-doc:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: actions/setup-python@v5
with:
python-version: "3.10"
- uses: syphar/restore-virtualenv@v1
id: cache-virtualenv
- name: Install OS Packages
run: |
sudo apt-get update
sudo apt-get install -yqq libxkbcommon-x11-0 libxcb-icccm4 libxcb-image0 libxcb-keysyms1 libxcb-randr0 libxcb-render-util0 libxcb-xinerama0 libxcb-xfixes0 libopengl0 libegl1
/sbin/start-stop-daemon --start --quiet --pidfile /tmp/custom_xvfb_99.pid --make-pidfile --background --exec /usr/bin/Xvfb -- :99 -screen 0 1400x900x24 -ac +extension GLX +render -noreset
sudo apt-get update
sudo apt-get install libosmesa6-dev libgl1-mesa-dev python3-tk pandoc git-restore-mtime
sudo apt-get install python3-tk xcb
- name: Install Dependencies
run: |
sudo apt -y install libgeos-dev
pip install -e .[docs]
- name: PyVista Report
run: |
python -c "import pyvista;print(pyvista.Report())"
echo PYVISTA_EXAMPLE_DATA_PATH=$(python -c "from pyvista import examples; print(examples.USER_DATA_PATH)") >> $GITHUB_ENV
- name: Build Documentation
run: make -C doc html SPHINXOPTS="-W --keep-going"
- name: Tar build
run: tar -zcvf doc-build.tar.gz doc/build/
- uses: actions/upload-artifact@v4
with:
name: doc-build
path: doc-build.tar.gz
- uses: actions/upload-artifact@v4
with:
name: tutorial
path: doc/source/tutorial
- name: Get Notebooks
run: |
mkdir _notebooks
find doc/source/tutorial -type f -name '*.ipynb' | cpio -p -d -v _notebooks/
find doc/source/tutorial/09_trame -type f -name '*.py' | cpio -p -d -v _notebooks/
rm _notebooks/doc/source/tutorial/09_trame/*.ipynb
- uses: actions/upload-artifact@v4
with:
name: tutorial-notebooks
path: _notebooks
deploy:
name: Publish Documentation
runs-on: ubuntu-latest
needs: build-doc
if: github.event_name == 'push' && github.ref == 'refs/heads/main'
steps:
- uses: actions/checkout@v4
- uses: actions/download-artifact@v4
with:
name: doc-build
path: .
- name: UnTar build
run: tar -xzvf doc-build.tar.gz
- name: Zip Notebooks
run: |
cp -r doc/build/html/notebooks/tutorial/ notebooks
zip -r notebooks.zip notebooks/
mv notebooks.zip doc/build/html/
- name: Deploy to GH Pages
uses: peaceiris/actions-gh-pages@v4
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: doc/build/html
cname: tutorial.pyvista.org
- name: Copy Tutorial Content
run: |
mkdir tutorial-content
cp -r notebooks tutorial-content/notebooks
cp README.md tutorial-content/
cp LICENSE tutorial-content/
cp requirements.txt tutorial-content/
cp start tutorial-content/
cp Dockerfile tutorial-content/
- name: Deploy to Tutorial branch
uses: peaceiris/actions-gh-pages@v4
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: tutorial-content/
publish_branch: tutorial
preview:
name: Preview Documentation
runs-on: ubuntu-latest
needs: build-doc
steps:
- uses: actions/checkout@v4
- uses: actions/download-artifact@v4
with:
name: doc-build
path: .
- name: UnTar build
run: tar -xzvf doc-build.tar.gz
- name: Zip Notebooks
run: |
cp -r doc/build/html/notebooks/tutorial/ notebooks
zip -r notebooks.zip notebooks/
mv notebooks.zip doc/build/html/
- uses: nwtgck/actions-netlify@v3.0
with:
publish-dir: doc/build/html
production-branch: main
github-token: ${{ secrets.GITHUB_TOKEN }}
deploy-message: "Deploy from GitHub Actions"
enable-pull-request-comment: true
enable-commit-comment: false
overwrites-pull-request-comment: true
env:
NETLIFY_AUTH_TOKEN: ${{ secrets.NETLIFY_AUTH_TOKEN }}
NETLIFY_SITE_ID: ${{ secrets.NETLIFY_SITE_ID }}
timeout-minutes: 1