Skip to content

Ia/docs deploy ci

Ia/docs deploy ci #17

Workflow file for this run

name: Build and Deploy Docs
on:
push:
branches:
- main
pull_request:
branches:
- main
jobs:
build_docs:
name: Build and Deploy Documentation
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 0 # to ensure other branches are available for build
- name: Install system dependencies
run: sudo apt-get install -y libhdf5-dev
- name: Set r compilation options
run: bash -c 'echo -e "MAKEFLAGS=--jobs=3\nCXXFLAGS += -O1 -UNDEBUG" > "$GITHUB_WORKSPACE/Makevars.user" && echo "R_MAKEVARS_USER=$GITHUB_WORKSPACE/Makevars.user" >> "$GITHUB_ENV"'
- name: Setup R
uses: r-lib/actions/setup-r@v2
- name: Install R dependencies
uses: r-lib/actions/setup-r-dependencies@v2
with:
cache-version: 1
working-directory: 'r'
extra-packages: |
any::pkgdown
any::devtools
- name: Get last commit message
id: last_commit
run: |
LAST_COMMIT_MESSAGE=$(git log -n 1 --pretty=%B | tr -d '\n' | tr -d '\r')
echo "LAST_COMMIT_MESSAGE=$LAST_COMMIT_MESSAGE" >> "$GITHUB_ENV"
- name: Create git worktree with docs branch
run: git worktree add r/docs docs-html
- name: Build documentation
run: |
Rscript .github/workflows/deploy-reference.R
- name: Configure Git
run: |
git config --global user.name "${{ github.actor }}"
git config --global user.email "${{ github.actor }}@users.noreply.github.com"
- name: Create new branch
run: |
git checkout -b update-docs-$(git rev-parse --short=6 ${{ github.sha }})
git add .
git commit -m "Update documentation for commit $(git rev-parse --short=6 ${{ github.sha }})"
working-directory: r/docs
- name: Push changes to new branch
run: git push origin update-docs-$(git rev-parse --short=6 ${{ github.sha }})
- name: Create Pull Request # use message with last commit
run: |
gh pr create --title "Update docs for commit" --body "${{steps.last_commit.outputs.LAST_COMMIT_MESSAGE}}" --base docs-html --head update-docs-$(git rev-parse --short=6 ${{ github.sha }})
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}