build-docs #3561
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Build and deploy site | |
on: | |
repository_dispatch: | |
schedule: | |
- cron: '29 11 * * *' | |
pull_request: | |
push: | |
branches: [main] | |
jobs: | |
cancel-superseded: | |
name: Cancel superseded | |
runs-on: ubuntu-24.04 | |
steps: | |
- name: Cancel Previous Runs | |
uses: styfle/[email protected] | |
with: | |
access_token: ${{ github.token }} | |
build-core-site: | |
needs: cancel-superseded | |
name: Build core site | |
runs-on: ubuntu-24.04 | |
steps: | |
- name: Cancel Previous Runs | |
uses: styfle/[email protected] | |
with: | |
access_token: ${{ github.token }} | |
- name: Checkout | |
uses: actions/[email protected] | |
- name: Set up Ruby 2.7 | |
uses: ruby/[email protected] | |
with: | |
ruby-version: '2.7' | |
bundler-cache: true # runs 'bundle install' and caches installed gems automatically | |
- uses: actions/[email protected] | |
with: | |
node-version: 14 | |
cache: 'npm' | |
- name: Install deps | |
run: npm ci | |
- name: Build site | |
run: GITHUB_TOKEN=${{ github.token }} grunt build | |
- name: Debug | |
run: | | |
cat Gemfile.lock | |
bundle info jekyll | |
bundle info jekyll-theme-cayman | |
ls | |
cat dist/index.html | |
- name: Upload built site | |
uses: actions/[email protected] | |
with: | |
name: core-site | |
path: dist/* | |
build-msprime-docs: | |
name: Build msprime docs | |
needs: cancel-superseded | |
runs-on: ubuntu-24.04 | |
steps: | |
- uses: actions/[email protected] | |
name: Checkout msprime | |
with: | |
ref: main | |
repository: tskit-dev/msprime | |
submodules: true | |
fetch-depth: 0 # Needed for setuptools_scm to work correctly | |
- name: Get commit SHA1 for cache | |
run: git rev-parse HEAD > SHA1 | |
- uses: actions/[email protected] | |
id: docs-cache | |
name: Docs cache | |
with: | |
path: dist | |
key: msprime-docs-v11-${{ hashFiles('SHA1') }} | |
- name: Install GSL | |
if: steps.docs-cache.outputs.cache-hit != 'true' | |
run: sudo apt-get install -y libgsl0-dev | |
- uses: actions/[email protected] | |
if: steps.docs-cache.outputs.cache-hit != 'true' | |
name: Setup Python | |
with: | |
python-version: "3.10" | |
- name: Build virtualenv | |
if: steps.docs-cache.outputs.cache-hit != 'true' | |
run: python -m venv venv-latest | |
- name: Install deps | |
if: steps.docs-cache.outputs.cache-hit != 'true' | |
run: | | |
venv-latest/bin/activate && pip install -r requirements/CI-docs/requirements.txt | |
- name: Build C module | |
if: steps.docs-cache.outputs.cache-hit != 'true' | |
run: venv-latest/bin/activate && make | |
- name: Build Latest Docs | |
if: steps.docs-cache.outputs.cache-hit != 'true' | |
run: | | |
venv-latest/bin/activate | |
cd docs | |
make dist | |
# make dist changes the _conf.yml file to write the version number, so drop the change | |
git checkout . | |
- name: Copy docs | |
if: steps.docs-cache.outputs.cache-hit != 'true' | |
run: | | |
mkdir -p dist | |
cp -r docs/_build/html dist/latest | |
- name: Checkout latest stable tag | |
if: steps.docs-cache.outputs.cache-hit != 'true' | |
run: | | |
git fetch --tags --recurse-submodules=no | |
git checkout `git tag --list --sort=creatordate | grep -vi "[baC]" | tail -n1` | |
git submodule update --init --recursive | |
git status | |
# - name: Build virtualenv | |
# if: steps.docs-cache.outputs.cache-hit != 'true' | |
# run: python -m venv venv-stable | |
# | |
# - name: Install deps | |
# if: steps.docs-cache.outputs.cache-hit != 'true' | |
# run: | | |
# venv-stable/bin/activate | |
# [ -f requirements/CI-docs/requirements.txt ] && pip install -r requirements/CI-docs/requirements.txt | |
# [ -f requirements/development.txt ] && pip install -r requirements/development.txt | |
- name: Build C module | |
if: steps.docs-cache.outputs.cache-hit != 'true' | |
run: venv-latest/bin/activate && make | |
- name: Build Stable Docs | |
if: steps.docs-cache.outputs.cache-hit != 'true' | |
run: | | |
rm -rf docs/_build | |
venv-latest/bin/activate | |
cd docs | |
make dist | |
# make dist changes the _conf.yml file to write the version number, so drop the change | |
git checkout . | |
- name: Copy docs | |
if: steps.docs-cache.outputs.cache-hit != 'true' | |
run: | |
cp -r docs/_build/html dist/stable | |
- name: Upload msprime docs | |
uses: actions/[email protected] | |
with: | |
name: msprime-docs | |
path: dist/* | |
build-tsinfer-docs: | |
name: Build tsinfer docs | |
needs: cancel-superseded | |
runs-on: ubuntu-24.04 | |
steps: | |
- uses: actions/[email protected] | |
name: Checkout tsinfer | |
with: | |
ref: main | |
repository: tskit-dev/tsinfer | |
submodules: true | |
fetch-depth: 0 # Needed for setuptools_scm to work correctly | |
- name: Get commit SHA1 for cache | |
run: git rev-parse HEAD > SHA1 | |
- uses: actions/[email protected] | |
id: docs-cache | |
name: Docs cache | |
with: | |
path: dist | |
key: tsinfer-docs-v1-${{ hashFiles('SHA1') }} | |
- uses: actions/[email protected] | |
if: steps.docs-cache.outputs.cache-hit != 'true' | |
name: Setup Python | |
with: | |
python-version: "3.10" | |
- name: Build virtualenv | |
if: steps.docs-cache.outputs.cache-hit != 'true' | |
run: python -m venv venv-latest | |
- name: Install deps | |
if: steps.docs-cache.outputs.cache-hit != 'true' | |
run: | | |
venv-latest/bin/activate && pip install -r requirements/CI-docs/requirements.txt | |
sudo apt-get install tabix | |
- name: Build C module | |
if: steps.docs-cache.outputs.cache-hit != 'true' | |
run: venv-latest/bin/activate && make | |
- name: Build Latest Docs | |
if: steps.docs-cache.outputs.cache-hit != 'true' | |
run: | | |
venv-latest/bin/activate | |
cd docs | |
make dist | |
# make dist changes the _conf.yml file to write the version number, so drop the change | |
git checkout . | |
- name: Copy docs | |
if: steps.docs-cache.outputs.cache-hit != 'true' | |
run: | | |
mkdir -p dist | |
cp -r docs/_build/html dist/latest | |
- name: Checkout latest stable tag | |
if: steps.docs-cache.outputs.cache-hit != 'true' | |
run: | | |
git fetch --tags --recurse-submodules=no | |
git checkout `git tag --list --sort=creatordate | grep -vi "[baC]" | tail -n1` | |
git submodule update --init --recursive | |
git status | |
- uses: actions/[email protected] | |
if: steps.docs-cache.outputs.cache-hit != 'true' | |
name: Setup Python | |
with: | |
python-version: "3.10" | |
- name: Build virtualenv | |
if: steps.docs-cache.outputs.cache-hit != 'true' | |
run: python -m venv venv-stable | |
- name: Install deps | |
if: steps.docs-cache.outputs.cache-hit != 'true' | |
run: | | |
venv-stable/bin/activate | |
[ -f requirements/CI-docs/requirements.txt ] && pip install -r requirements/CI-docs/requirements.txt | |
- name: Build C module | |
if: steps.docs-cache.outputs.cache-hit != 'true' | |
run: | | |
venv-latest/bin/activate && make | |
- name: Build Stable Docs | |
if: steps.docs-cache.outputs.cache-hit != 'true' | |
run: | | |
rm -rf docs/_build | |
venv-latest/bin/activate | |
cd docs | |
make dist | |
# make dist changes the _conf.yml file to write the version number, so drop the change | |
git checkout . | |
- name: Copy docs | |
if: steps.docs-cache.outputs.cache-hit != 'true' | |
run: | |
cp -r docs/_build/html dist/stable | |
- name: Upload tsinfer docs | |
uses: actions/[email protected] | |
with: | |
name: tsinfer-docs | |
path: dist/* | |
build-tskit-docs: | |
name: Build tskit docs | |
needs: cancel-superseded | |
runs-on: ubuntu-24.04 | |
steps: | |
- uses: actions/[email protected] | |
name: Checkout tskit | |
with: | |
ref: main | |
repository: tskit-dev/tskit | |
submodules: true | |
fetch-depth: 0 # Needed for setuptools_scm to work correctly | |
- name: Get commit SHA1 for cache | |
run: git rev-parse HEAD > SHA1 | |
- uses: actions/[email protected] | |
id: docs-cache | |
name: Docs cache | |
with: | |
path: dist | |
key: tskit-docs-v7-${{ hashFiles('SHA1') }} | |
- uses: actions/[email protected] | |
if: steps.docs-cache.outputs.cache-hit != 'true' | |
name: Setup Python | |
with: | |
python-version: "3.10" | |
- name: Build virtualenv | |
if: steps.docs-cache.outputs.cache-hit != 'true' | |
run: python -m venv venv-latest | |
- name: Install deps | |
if: steps.docs-cache.outputs.cache-hit != 'true' | |
run: | | |
sudo apt-get install doxygen | |
venv-latest/bin/activate && pip install -r python/requirements/CI-docs/requirements.txt | |
- name: Build C module | |
if: steps.docs-cache.outputs.cache-hit != 'true' | |
run: venv-latest/bin/activate && make -C python | |
- name: Build Latest Docs | |
if: steps.docs-cache.outputs.cache-hit != 'true' | |
run: | | |
venv-latest/bin/activate | |
cd docs | |
make dist | |
- name: Copy docs | |
if: steps.docs-cache.outputs.cache-hit != 'true' | |
run: | | |
mkdir -p dist | |
cp -r docs/_build/html dist/latest | |
- name: Checkout latest stable tag | |
if: steps.docs-cache.outputs.cache-hit != 'true' | |
run: | | |
git stash | |
git fetch --tags --recurse-submodules=no | |
git checkout `git tag --list --sort=creatordate | grep -vi "[baC]" | tail -n1` | |
git submodule update --init --recursive | |
git status | |
- uses: actions/[email protected] | |
if: steps.docs-cache.outputs.cache-hit != 'true' | |
name: Setup Python | |
with: | |
python-version: "3.10" | |
- name: Build virtualenv | |
if: steps.docs-cache.outputs.cache-hit != 'true' | |
run: python -m venv venv-stable | |
- name: Downgrade pip (for conflicting dependencies) | |
if: steps.docs-cache.outputs.cache-hit != 'true' | |
run: venv-stable/bin/activate && pip install pip==20.0.2 | |
- name: Install deps | |
if: steps.docs-cache.outputs.cache-hit != 'true' | |
# Remove this second line after next release of tskit | |
run: | | |
venv-stable/bin/activate && pip install -r python/requirements/CI-docs/requirements.txt | |
venv-stable/bin/activate && pip install nbclient==0.5.13 | |
- name: Build C module | |
if: steps.docs-cache.outputs.cache-hit != 'true' | |
run: venv-stable/bin/activate && make -C python | |
- name: Build Stable Docs | |
if: steps.docs-cache.outputs.cache-hit != 'true' | |
run: | | |
rm -rf docs/_build | |
venv-stable/bin/activate | |
# Install jsonschema for bugfix | |
pip install jsonschema[format-nongpl]==4.17.3 | |
cd docs | |
# A sphinx-book-theme breaking change needs this | |
sed -i '/html_theme_options:/a\ \ \ \ \ \ \ \ navigation_with_keys: False' _config.yml | |
make dist || make | |
- name: Copy docs | |
if: steps.docs-cache.outputs.cache-hit != 'true' | |
run: | | |
cp -r docs/_build/html dist/stable | |
- name: Upload tskit docs | |
uses: actions/[email protected] | |
with: | |
name: tskit-docs | |
path: dist/* | |
build-pyslim-docs: | |
name: Build pyslim docs | |
needs: cancel-superseded | |
runs-on: ubuntu-24.04 | |
steps: | |
- uses: actions/[email protected] | |
name: Checkout pyslim | |
with: | |
ref: main | |
repository: tskit-dev/pyslim | |
submodules: true | |
fetch-depth: 0 # Needed for setuptools_scm to work correctly | |
- name: Get commit SHA1 for cache | |
run: git rev-parse HEAD > SHA1 | |
- uses: actions/[email protected] | |
id: docs-cache | |
name: Docs cache | |
with: | |
path: dist | |
key: pyslim-docs-v6-${{ hashFiles('SHA1') }} | |
- uses: actions/[email protected] | |
if: steps.docs-cache.outputs.cache-hit != 'true' | |
name: Setup Python | |
with: | |
python-version: "3.10" | |
- name: Build latest SLiM | |
if: steps.docs-cache.outputs.cache-hit != 'true' | |
run: | | |
git clone https://github.com/messerlab/SLiM.git | |
mkdir -p SLiM/Release | |
cd SLiM/Release | |
cmake -D CMAKE_BUILD_TYPE=Release .. | |
make -j 2 | |
- name: Build virtualenv | |
if: steps.docs-cache.outputs.cache-hit != 'true' | |
run: python -m venv venv-latest | |
- name: Install deps | |
if: steps.docs-cache.outputs.cache-hit != 'true' | |
run: | | |
venv-latest/bin/activate | |
pip install -r requirements/CI-docs/requirements.txt | |
- name: Build Latest Docs | |
if: steps.docs-cache.outputs.cache-hit != 'true' | |
run: | | |
venv-latest/bin/activate | |
export PATH=$PATH:$PWD/SLiM/Release | |
cd docs | |
# don't re-generate these which require tricky prerequisites (inkscape, xmlstarlet) | |
touch _static/{pedigree0.svg,pedigree1.svg,pedigree2.svg,pedigree_recapitate.svg,pedigree_simplify.svg,pedigree_mutate.svg} | |
touch _static/{pedigree01.png,pedigree0.png,pedigree1.png,pedigree2.png,pedigree_recapitate.png,pedigree_simplify.png,pedigree_mutate.png} | |
make dist | |
# make dist changes the _conf.yml file to write the version number, so drop the change | |
git checkout . | |
- name: Copy docs | |
if: steps.docs-cache.outputs.cache-hit != 'true' | |
run: | | |
mkdir -p dist | |
cp -r docs/_build/html dist/latest | |
- name: Build stable SLiM | |
if: steps.docs-cache.outputs.cache-hit != 'true' | |
run: | | |
mkdir -p SLiM/Stable | |
cd SLiM/Stable | |
git fetch --tags --recurse-submodules=no | |
git checkout `git tag --list --sort=creatordate | grep -vi "[baC]" | tail -n1` | |
git status | |
cmake -D CMAKE_BUILD_TYPE=Release .. | |
make -j 2 | |
- name: Checkout latest stable tag | |
if: steps.docs-cache.outputs.cache-hit != 'true' | |
run: | | |
git fetch --tags --recurse-submodules=no | |
git checkout `git tag --list --sort=creatordate | grep -vi "[baC]" | tail -n1` | |
git submodule update --init --recursive | |
git status | |
# As docs build has had issues with dependancies, just use venv-latest for now | |
# - name: Build virtualenv | |
# if: steps.docs-cache.outputs.cache-hit != 'true' | |
# run: python -m venv venv-stable | |
# | |
# - name: Install deps | |
# if: steps.docs-cache.outputs.cache-hit != 'true' | |
# run: | | |
# venv-stable/bin/activate | |
# pip install -r requirements/CI-docs/requirements.txt | |
- name: Build Stable Docs | |
if: steps.docs-cache.outputs.cache-hit != 'true' | |
run: | | |
rm -rf docs/_build | |
venv-latest/bin/activate | |
export PATH=$PWD/SLiM/Stable:$PATH | |
cd docs | |
# A sphinx-book-theme breaking change needs this | |
sed -i '/html_theme_options:/a\ \ \ \ \ navigation_with_keys: False' _config.yml | |
# don't re-generate these which require tricky prerequisites (inkscape, xmlstarlet) | |
touch _static/{pedigree0.svg,pedigree1.svg,pedigree2.svg,pedigree_recapitate.svg,pedigree_simplify.svg,pedigree_mutate.svg} | |
touch _static/{pedigree01.png,pedigree0.png,pedigree1.png,pedigree2.png,pedigree_recapitate.png,pedigree_simplify.png,pedigree_mutate.png} | |
make dist | |
# make dist changes the _conf.yml file to write the version number, so drop the change | |
git checkout . | |
- name: Copy docs | |
if: steps.docs-cache.outputs.cache-hit != 'true' | |
run: | |
cp -r docs/_build/html dist/stable | |
- name: Upload pyslim docs | |
uses: actions/[email protected] | |
with: | |
name: pyslim-docs | |
path: dist/* | |
build-tstrait-docs: | |
name: Build tstrait docs | |
needs: cancel-superseded | |
runs-on: ubuntu-24.04 | |
steps: | |
- uses: actions/[email protected] | |
name: Checkout tstrait | |
with: | |
ref: main | |
repository: tskit-dev/tstrait | |
- name: Get commit SHA1 for cache | |
run: git rev-parse HEAD > SHA1 | |
- uses: actions/[email protected] | |
id: docs-cache | |
name: Docs cache | |
with: | |
path: dist | |
key: tstrait-docs-v3-${{ hashFiles('SHA1') }} | |
- uses: actions/[email protected] | |
if: steps.docs-cache.outputs.cache-hit != 'true' | |
name: Setup Python | |
with: | |
python-version: "3.10" | |
- name: Build virtualenv | |
if: steps.docs-cache.outputs.cache-hit != 'true' | |
run: python -m venv venv-latest | |
- name: Install deps | |
if: steps.docs-cache.outputs.cache-hit != 'true' | |
run: | | |
venv-latest/bin/activate && pip install -r requirements/CI-docs/requirements.txt | |
- name: Build Latest Docs | |
if: steps.docs-cache.outputs.cache-hit != 'true' | |
run: | | |
venv-latest/bin/activate | |
cd docs | |
make dist | |
# make dist changes the _conf.yml file to write the version number, so drop the change | |
git checkout . | |
- name: Copy docs | |
if: steps.docs-cache.outputs.cache-hit != 'true' | |
run: | | |
mkdir -p dist | |
cp -r docs/_build/html dist/latest | |
- name: Checkout latest stable tag | |
if: steps.docs-cache.outputs.cache-hit != 'true' | |
run: | | |
git fetch --tags --recurse-submodules=no | |
git checkout `git tag --list --sort=creatordate | grep -vi "[baC]" | tail -n1` | |
git status | |
- name: Build Stable Docs | |
if: steps.docs-cache.outputs.cache-hit != 'true' | |
run: | | |
rm -rf docs/_build | |
venv-latest/bin/activate | |
cd docs | |
make dist | |
# make dist changes the _conf.yml file to write the version number, so drop the change | |
git checkout . | |
- name: Copy docs | |
if: steps.docs-cache.outputs.cache-hit != 'true' | |
run: | |
cp -r docs/_build/html dist/stable | |
- name: Upload tstrait docs | |
uses: actions/[email protected] | |
with: | |
name: tstrait-docs | |
path: dist/* | |
build-tscompare-docs: | |
name: Build tscompare docs | |
needs: cancel-superseded | |
runs-on: ubuntu-24.04 | |
steps: | |
- uses: actions/[email protected] | |
name: Checkout tscompare | |
with: | |
ref: main | |
repository: tskit-dev/tscompare | |
- name: Get commit SHA1 for cache | |
run: git rev-parse HEAD > SHA1 | |
- uses: actions/[email protected] | |
id: docs-cache | |
name: Docs cache | |
with: | |
path: dist | |
key: tscompare-docs-v3-${{ hashFiles('SHA1') }} | |
- uses: actions/[email protected] | |
if: steps.docs-cache.outputs.cache-hit != 'true' | |
name: Setup Python | |
with: | |
python-version: "3.10" | |
- name: Build virtualenv | |
if: steps.docs-cache.outputs.cache-hit != 'true' | |
run: python -m venv venv-latest | |
- name: Install deps | |
if: steps.docs-cache.outputs.cache-hit != 'true' | |
run: | | |
venv-latest/bin/activate && pip install -r requirements/CI-docs-pip/requirements.txt | |
- name: Build Latest Docs | |
if: steps.docs-cache.outputs.cache-hit != 'true' | |
run: | | |
venv-latest/bin/activate | |
cd docs | |
make dist | |
# make dist changes the _conf.yml file to write the version number, so drop the change | |
git checkout . | |
- name: Copy docs | |
if: steps.docs-cache.outputs.cache-hit != 'true' | |
run: | | |
mkdir -p dist | |
cp -r docs/_build/html dist/latest | |
- name: Checkout latest stable tag | |
if: steps.docs-cache.outputs.cache-hit != 'true' | |
run: | | |
git fetch --tags --recurse-submodules=no | |
git checkout `git tag --list --sort=creatordate | grep -vi "[baC]" | tail -n1` | |
git status | |
- name: Build Stable Docs | |
if: steps.docs-cache.outputs.cache-hit != 'true' | |
run: | | |
rm -rf docs/_build | |
venv-latest/bin/activate | |
cd docs | |
make dist | |
# make dist changes the _conf.yml file to write the version number, so drop the change | |
git checkout . | |
- name: Copy docs | |
if: steps.docs-cache.outputs.cache-hit != 'true' | |
run: | |
cp -r docs/_build/html dist/stable | |
- name: Upload tscompare docs | |
uses: actions/[email protected] | |
with: | |
name: tscompare-docs | |
path: dist/* | |
build-tsdate-docs: | |
name: Build tsdate docs | |
needs: cancel-superseded | |
runs-on: ubuntu-24.04 | |
steps: | |
- uses: actions/[email protected] | |
name: Checkout tsdate | |
with: | |
ref: main | |
repository: tskit-dev/tsdate | |
- name: Get commit SHA1 for cache | |
run: git rev-parse HEAD > SHA1 | |
- uses: actions/[email protected] | |
id: docs-cache | |
name: Docs cache | |
with: | |
path: dist | |
key: tsdate-docs-v2-${{ hashFiles('SHA1') }} | |
- uses: actions/[email protected] | |
if: steps.docs-cache.outputs.cache-hit != 'true' | |
name: Setup Python | |
with: | |
python-version: "3.10" | |
- name: Build virtualenv | |
if: steps.docs-cache.outputs.cache-hit != 'true' | |
run: python -m venv venv-latest | |
- name: Install deps | |
if: steps.docs-cache.outputs.cache-hit != 'true' | |
run: | | |
venv-latest/bin/activate && pip install -r docs/requirements.txt | |
- name: Build Latest Docs | |
if: steps.docs-cache.outputs.cache-hit != 'true' | |
run: | | |
venv-latest/bin/activate | |
cd docs | |
make dist | |
# make dist changes the _conf.yml file to write the version number, so drop the change | |
git checkout . | |
- name: Copy docs | |
if: steps.docs-cache.outputs.cache-hit != 'true' | |
run: | | |
mkdir -p dist | |
cp -r docs/_build/html dist/latest | |
- name: Checkout latest stable tag | |
if: steps.docs-cache.outputs.cache-hit != 'true' | |
run: | | |
git fetch --tags --recurse-submodules=no | |
git checkout `git tag --list --sort=creatordate | grep -vi "[baC]" | tail -n1` | |
git status | |
- name: Build Stable Docs | |
if: steps.docs-cache.outputs.cache-hit != 'true' | |
run: | | |
rm -rf docs/_build | |
venv-latest/bin/activate | |
python -m pip install "numpy<2" | |
cd docs | |
make dist | |
# make dist changes the _conf.yml file to write the version number, so drop the change | |
git checkout . | |
- name: Copy docs | |
if: steps.docs-cache.outputs.cache-hit != 'true' | |
run: | |
cp -r docs/_build/html dist/stable | |
- name: Upload tsdate docs | |
uses: actions/[email protected] | |
with: | |
name: tsdate-docs | |
path: dist/* | |
build-tszip-docs: | |
name: Build tszip docs | |
needs: cancel-superseded | |
runs-on: ubuntu-24.04 | |
steps: | |
- uses: actions/[email protected] | |
name: Checkout tszip | |
with: | |
ref: main | |
repository: tskit-dev/tszip | |
- name: Get commit SHA1 for cache | |
run: git rev-parse HEAD > SHA1 | |
- uses: actions/[email protected] | |
id: docs-cache | |
name: Docs cache | |
with: | |
path: dist | |
key: tszip-docs-v2-${{ hashFiles('SHA1') }} | |
- uses: actions/[email protected] | |
if: steps.docs-cache.outputs.cache-hit != 'true' | |
name: Setup Python | |
with: | |
python-version: "3.10" | |
- name: Build virtualenv | |
if: steps.docs-cache.outputs.cache-hit != 'true' | |
run: python -m venv venv-latest | |
- name: Install deps | |
if: steps.docs-cache.outputs.cache-hit != 'true' | |
run: | | |
venv-latest/bin/activate && pip install -r requirements/CI-docs.txt | |
- name: Build Latest Docs | |
if: steps.docs-cache.outputs.cache-hit != 'true' | |
run: | | |
venv-latest/bin/activate | |
cd docs | |
make dist | |
# make dist changes the _conf.yml file to write the version number, so drop the change | |
git checkout . | |
- name: Copy docs | |
if: steps.docs-cache.outputs.cache-hit != 'true' | |
run: | | |
mkdir -p dist | |
cp -r docs/_build/html dist/latest | |
# Disabled until next tszip release - also reinstate redirect on line 917 | |
# - name: Checkout latest stable tag | |
# if: steps.docs-cache.outputs.cache-hit != 'true' | |
# run: | | |
# git fetch --tags --recurse-submodules=no | |
# git checkout `git tag --list --sort=creatordate | grep -vi "[baC]" | tail -n1` | |
# git status | |
# | |
# - name: Build Stable Docs | |
# if: steps.docs-cache.outputs.cache-hit != 'true' | |
# run: | | |
# rm -rf docs/_build | |
# venv-latest/bin/activate | |
# cd docs | |
# make dist | |
# # make dist changes the _conf.yml file to write the version number, so drop the change | |
# git checkout . | |
# | |
# - name: Copy docs | |
# if: steps.docs-cache.outputs.cache-hit != 'true' | |
# run: | |
# cp -r docs/_build/html dist/stable | |
- name: Upload tszip docs | |
uses: actions/[email protected] | |
with: | |
name: tszip-docs | |
path: dist/* | |
build-tsbrowse-docs: | |
name: Build tsbrowse docs | |
needs: cancel-superseded | |
runs-on: ubuntu-24.04 | |
steps: | |
- uses: actions/[email protected] | |
name: Checkout tsbrowse | |
with: | |
ref: main | |
repository: tskit-dev/tsbrowse | |
- name: Get commit SHA1 for cache | |
run: git rev-parse HEAD > SHA1 | |
- uses: actions/[email protected] | |
id: docs-cache | |
name: Docs cache | |
with: | |
path: dist | |
key: tsbrowse-docs-v3-${{ hashFiles('SHA1') }} | |
- uses: actions/[email protected] | |
if: steps.docs-cache.outputs.cache-hit != 'true' | |
name: Setup Python | |
with: | |
python-version: "3.11" | |
- name: Build virtualenv | |
if: steps.docs-cache.outputs.cache-hit != 'true' | |
run: python -m venv venv-latest | |
- name: Install deps | |
if: steps.docs-cache.outputs.cache-hit != 'true' | |
run: | | |
venv-latest/bin/activate && pip install -r requirements.txt && playwright install | |
- name: Build Latest Docs | |
if: steps.docs-cache.outputs.cache-hit != 'true' | |
run: | | |
venv-latest/bin/activate | |
cd docs | |
make dist | |
# make dist changes the _conf.yml file to write the version number, so drop the change | |
git checkout . | |
- name: Copy docs | |
if: steps.docs-cache.outputs.cache-hit != 'true' | |
run: | | |
mkdir -p dist | |
cp -r docs/_build/html dist/latest | |
- name: Checkout latest stable tag | |
if: steps.docs-cache.outputs.cache-hit != 'true' | |
run: | | |
git fetch --tags --recurse-submodules=no | |
git checkout `git tag --list --sort=creatordate | grep -vi "[baC]" | tail -n1` | |
git status | |
- name: Build Stable Docs | |
if: steps.docs-cache.outputs.cache-hit != 'true' | |
run: | | |
rm -rf docs/_build | |
venv-latest/bin/activate | |
cd docs | |
make dist | |
# make dist changes the _conf.yml file to write the version number, so drop the change | |
git checkout . | |
- name: Copy docs | |
if: steps.docs-cache.outputs.cache-hit != 'true' | |
run: | |
cp -r docs/_build/html dist/stable | |
- name: Upload tsbrowse docs | |
uses: actions/[email protected] | |
with: | |
name: tsbrowse-docs | |
path: dist/* | |
import-tutorials: | |
name: Import tutorials | |
needs: cancel-superseded | |
runs-on: ubuntu-24.04 | |
steps: | |
- uses: actions/[email protected] | |
name: Checkout tutorials | |
with: | |
ref: gh-pages | |
repository: tskit-dev/tutorials | |
- name: Upload tutorials | |
uses: actions/[email protected] | |
with: | |
name: tutorials | |
path: . | |
import-rust-tutorial: | |
name: Import rust tutorials | |
needs: cancel-superseded | |
runs-on: ubuntu-24.04 | |
steps: | |
- uses: actions/[email protected] | |
name: Checkout tutorials | |
with: | |
ref: gh-pages | |
repository: tskit-dev/tskit-rust | |
- name: Upload tutorials | |
uses: actions/[email protected] | |
with: | |
name: rust-tutorials | |
path: . | |
deploy: | |
name: Deploy 🚀 (if on main branch) | |
needs: | |
- build-core-site | |
- build-msprime-docs | |
- build-tsinfer-docs | |
- build-tskit-docs | |
- build-pyslim-docs | |
- build-tsdate-docs | |
- build-tszip-docs | |
- build-tstrait-docs | |
- build-tscompare-docs | |
- build-tsbrowse-docs | |
- import-tutorials | |
- import-rust-tutorial | |
runs-on: ubuntu-24.04 | |
steps: | |
- name: Checkout | |
uses: actions/[email protected] | |
- name: Download core site | |
uses: actions/[email protected] | |
with: | |
name: core-site | |
path: site | |
- name: Download msprime-docs | |
uses: actions/[email protected] | |
with: | |
name: msprime-docs | |
path: site/msprime/docs | |
- name: Download tsinfer-docs | |
uses: actions/[email protected] | |
with: | |
name: tsinfer-docs | |
path: site/tsinfer/docs | |
- name: Download tskit-docs | |
uses: actions/[email protected] | |
with: | |
name: tskit-docs | |
path: site/tskit/docs | |
- name: Download tstrait-docs | |
uses: actions/[email protected] | |
with: | |
name: tstrait-docs | |
path: site/tstrait/docs | |
- name: Download tscompare-docs | |
uses: actions/[email protected] | |
with: | |
name: tscompare-docs | |
path: site/tscompare/docs | |
- name: Download tsbrowse-docs | |
uses: actions/[email protected] | |
with: | |
name: tsbrowse-docs | |
path: site/tsbrowse/docs | |
- name: Download pyslim-docs | |
uses: actions/[email protected] | |
with: | |
name: pyslim-docs | |
path: site/pyslim/docs | |
- name: Download tsdate-docs | |
uses: actions/[email protected] | |
with: | |
name: tsdate-docs | |
path: site/tsdate/docs | |
- name: Download tszip-docs | |
uses: actions/[email protected] | |
with: | |
name: tszip-docs | |
path: site/tszip/docs | |
- name: Download tutorials | |
uses: actions/[email protected] | |
with: | |
name: tutorials | |
path: site/tutorials | |
- name: Download rust tutorial | |
uses: actions/[email protected] | |
with: | |
name: rust-tutorials | |
path: site/tutorials/rust | |
- name: Pages config and tweaks | |
run: | | |
touch site/.nojekyll | |
echo "tskit.dev" > site/CNAME | |
echo "<meta http-equiv=\"Refresh\" content=\"0; url=/msprime/docs/stable\" />" > site/msprime/docs/index.html | |
echo "<meta http-equiv=\"Refresh\" content=\"0; url=/tsinfer/docs/stable\" />" > site/tsinfer/docs/index.html | |
echo "<meta http-equiv=\"Refresh\" content=\"0; url=/tskit/docs/stable\" />" > site/tskit/docs/index.html | |
echo "<meta http-equiv=\"Refresh\" content=\"0; url=/pyslim/docs/stable\" />" > site/pyslim/docs/index.html | |
echo "<meta http-equiv=\"Refresh\" content=\"0; url=/tstrait/docs/stable\" />" > site/tstrait/docs/index.html | |
echo "<meta http-equiv=\"Refresh\" content=\"0; url=/tscompare/docs/stable\" />" > site/tscompare/docs/index.html | |
echo "<meta http-equiv=\"Refresh\" content=\"0; url=/tsbrowse/docs/stable\" />" > site/tsbrowse/docs/index.html | |
echo "<meta http-equiv=\"Refresh\" content=\"0; url=/tsdate/docs/stable\" />" > site/tsdate/docs/index.html | |
echo "<meta http-equiv=\"Refresh\" content=\"0; url=/tszip/docs/latest\" />" > site/tszip/docs/index.html | |
- name: List site contents | |
run: | | |
ls -R | |
- name: Upload site (for PR inspection) | |
uses: actions/[email protected] | |
with: | |
name: site | |
path: . | |
- name: Deploy | |
if: github.ref == 'refs/heads/main' | |
uses: JamesIves/[email protected] | |
with: | |
token: ${{ secrets.ADMINBOT_TOKEN }} | |
branch: gh-pages | |
folder: site | |
single-commit: true |