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)