Skip to content

documentation

documentation #192

Workflow file for this run

name: documentation
on:
# Triggers the workflow on push but only for the main branch
push:
branches: [ main ]
tags: [ v* ]
paths:
- src/sed/**/*
- tutorial/**
- .github/workflows/documentation.yml
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
env:
UV_SYSTEM_PYTHON: true
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Maximize build space
uses: easimon/maximize-build-space@master
with:
root-reserve-mb: 2048
swap-size-mb: 1024
remove-dotnet: 'true'
remove-codeql: 'true'
remove-android: 'true'
remove-docker-images: 'true'
# Check out repo and set up Python
- uses: actions/checkout@v4
with:
fetch-depth: 0
# Setup python
- name: Set up Python 3.10
uses: actions/setup-python@v5
with:
python-version: "3.10"
- name: Install dependencies
run: |
curl -LsSf https://astral.sh/uv/install.sh | sh
- name: Install package
run: |
uv pip install ".[docs,notebook]"
- name: Install pandoc
run: |
sudo wget https://github.com/jgm/pandoc/releases/download/3.1.8/pandoc-3.1.8-1-amd64.deb
sudo dpkg -i pandoc-3.1.8-1-amd64.deb
- name: copy tutorial files to docs
run: |
cp -r $GITHUB_WORKSPACE/tutorial $GITHUB_WORKSPACE/docs/
mkdir -p $GITHUB_WORKSPACE/docs/src/sed
cp -r $GITHUB_WORKSPACE/src/sed/config $GITHUB_WORKSPACE/docs/src/sed/
- name: download RAW data
# if: steps.cache-primes.outputs.cache-hit != 'true'
run: |
cd $GITHUB_WORKSPACE/docs
python scripts/download_data.py
- name: build parquet files
run: |
cd $GITHUB_WORKSPACE/docs
python scripts/build_flash_parquets.py
python scripts/build_sxp_parquets.py
- name: build Sphinx docs
run: sphinx-build -b html $GITHUB_WORKSPACE/docs $GITHUB_WORKSPACE/_build
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: sphinx-docs
path: _build
# this job pushes the built documentation to the docs repository
push:
runs-on: ubuntu-latest
needs: build
steps:
- name: Checkout docs repo
uses: actions/checkout@v4
with:
repository: ${{ github.repository_owner }}/docs
token: ${{ secrets.GITHUB_TOKEN }}
path: 'docs-repo'
- name: Setup SSH
uses: webfactory/[email protected]
with:
ssh-private-key: ${{ secrets.SSH_DOCS_DEPLOY_KEY }}
- name: Download artifact
uses: actions/download-artifact@v4
with:
name: sphinx-docs
path: sphinx-docs
- name: Determine version folder
id: version-folder
run: |
if [[ $GITHUB_REF == refs/tags/* ]]; then
VERSION=${GITHUB_REF#refs/tags/}
echo "folder=sed/$VERSION" >> $GITHUB_OUTPUT
rm docs-repo/sed/stable
ln -s -r docs-repo/sed/$VERSION docs-repo/sed/stable
elif [[ $GITHUB_REF == refs/heads/main ]]; then
echo "folder=sed/latest" >> $GITHUB_OUTPUT
else
echo "folder=sed/develop" >> $GITHUB_OUTPUT
fi
- name: Update switcher.json
run: |
VERSION=`grep "<title>SED documentation." sphinx-docs/index.html | sed -n 's/.*SED \(.*\) documentation.*/\1/p'`
echo "python docs-repo/sed/update_switcher.py docs-repo/sed/switcher.json $GITHUB_REF $VERSION"
python docs-repo/sed/update_switcher.py docs-repo/sed/switcher.json $GITHUB_REF $VERSION
- name: Copy documentation to the right version folder
run: |
mkdir -p docs-repo/${{ steps.version-folder.outputs.folder }}
cp -r sphinx-docs/* docs-repo/${{ steps.version-folder.outputs.folder }}
rm -rf docs-repo/${{ steps.version-folder.outputs.folder }}/.doctrees
rm -rf docs-repo/${{ steps.version-folder.outputs.folder }}/tutorial/*.ipynb
- name: Push changes
run: |
cd docs-repo
git config user.name github-actions
git config user.email [email protected]
git add .
git commit -m "Update documentation"
git push