6. Pipeline#

6.1. Build Pipeline#

For building and deploying our applications we set up a GitHub build pipeline (build.yml). The pipeline server must be a windows server instance because our applications are mainly distributed on Windows OS.

The build pipeline is only triggered when adding a version tag to the commit (e.g. v1.0.1) according following formatting:

on:
  push:
    tags:
      - 'v*.*.*'

6.2. GitHub Pages Pipeline#

The GitHub Pages pipeline deploys the documentation of the entire project and its subprojects to a GitHub Pages site as a Jupyter Book. With Jupyter Book, in combination with GitHub’s Pages functionality, you can deploy Jupyter Notebooks and Markdown-like pages as an online book/resource. The idea comes from Professor Wu from the University of Tennessee (see Cookiecutter Jupyter Book).

The deploy.yml file in the repository deploys the project as a GitHub Pages site. The pipeline server runs stabilly via python 3.9 (ubuntu).

Building the Jupyter Book locally can be done via the following commands:

python -m venv venv
.\venv\Scripts\activate 
pip install -r requirements.txt
  • Important libs

pip install -r requirements_jupyterbook.txt

must be run in root path:

  • Clean existing builds

jupyter-book clean .
  • Build Book (can be accessed via _build/html/index.html) :

jupyter-book build . 

6.3. Github Pipeline Rates:#

Because we own a GitHub Pro Education Account, we have a capacity of 3,000 minutes using GitHub’s pipeline servers and a storage capacity of 1GB.

Windows server have a multiplier of 2x which means that 1,500 minutes per month the pipeline server can be running (see GitHub Billing)