Skip to content

Deploy

Deploy #256

Workflow file for this run

# This file was created automatically with `myst init --gh-pages` 🪄 💚
name: MyST GitHub Pages Deploy
on:
push:
branches: [main]
workflow_dispatch:
schedule:
# Runs every day at 1 AM Pacific Time
- cron: '0 8 * * *'
env:
# `BASE_URL` determines the website is served from, including CSS & JS assets
# You may need to change this to `BASE_URL: ''`
BASE_URL: ''
# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
permissions:
contents: read
pages: write
id-token: write
# 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:
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup Pages
uses: actions/configure-pages@v3
- uses: actions/setup-node@v4
with:
node-version: 20.x
- name: Install MyST Markdown
run: npm install -g mystmd
- name: Setup Python
uses: actions/setup-python@v4
with:
python-version: '3.11'
- name: Install dependencies
run: pip install nox uv
- name: Build the documentation (also generates release notes and downloads nav items)
run: nox -s docs
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Upload artifact
uses: actions/upload-pages-artifact@v3
with:
path: './docs/_build/html'
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4
# BLOG_SYNC_TOKEN is a PAT for @choldgraf that expires after a year
# It has write access to the jupyter-book/jupyter-book repo
# permissions needed (only has 'content write', not 'workflow write', so can't write workflow files)
- name: Prepare blog files for sync
run: |
mkdir -p blog-sync
cp -r docs blog-sync/
rm -rf blog-sync/docs/_build
cp -r src blog-sync/
cp noxfile.py blog-sync/
cp .readthedocs.yml blog-sync/
# Create warning README
cat > blog-sync/README.md << EOF
❌ DO NOT EDIT THIS DIRECTLY ❌
The source files for the blog are at https://github.com/jupyter-book/blog.
This branch was auto-generated by: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}
EOF
- name: Sync to jupyter-book blog branch (prototype)
uses: cpina/github-action-push-to-another-repository@main
env:
API_TOKEN_GITHUB: ${{ secrets.BLOG_SYNC_TOKEN }}
with:
source-directory: 'blog-sync'
destination-github-username: 'jupyter-book'
destination-repository-name: 'jupyter-book'
target-branch: blog
user-email: github-actions[bot]@users.noreply.github.com
create-target-branch-if-needed: true