This repository holds all of the Dockerfiles that create the containers used throughout the Pressio ecosystem for testing. These containers allow us to, e.g., not rebuild Trilinos every time we test Pressio in CI.
Contents:
The following table shows the current Docker containers maintained by the pressio-containers
repository.
Click on a container to see its corresponding dockerfile with all dependencies.
Container Name |
---|
ubuntu-01 |
ubuntu-02 |
ubuntu-03 |
ubuntu-04 |
ubuntu-05 |
ubuntu-06 |
ubuntu-07 |
ubuntu-08 |
To add a new container you will need to create a new Dockerfile (see the docker_scripts
directory for existing Dockerfiles).
Once the dockerfile has been made, simply add it to the configuration matrix of the ci-docker.yml
.
For example, if the new file is called ubuntu-09.dockerfile
, and uses MPI, you would add to the matrix:
jobs:
CI:
strategy:
matrix:
include:
#
# Current containers...
#
- name: ubuntu-09
display_name: ubuntu-09, <description>
tpl_flags: "${MPI_FLAGS} <any other flags>"
The tpl_flags
are used when configuring Pressio to test with the new image.
To add a new version of Trilinos, create a new Dockerfile that runs the install_trilinos.sh
script with the desired version or commit.
For example, this dockerfile creates a container from the 0dc4553
commit:
ARG UBUNTU_VERSION=22.04
FROM ubuntu:${UBUNTU_VERSION}
ARG TRILINOS_VERSION=0dc4553
COPY ../scripts/install_trilinos.sh /install_trilinos.sh
RUN chmod +x /install_trilinos.sh && \
/install_trilinos.sh ${TRILINOS_VERSION}
The ci-docker.yml
GitHub workflow runs on all pushes or pull requests. For every image provided in the matrix
(see Adding a New Container), the workflow will perform three steps:
- Build the image
- Build and test Pressio (
develop
branch) inside of the container - If everything passes, push the image to the Pressio container registry.