1- # From: https://github.com/rkdarst/sphinx-actions-test/blob/master/.github/workflows/sphinx-build.yml
1+ name : CI
22
3- name : sphinx
4- on : [push, pull_request]
5-
6- env :
7- DEFAULT_BRANCH : " main"
8- # SPHINXOPTS: "-W --keep-going -T"
9- # ^-- If these SPHINXOPTS are enabled, then be strict about the builds and fail on any warnings
3+ on :
4+ [ push ]
105
116jobs :
12- build-and-deploy :
13- name : Build and gh-pages
7+ build :
8+
149 runs-on : ubuntu-latest
15- steps :
16- # https://github.com/marketplace/actions/checkout
17- - uses : actions/checkout@v2
18- with :
19- fetch-depth : 0
20- lfs : true
21- # https://github.com/marketplace/actions/setup-python
22- # ^-- This gives info on matrix testing.
23- - name : Install Python
24- uses : actions/setup-python@v2
25- with :
26- python-version : 3.8
27- # https://docs.github.com/en/actions/guides/building-and-testing-python#caching-dependencies
28- # ^-- How to set up caching for pip on Ubuntu
29- - name : Cache pip
30- uses : actions/cache@v2
31- with :
32- path : ~/.cache/pip
33- key : ${{ runner.os }}-pip-${{ hashFiles('requirements.txt') }}
34- restore-keys : |
35- ${{ runner.os }}-pip-
36- ${{ runner.os }}-
37- # https://docs.github.com/en/actions/guides/building-and-testing-python#installing-dependencies
38- # ^-- This gives info on installing dependencies with pip
39- - name : Install dependencies
40- run : |
41- python -m pip install --upgrade pip
42- pip install -r requirements.txt
43- - name : Debugging information
44- run : |
45- echo "github.ref:" ${{github.ref}}
46- echo "github.event_name:" ${{github.event_name}}
47- echo "github.head_ref:" ${{github.head_ref}}
48- echo "github.base_ref:" ${{github.base_ref}}
49- set -x
50- git rev-parse --abbrev-ref HEAD
51- git branch
52- git branch -a
53- git remote -v
54- python -V
55- pip list --not-required
56- pip list
57- # Build
58- - uses : ammaraskar/sphinx-problem-matcher@master
59- - name : Build Sphinx docs
60- run : |
61- make html
62- # This fixes broken copy button icons, as explained in
63- # https://github.com/coderefinery/sphinx-lesson/issues/50
64- # https://github.com/executablebooks/sphinx-copybutton/issues/110
65- # This can be removed once these PRs are accepted (but the
66- # fixes also need to propagate to other themes):
67- # https://github.com/sphinx-doc/sphinx/pull/8524
68- # https://github.com/readthedocs/sphinx_rtd_theme/pull/1025
69- # sed -i 's/url_root="#"/url_root=""/' _build/dirhtml/index.html || true
70- # The following supports building all branches and combining on
71- # gh-pages
7210
73- # Clone and set up the old gh-pages branch
74- - name : Clone old gh-pages
75- if : ${{ github.event_name == 'push' }}
76- run : |
77- set -x
78- git fetch
79- ( git branch gh-pages remotes/origin/gh-pages && git clone . --branch=gh-pages _gh-pages/ ) || mkdir _gh-pages
80- rm -rf _gh-pages/.git/
81- mkdir -p _gh-pages/branch/
82- # If a push and default branch, copy build to _gh-pages/ as the "main"
83- # deployment.
84- - name : Copy new build (default branch)
85- if : |
86- contains(github.event_name, 'push') &&
87- contains(github.ref, env.DEFAULT_BRANCH)
88- run : |
89- set -x
90- # Delete everything under _gh-pages/ that is from the
91- # primary branch deployment. Eicludes the other branches
92- # _gh-pages/branch-* paths, and not including
93- # _gh-pages itself.
94- find _gh-pages/ -mindepth 1 ! -path '_gh-pages/branch*' -delete
95- rsync -a _build/dirhtml/ _gh-pages/
96- # If a push and not on default branch, then copy the build to
97- # _gh-pages/branch/$brname (transforming '/' into '--')
98- - name : Copy new build (branch)
99- if : |
100- contains(github.event_name, 'push') &&
101- !contains(github.ref, env.DEFAULT_BRANCH)
102- run : |
103- set -x
104- #brname=$(git rev-parse --abbrev-ref HEAD)
105- brname="${{github.ref}}"
106- brname="${brname##refs/heads/}"
107- brdir=${brname//\//--} # replace '/' with '--'
108- rm -rf _gh-pages/branch/${brdir}
109- rsync -a _build/dirhtml/ _gh-pages/branch/${brdir}
110- # Go through each branch in _gh-pages/branch/, if it's not a
111- # ref, then delete it.
112- - name : Delete old feature branches
113- if : ${{ github.event_name == 'push' }}
114- run : |
115- set -x
116- for brdir in `ls _gh-pages/branch/` ; do
117- brname=${brdir//--/\/} # replace '--' with '/'
118- if ! git show-ref remotes/origin/$brname ; then
119- echo "Removing $brdir"
120- rm -r _gh-pages/branch/$brdir/
121- fi
122- done
123- # Add the .nojekyll file
124- - name : nojekyll
125- if : ${{ github.event_name == 'push' }}
126- run : |
127- touch _gh-pages/.nojekyll
128- # Deploy
129- # https://github.com/peaceiris/actions-gh-pages
130- - name : Deploy
131- uses : peaceiris/actions-gh-pages@v3
132- if : ${{ github.event_name == 'push' }}
133- # if: ${{ success() && github.event_name == 'push' && github.ref == 'refs/heads/$defaultBranch' }}
134- with :
135- publish_branch : gh-pages
136- github_token : ${{ secrets.GITHUB_TOKEN }}
137- publish_dir : _gh-pages/
138- force_orphan : true
11+ steps :
12+ - uses : actions/checkout@v1
13+ # Standard drop-in approach that should work for most people.
14+ - uses : ammaraskar/sphinx-action@master
15+ with :
16+ pre-build-command : " pip install -r dev.requirements.txt"
17+ docs-folder : " docs/"
0 commit comments