Skip to content

Commit

Permalink
Merge pull request #42 from kolibril13/main
Browse files Browse the repository at this point in the history
Jupyterbook on GitHub Pages directly from action
  • Loading branch information
agoose77 committed Nov 1, 2023
2 parents b099cd7 + 0e85c3f commit 942898f
Show file tree
Hide file tree
Showing 3 changed files with 120 additions and 93 deletions.
93 changes: 49 additions & 44 deletions .github/workflows/deploy.yml
Original file line number Diff line number Diff line change
@@ -1,52 +1,57 @@
name: deploy
name: deploy-book

on:
# Trigger the deploy on push to main branch
push:
branches:
- main
schedule:
# jupyter-book is updated regularly, let's run this deployment every month in case something fails
# <minute [0,59]> <hour [0,23]> <day of the month [1,31]> <month of the year [1,12]> <day of the week [0,6]>
# https://pubs.opengroup.org/onlinepubs/9699919799/utilities/crontab.html#tag_20_25_07
# https://crontab.guru/every-month
# Run cron job every month
- cron: '0 0 1 * *'

jobs:
# This job deploys the example book
deploy-example-book:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest]
python-version: [3.8]
env:
BASE_URL: /${{ github.event.repository.name }}

# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued.
# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete.
concurrency:
group: "pages"
cancel-in-progress: false

jobs:
deploy-book:
runs-on: ubuntu-latest
# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
permissions:
pages: write
id-token: write
steps:
- uses: actions/checkout@v2
# Install CC
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v1
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
run: |
pip install -r requirements.txt
# Use default CC
- name: Cookiecutter no GHA
run: |
cookiecutter . --no-input include_ci=no
# Install requirements.txt
- name: Install requirements
run: |
pip install -r my_book/requirements.txt
# Build the example book
- name: Build book
run: |
jupyter-book build my_book/my_book/
# Deploy html to gh-pages
- name: GitHub Pages action
uses: peaceiris/[email protected]
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: my_book/my_book/_build/html
publish_branch: gh-pages
- uses: actions/checkout@v3

# Install dependencies
- name: Set up Python 3.11
uses: actions/setup-python@v4
with:
python-version: 3.11

- name: Install dependencies
run: |
pip install -r requirements.txt
# Use default CC
- name: Cookiecutter no GHA
run: |
cookiecutter . --no-input include_ci=no
# Install requirements.txt
- name: Install requirements
run: |
pip install -r my_book/requirements.txt
# Build the example book
- name: Build book
run: |
jupyter-book build my_book/my_book/
# Upload the book's HTML as an artifact
- name: Upload artifact
uses: actions/upload-pages-artifact@v2
with:
path: "my_book/my_book/_build/html"
# Deploy the book's HTML to GitHub Pages
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v2
47 changes: 28 additions & 19 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,18 +16,19 @@ on:
jobs:
# This job tests that the CC works
test-cc-and-jb-build:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest] # currently not testing on windows
python-version: [3.9]
runs-on: ubuntu-latest
# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
permissions:
pages: write
id-token: write
steps:
- uses: actions/checkout@v2
# Setup
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v1
- uses: actions/checkout@v3

# Install dependencies
- name: Set up Python 3.11
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
python-version: 3.11
- name: Install dependencies
run: |
pip install -r requirements.txt
Expand All @@ -39,16 +40,24 @@ jobs:
- name: Pytest tests
run: |
pytest
# Build the example book
- name: Build default book
# Use default CC
- name: Cookiecutter no GHA
run: |
cookiecutter . --no-input --overwrite-if-exists include_ci=no
# Install requirements.txt
- name: Install requirements
run: |
cookiecutter . --no-input --overwrite-if-exists
pip install -r my_book/requirements.txt
# Build the example book
- name: Build book
run: |
jupyter-book build my_book/my_book/
# Push example book to gh-pages-test
- name: GitHub Pages action
uses: peaceiris/actions-gh-pages@v3.6.1
# Upload the book's HTML as an artifact
- name: Upload artifact
uses: actions/upload-pages-artifact@v2
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: my_book/my_book/_build/html
publish_branch: gh-pages-test
path: "my_book/my_book/_build/html"
# Deploy the book's HTML to GitHub Pages
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v2
73 changes: 43 additions & 30 deletions {{cookiecutter.book_slug}}/.github/workflows/deploy.yml
Original file line number Diff line number Diff line change
@@ -1,39 +1,52 @@
name: deploy
name: deploy-book

on:
# Trigger the workflow on push to main branch
push:
branches:
- main

# This job installs dependencies, build the book, and pushes it to `gh-pages`
env:
BASE_URL: {% raw %}/${{ github.event.repository.name }}{% endraw %}

# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued.
# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete.
concurrency:
group: "pages"
cancel-in-progress: false

jobs:
build-and-deploy-book:
runs-on: {% raw %}${{ matrix.os }}{% endraw %}
strategy:
matrix:
os: [ubuntu-latest]
python-version: [3.8]
deploy-book:
runs-on: ubuntu-latest
# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
permissions:
pages: write
id-token: write
steps:
- uses: actions/checkout@v2

# Install dependencies
- name: Set up Python {% raw %}${{ matrix.python-version }}{% endraw %}
uses: actions/setup-python@v1
with:
python-version: {% raw %}${{ matrix.python-version }}{% endraw %}
- name: Install dependencies
run: |
pip install -r requirements.txt
# Build the book
- name: Build the book
run: |
jupyter-book build {{ cookiecutter.book_slug }}
# Deploy the book's HTML to gh-pages branch
- name: GitHub Pages action
uses: peaceiris/[email protected]
with:
github_token: {% raw %}${{ secrets.GITHUB_TOKEN }}{% endraw %}
publish_dir: {{ cookiecutter.book_slug }}/_build/html
- uses: actions/checkout@v3

# Install dependencies
- name: Set up Python 3.11
uses: actions/setup-python@v4
with:
python-version: 3.11

- name: Install dependencies
run: |
pip install -r requirements.txt
# Build the book
- name: Build the book
run: |
jupyter-book build .
# Upload the book's HTML as an artifact
- name: Upload artifact
uses: actions/upload-pages-artifact@v2
with:
path: "_build/html"

# Deploy the book's HTML to GitHub Pages
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v2

0 comments on commit 942898f

Please sign in to comment.