Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

#2: implement common docker containers #3

Merged
merged 162 commits into from
Dec 19, 2024

Conversation

tlamonthezie
Copy link
Collaborator

@tlamonthezie tlamonthezie commented Oct 22, 2024

Fixes #2

This PR provides the docker images configurations, build & push tools and also matrix json files for usage by any external project for its own tests.

CI Test environments & tools

The test evironments are defined in ci/config.yaml

Some tools are provided as Python scripts

  • ci/build-matrix.py: build the list of available test environments as a JSON matrix file
  • ci/build-setup.py: generates setup shell scripts (a shell script is generated for each test environment).
  • ci/build-docker-image.py: build a docker image from the list of available images described in configuration file (with interactive support for local build and non-interactive mode for CI)

Testing from Docker images

A unique dockerfile at ci/docker/base.dockerfile serves as a base to build any image.
Images are built using a python script and are currently pushed to the vt repository using wf- prefix in tag names when pushing to master (this has already be done in https://github.com/DARMA-tasking/workflows/actions/runs/12028577111)

Testing from CI runners

The configuration enables to run some test environments outside of docker containers and directlly in a runner if the use of a docker image is not desired or not possible.
This is the case for the macosx testing environment which has been added to the test configuration and is run in the example (build-and-test.yml).

CI Workflows

The Github workflow defined at .github/workflows/build-docker-image.yml is responsible on building and pushing images to the DockerHub registry.

Build & Test Example given by test-ci-project

@cz4rs
Copy link
Contributor

cz4rs commented Nov 28, 2024

@tlamonthezie You can use DARMA-tasking/magistrate#349 to experiment with replacing current docker images with the ones generated here. Something like:

diff --git a/docker-compose.yml b/docker-compose.yml
index 9c49b13..0e45418 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -113,7 +113,7 @@ services:
   # Ubuntu gcc-8 debug build:
   #   docker-compose run -e CMAKE_BUILD_TYPE=debug ubuntu-cpp
   ubuntu-cpp:
-    image: ${REPO}:${ARCH}-ubuntu-${UBUNTU}-${COMPILER}-cpp
+    image: ${REPO}:wf-${ARCH}-ubuntu-${UBUNTU}-${COMPILER}-cpp
     build:
       context: .

should be enough.

@cz4rs
Copy link
Contributor

cz4rs commented Nov 28, 2024

@tlamonthezie You can use DARMA-tasking/magistrate#349 to experiment with replacing current docker images with the ones generated here. Something like:

diff --git a/docker-compose.yml b/docker-compose.yml
index 9c49b13..0e45418 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -113,7 +113,7 @@ services:
   # Ubuntu gcc-8 debug build:
   #   docker-compose run -e CMAKE_BUILD_TYPE=debug ubuntu-cpp
   ubuntu-cpp:
-    image: ${REPO}:${ARCH}-ubuntu-${UBUNTU}-${COMPILER}-cpp
+    image: ${REPO}:wf-${ARCH}-ubuntu-${UBUNTU}-${COMPILER}-cpp
     build:
       context: .

should be enough.

See DARMA-tasking/magistrate#377. At the moment gtest is missing and I think that it's a general enough dependency that we should add it here.

Copy link
Contributor

@cz4rs cz4rs left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've left a couple of comments, some more might follow in a form of a follow-up issues.

I have swapped the containers in DARMA-tasking/magistrate#377, this should be good for getting a basic feedback (e.g. we still need gtest, kokkos and kokkos-kernels to have magistrate CI passing). Feel free to make the changes there or just rerun the pipelines once you update the containers.

@tlamonthezie tlamonthezie merged commit 9ba0544 into master Dec 19, 2024
27 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

#2: implement common docker containers
3 participants