Build jupyter-book in repo2docker container and publish it #159
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 jupyter-book in repo2docker container and publish it | |
on: | |
push: | |
pull_request: | |
schedule: | |
- cron: '00 4 * * *' # daily at 4AM | |
jobs: | |
build: | |
# Pull requests are a duplicate of a branch push if they are from within the same repo. Skip these. | |
if: github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name != github.repository | |
runs-on: ubuntu-latest | |
defaults: | |
run: | |
shell: bash -l {0} | |
steps: | |
- name: Checkout files in repo | |
uses: actions/checkout@v3 | |
- name: Set up Python 3.x. | |
uses: actions/setup-python@v4 | |
with: | |
python-version: '3.x' | |
- name: Cache multiple paths | |
uses: actions/cache@v2 | |
with: | |
path: | | |
# This cache contains the notebook outputs | |
# See https://jupyterbook.org/content/execute.html#caching-the-notebook-execution | |
_build/.jupyter_cache | |
key: ${{ runner.os }}-jupyter_cache | |
- name: Install jupyter-repo2docker | |
run: | | |
set -vxeuo pipefail | |
python -m pip install -r binder/requirements-dev.txt | |
- name: Execute notebooks with Jupyter Book | |
run: | | |
set -vxeuo pipefail | |
# Use an editable installation so the _build/.jupyter_cache is | |
# mounted in the container and so that the build artifacts persist | |
# to the next step. | |
jupyter-repo2docker --editable . /bin/bash -c "jupyter-book build -W ." | |
- name: Deploy built book to blueskyproject.io | |
if: github.repository_owner == 'bluesky' && github.ref_name == 'main' | |
# We pin to the SHA, not the tag, for security reasons. | |
# https://docs.github.com/en/free-pro-team@latest/actions/learn-github-actions/security-hardening-for-github-actions#using-third-party-actions | |
uses: peaceiris/actions-gh-pages@64b46b4226a4a12da2239ba3ea5aa73e3163c75b # v3.9.1 | |
with: | |
deploy_key: ${{ secrets.ACTIONS_DOCUMENTATION_DEPLOY_KEY }} | |
publish_branch: master | |
publish_dir: ./_build/html/ | |
external_repository: bluesky/bluesky.github.io | |
destination_dir: tutorials | |
force_orphan: false # Keep git history. |