TDycores-Project / TDycore

BSD 2-Clause "Simplified" License
4 stars 0 forks source link

Set up a workflow to build a PETSc Docker image for faster CI builds #142

Closed jeff-cohere closed 3 years ago

jeff-cohere commented 3 years ago

Our CI builds are slow, and most of the time is spent building PETSc. It would be nice if we could use a TDycore-specific Docker image with a version of PETSc (identified by a git hash). If no Docker image existed for a requested hash, a workflow could be triggered that built and pushed such an image to GitHub's Docker registry, and then we could do our CI build on top.

In short, we need

I'm grafting together a couple of Jed's Docker files to build MPICH from source and install a specific PETSc hash on top of it.

This Dockerfile can then be used in a workflow that builds and pushes Docker images: https://github.com/marketplace/actions/build-and-push-docker-images#cache-to-registry

More resources:

jeff-cohere commented 3 years ago

The workflows described in the above link require a Docker image stored either in DockerHub or in the GitHub Container Registry. The latter seems like it could be simpler, since it's integrated with our organization. Unfortunately, it's in beta right now, meaning there are still some issues to be shaken out. The documentation is clearly not ready for primetime at the moment. I'll keep my eye on this and see how things develop.