CI pipelines
- The CI pipeline is run on each push but only
concepcts_nb.ipynb
is generated - A full CI pipeline is run each night where the full tutorial is build including the html pages. A
tar.gz
of thedoc
directory is upload to the generic registry of dune-fempy.
CI structure
Since the CI runners don't have global access to the internet all packages needed for the pipeline need to be mirrored to the gitlab registry. This is done by running the script
rebuild-dune-index.sh
located in this repository.
All required packages are listed there, e.g.,
pip2pi packages fenics-ufl
The pip2pi
script downloads the require wheel together with it's dependencies to a packages
sub-folder and then uploads them all to the dune-fem-dev
registry. Note that this doesn't work with non pure python packages, e.g., numpy
. Those have to be installed globally in the docker images. It is probably best to run this outside a venv - an empty venv is setup before the packages are downloaded so that no existing packages are used.
The virtual environment for the CI pipeline is setup using python3 -m venv --system-site-packages /duneci/modules/dune-env
(in .gitlab-ci.yml
). The script called is ./citest.sh
which contains
pip install -i https://gitlab.dune-project.org/api/v4/projects/812/packages/pypi/simple --no-build-isolation -r reqCI.txt
so the reqCI.txt
file contains the required packages which are downloaded from the gitlab registry.
Note, the requirements.txt
file is used by rebuild-dune-index.sh
.