|
|
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 the `doc` 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`. |
|
|
\ No newline at end of file |