-
Notifications
You must be signed in to change notification settings - Fork 2
114 lines (97 loc) · 3.55 KB
/
builddocsite.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
# create a documentation web site for GSAS-II from four sources
# * HTML tutorials are simply copied
# * markdown tutorials (in ./MDtutorials) are formatted with pandoc and are copied over
# * HTML help files are copied over from the GSAS-II sources
# * sphinx is used to generate HTML from files in ./webdocs
# Also the tutorials.html file and the */data/index.html files are
# created by running scripts/makeGitTutorial
name: build GSAS-II web site
#on: [workflow_dispatch]
on: [push, workflow_dispatch]
permissions:
contents: write
id-token: write
pages: write
jobs:
build: # Build web pages
runs-on: ubuntu-latest
steps:
- name: Python setup
uses: actions/setup-python@v3
- name: Sphinx setup
run: |
pip install sphinx sphinx_readable_theme
- name: pandoc setup
uses: pandoc/actions/setup@v1
- name: Checkout
uses: actions/checkout@v4
- name: Get tutorials index from source code
run: |
curl -L https://github.com/AdvancedPhotonSource/GSAS-II/raw/master/GSASII/tutorialIndex.py -o scripts/tutorialIndex.py
- name: convert tutorials
run: |
cd MDtutorials
for path in ./*; do
[ -d "${path}" ] || continue # skip if not a directory
dirname="$(basename "${path}")"
dest="../${dirname}"
mkdir -pv ${dest}
[ ! -d "${path}/data" ] || cp -r "${path}/data" ${dest}/
[ ! -d "${path}/imgs" ] || cp -r "${path}/imgs" ${dest}/
cp tutorial.css ${dest}
for fil in $dirname/*.md; do
outfile="${dest}/$(basename "${fil%.md}.html")"
echo "creating $outfile from $fil"
pandoc --standalone ${fil} --css tutorial.css -o ${outfile}
sed -i "s/<figure>/<BR clear=all><figure>/g" ${outfile}
done
git add ${dest}
done
cd ..
- name: build tutorials index
run: |
cd scripts
python makeGitTutorial.py ..
- name: Note changed files
run: |
git status
git add tutorials.html
git add */data/index.html
- name: Push changes
uses: ad-m/github-push-action@master
- name: Sphinx build
run: |
sphinx-build webdocs . # place output into root dir
cp webdocs/_static/fix.css _static/fix.css # should be done by sphinx
# get the help pages from the GSAS-II sources into the web site
- name: Get GSAS-II
run: |
git clone --depth 1 https://github.com/AdvancedPhotonSource/GSAS-II.git _gsas2
- name: move help into site
run: |
mv _gsas2/GSASII/help ./help
- name: Get rid of the rest of the GSAS-II files & other stuff not needed on web
run: |
rm -rf _gsas2 webdocs scripts MDtutorials
- name: Upload artifact # creates zip file with website contents
uses: actions/upload-pages-artifact@v3
with:
path: .
name: github-pages
retention-days: 1
deploy: # Deployment of web pages to GitHub pages
needs: build
permissions:
pages: write
id-token: write
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
runs-on: ubuntu-latest
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4
with:
token: ${{ secrets.GITHUB_TOKEN }}
artifact_name: github-pages