Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Updated: 03 nov 2025

You may be familiar with GitHub Actions: it is a widely used continuous integration tool which can easily and automatically publish your Jupyter Book as a website. This lesson is designed to get you familiar with GitHub Actions in your Jupyter Book and learn how to manipulate them.

Read it

In your folder of the repository there is a hidden folder called .github, and inside that is another folder called workflows. Inside that folder is a file called deploy.yml (or similar). This file defines the workflow that builds and deploys your Jupyter Book to GitHub Pages.

Observe it

Now that you have seen the “steps” of the workflow, it is good to see them “in action” in the Browser.

Understanding where this information is available in your repository is especially useful when debugging problems with your website and PDF build. It is also important to know that this is where you can search for error logs (in the CLI), especially when problems may not occur in your local setup, but your website is not deploying properly.

Break it

To make sure you know what a “problem” looks like, we can intentionally break the workflow.

Change it

Here we will modify the workflow to add a new feature: automatically updating the “last edited” date in our published book.

The following bash script will modify date: field in the myst.yml file:

- name: Add current date to myst.yml
  shell: bash
  run: |
      BUILD_DATE="$(date +'%Y-%m-%d')"
      sed -i "s|\${BUILD_DATE}|${BUILD_DATE}|g" myst.yml
      echo "myst.yml:"
      grep -nE '^\s*date:' myst.yml

In addition, this simple script requires setting ${BUILD_DATE} for the date field value in myst.yml.