Skip to content

Enhance Doc Workflow #3

Enhance Doc Workflow

Enhance Doc Workflow #3

name: Check and render LaTeX doc into pdf
on:
push:
branches:
- master
paths:
- doc/**
- .github/workflows/update-doc-pdf.yml
pull_request:
branches:
- master
paths:
- doc/**
- .github/workflows/update-doc-pdf.yml
workflow_dispatch:
jobs:
check-parameters:
runs-on: ubuntu-latest
defaults:
run:
shell: bash -l {0}
steps:
- uses: actions/checkout@v4
- uses: conda-incubator/setup-miniconda@v3
with:
python-version: "3.11"
activate-environment: sparc-test
conda-build-version: "24.9.0"
miniforge-version: latest # Fix according to https://github.com/conda-incubator/setup-miniconda?tab=readme-ov-file#example-10-miniforge
channels: conda-forge,defaults
channel-priority: true
- name: Install SPARC-X-API stable version for docparser
run: |
mamba install -c conda-forge pip setuptools
pip install git+https://github.com/SPARC-X/[email protected]
- name: Convert parameters.json
run: |
python -m sparc.docparser --include-subdirs doc/.LaTeX
- name: Check missing parameters in test examples
run: |
# Usage:
# python test-missing-parameters.py <test-dir> <parameters.json>
# If test fails, a list of missing / typo params will
# be written in output
python .github/workflows/test-missing-parameters.py \
tests/ ./parameters.json
render-pdf-linux:
runs-on: ubuntu-latest
defaults:
run:
shell: bash -l {0}
needs: check-parameters
steps:
- uses: actions/checkout@v4
- uses: conda-incubator/setup-miniconda@v3
with:
python-version: "3.11"
activate-environment: sparc-test
conda-build-version: "24.9.0"
miniforge-version: latest # Fix according to https://github.com/conda-incubator/setup-miniconda?tab=readme-ov-file#example-10-miniforge
channels: conda-forge,defaults
channel-priority: true
- name: Install tectonic as latex rendering engine
run: |
mamba install -c conda-forge tectonic
- name: Make temp build dir
run: |
mkdir -p doc/_build
- name: Render main manual
run: |
tectonic -X compile doc/.LaTeX/Manual.tex \
--outdir doc/_build
ls -al doc/_build
- name: Render subdir manuals
run: |
for dir in doc/.LaTeX/*; do
if [ -d "$dir" ]; then
manual=$(find "$dir" -maxdepth 1 -name "*Manual.tex" | head -n 1)
if [ -n "$manual" ]; then
tectonic -X compile "$manual" \
--outdir doc/_build
echo "Rendered: $manual"
fi
fi
done
ls -al doc/_build