Deploy #250
This file contains hidden or 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
| # 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 |