Skip to content

Version 1.0.0a10

Version 1.0.0a10 #317

Workflow file for this run

# This action generates the documentation and then deploys it to the `gh-pages` branch.
name: Documentation & Coverage
on:
push:
jobs:
deploy:
runs-on: ubuntu-latest
container:
image: ghcr.io/tttapa/alpaqa-docs:py3.10
options: --user root
env:
CMAKE_C_COMPILER_LAUNCHER: ccache
CMAKE_CXX_COMPILER_LAUNCHER: ccache
CCACHE_DIR: /root/.ccache
steps:
# Checks-out the repository under $GITHUB_WORKSPACE
- uses: actions/checkout@v3
- run: git config --global --add safe.directory $GITHUB_WORKSPACE
# Create a copy of the repo in /tmp/staging.
# Create the `gh-pages` branch if it doesn't exist already, check it out.
- name: Create staging area
run: |
rm -rf /tmp/staging
cp -ar $GITHUB_WORKSPACE/ /tmp/staging
git config --global --add safe.directory /tmp/staging
cd /tmp/staging
git fetch origin gh-pages:gh-pages ||:
git checkout gh-pages || \
{ git checkout --orphan gh-pages && git rm -rf . && git clean -fxd ; }
echo -e 'bib*.aux\ncitelist.doc*' > .gitignore
# Use ccache to cache compilation
- name: Prepare ccache directory
run: mkdir -p "${{ env.CCACHE_DIR }}"
- name: Cache ccache
uses: actions/cache@v3
with:
path: ${{ env.CCACHE_DIR }}
key: ${{ runner.os }}-ccache-${{ github.run_id }}
restore-keys: ${{ runner.os }}-ccache
# Install Python dependencies for generating docs and tests
- name: Install Python package and dependencies
run: |
python3 -m pip install -r doxygen/requirements.txt
python3 -m pip install --verbose '.[docs]'
python3 -m pip install cmake
shell: bash
# Generate the documentation and save it in /tmp/staging
- name: Generate documentation
run: |
./doxygen/scripts/gen-docs.sh /tmp/staging
./doxygen/scripts/gen-docs-index.sh /tmp/staging md
# Commit the new documentation, squash the commits, and push it to GitHub
- name: Commit and push documention
run: |
git config --global user.name "github-actions"
git config --global user.email "[email protected]"
commithash=$(git rev-parse HEAD)
cd /tmp/staging
git add .
git commit -m "Documentation for ${commithash}" && \
git reset $(git commit-tree HEAD^{tree} -m "Documentation for ${commithash}") && \
git push -f origin gh-pages ||: