Migrated first set of notebooks to this repository #17
Workflow file for this run
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 documentation | |
on: | |
push: | |
branches: | |
- master | |
tags: | |
- '**' | |
pull_request: | |
branches: | |
- master | |
jobs: | |
docs: | |
runs-on: ubuntu-22.04 | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Set up Python 3.11 | |
uses: actions/setup-python@v4 | |
with: | |
python-version: "3.11" | |
- name: Install jupedsim | |
run: | | |
python3 -m pip install . | |
- name: Build docs | |
run: | | |
cp -R notebooks/* docs/source/notebooks | |
ls -lah docs/source/notebooks | |
python3 -m pip install -r docs/requirements.txt | |
sphinx-build -vvv docs/source docs/build | |
- name: Determine directory to publish docs to | |
id: docs-publish-dir | |
uses: jannekem/run-python-script-action@v1 | |
with: | |
script: | | |
import os, re | |
github_ref = os.environ.get('GITHUB_REF') | |
m = re.match(r'^refs/tags/v([0-9]+\.[0-9]+\.[0-9]+(-dev\.[0-9]+)?)$', | |
github_ref) | |
if m: | |
target = "${{ github.ref_name }}" | |
else: | |
target = '' | |
set_output('target', target) | |
- name: Publish docs to GitHub pages | |
if: steps.docs-publish-dir.outputs.target != '' | |
uses: peaceiris/actions-gh-pages@v3 | |
with: | |
github_token: ${{ secrets.GITHUB_TOKEN }} | |
publish_dir: docs/build | |
destination_dir: ${{ steps.docs-publish-dir.outputs.target }} | |
keep_files: false | |
- name: Upload documentation as artifacts | |
uses: actions/upload-artifact@v3 | |
with: | |
name: pages | |
path: | | |
docs/build/ | |
outputs: | |
docs-target: ${{ steps.docs-publish-dir.outputs.target }} | |
docs-versions: | |
name: Update docs versions JSON | |
needs: docs | |
if: needs.docs.outputs.docs-target != '' | |
runs-on: ubuntu-22.04 | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
ref: gh-pages | |
- name: Write versions to JSON file | |
uses: jannekem/run-python-script-action@v1 | |
with: | |
script: | | |
import json | |
from pathlib import Path | |
from packaging.version import Version | |
prefix = "https://www.jupedsim.org/" | |
cwd = Path.cwd() | |
versions = [item.name[1:] for item in cwd.iterdir() if item.is_dir() and not item.name.startswith('.') and item.name.startswith("v")] | |
versions.sort(key=Version, reverse=True) | |
versions = ["v" + v for v in versions] | |
versions.insert(0, "stable") | |
versions_url = [dict(name=version, version=version, url= prefix + version) | |
for version in versions] | |
target_file = Path('versions.json') | |
with target_file.open('w') as f: | |
json.dump(versions_url, f) | |
- name: Redirect stable to new release | |
run: | | |
rm -rf stable | |
ln -s ${{needs.docs.outputs.docs-target}} stable | |
- name: Update files in gh-pages branch | |
uses: stefanzweifel/git-auto-commit-action@v4 | |
with: | |
branch: gh-pages | |
commit_message: Update versions and stable |