Production Automation#

Various automation strategies can be used to support the production and quality assurance of assets and environments generated from a set of core production resources or source materials.

These include:

  • Github Actions to automatically check the quality of core production resources or source materials;

  • Github Actions to automatically generate and publish production environments (Docker containers, Jupyter Book environments, JupyterLite environments);

  • git precommit hooks to run code/text quality improvement tools and checks.

For more details, see Using Automation To Support Quality Assured Jupyter Notebook Publishing Processes.

Github Actions#

Four Github Actions are currently defined on the repository:

  • an action to build the JupyterLite distribution environment and the Jupyter Book distribution;

  • an action to deploy the JupyterLite and Jupyter Book distributions to Github Pages via the gh-pages branch;

  • an action to grab a couple of screenshots from the published JupyterLite distribution using shot-scraper and commit them back to the repository in the screenshots directory;

  • an action to buid a Docker container using Mark Hall’s ou-container-builder appropriate for deployment via the OU JupyterHub infrastructure.

Note that it is possible to define a Jupyer Book theme that provides a “launch” option to launch a notebook corresponding to a book page using JupyterLite. A JupyterLite environment can also be published as part of a Jupyter Book workflow using the jupyterlite-sphinx extension, although currently the content files need to be copied over to the JupyterLite distribution manually.

The theme used to publish the Jupyter Book in this environment will be updated to include a “launch in JupyterLite” option as and when I get a chance…

git precommit hooks#

Forthcoming…