diff --git a/.github/workflows/weekly_build.yml b/.github/workflows/weekly_build.yml index eae37485..37226479 100644 --- a/.github/workflows/weekly_build.yml +++ b/.github/workflows/weekly_build.yml @@ -34,6 +34,34 @@ jobs: tags: ${{ steps.meta.outputs.tags }} labels: ${{ steps.meta.outputs.labels }} + push-apollo-debug-deps-image-to-docker-hub: + name: DockerPublishApolloDebugDeps + runs-on: ubuntu-latest + steps: + - name: Check out the repo + uses: actions/checkout@v3 + + - name: Log in to Docker Hub + uses: docker/login-action@f054a8b539a109f9f41c372932f1ae047eff08c9 + with: + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_PASSWORD }} + + - name: Extract metadata (tags, labels) for Docker + id: meta + uses: docker/metadata-action@98669ae865ea3cffbcbaa878cf57c20bbf1c6c38 + with: + images: alexanderianblair/apollo-debug-deps + + - name: Build and push Docker image + uses: docker/build-push-action@ad44023a93711e3deb337508980b4b5e9bcdc5dc + with: + context: docker/apollo-debug-deps/ + file: docker/apollo-debug-deps/Dockerfile + push: true + tags: ${{ steps.meta.outputs.tags }} + labels: ${{ steps.meta.outputs.labels }} + push-apollo-image-to-docker-hub: name: DockerPublishApollo runs-on: ubuntu-latest @@ -61,3 +89,31 @@ jobs: push: true tags: ${{ steps.meta.outputs.tags }} labels: ${{ steps.meta.outputs.labels }} + + push-apollo-debug-image-to-docker-hub: + name: DockerPublishApolloDebug + runs-on: ubuntu-latest + steps: + - name: Check out the repo + uses: actions/checkout@v3 + + - name: Log in to Docker Hub + uses: docker/login-action@f054a8b539a109f9f41c372932f1ae047eff08c9 + with: + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_PASSWORD }} + + - name: Extract metadata (tags, labels) for Docker + id: meta + uses: docker/metadata-action@98669ae865ea3cffbcbaa878cf57c20bbf1c6c38 + with: + images: alexanderianblair/apollo-debug + + - name: Build and push Docker image + uses: docker/build-push-action@ad44023a93711e3deb337508980b4b5e9bcdc5dc + with: + context: docker/apollo-debug/ + file: docker/apollo-debug/Dockerfile + push: true + tags: ${{ steps.meta.outputs.tags }} + labels: ${{ steps.meta.outputs.labels }} \ No newline at end of file diff --git a/docker/apollo-debug-deps/Dockerfile b/docker/apollo-debug-deps/Dockerfile new file mode 100644 index 00000000..2fddd0cc --- /dev/null +++ b/docker/apollo-debug-deps/Dockerfile @@ -0,0 +1,47 @@ +# Build Apollo dependencies +# Get base image +FROM alexanderianblair/hephaestus-debug-deps:master + +# By default one core is used to compile +ARG compile_cores=4 + +# By default checkout mfem-moose branch +ARG WORKDIR="opt" + +#Configure MOOSE +RUN export MOOSE_JOBS="$compile_cores" && \ + cd /$WORKDIR && \ + git clone https://github.com/idaholab/moose && \ + cd moose && \ + git checkout master && \ + export PETSC_DIR=/$WORKDIR/petsc && \ + export PETSC_ARCH=arch-linux-c-opt && \ + export CC=mpicc && \ + export CXX=mpicxx && \ + export F90=mpif90 && \ + export F77=mpif77 && \ + export FC=mpif90 && \ + METHOD=dbg ./scripts/update_and_rebuild_libmesh.sh --with-mpi && \ + ./configure --with-derivative-size=200 --with-ad-indexing-type=global + +# Build WASP +RUN cd /$WORKDIR/moose/scripts && \ + METHOD=dbg ./update_and_rebuild_wasp.sh + +# Build MOOSE +RUN cd /$WORKDIR/moose/framework && \ + METHOD=dbg make -j"$compile_cores" + +RUN cd /$WORKDIR/moose/test && \ + METHOD=dbg make -j"$compile_cores" + +# This is needed or it mpiexec complains because docker runs as root +# Discussion on this issue https://github.com/open-mpi/ompi/issues/4451 +ENV OMPI_ALLOW_RUN_AS_ROOT=1 +ENV OMPI_ALLOW_RUN_AS_ROOT_CONFIRM=1 + +# RUN cd /$WORKDIR/moose/test && \ +# ./run_tests -j"$compile_cores" --re='(?!initial_condition.newton_with_exact_initialization)' + +# ENV OMPI_ALLOW_RUN_AS_ROOT= +# ENV OMPI_ALLOW_RUN_AS_ROOT_CONFIRM= diff --git a/docker/apollo-debug/Dockerfile b/docker/apollo-debug/Dockerfile new file mode 100644 index 00000000..bdbcdba8 --- /dev/null +++ b/docker/apollo-debug/Dockerfile @@ -0,0 +1,36 @@ +# Build and test Apollo image +# Get base image +FROM alexanderianblair/apollo-debug-deps:master + +# By default one core is used to compile +ARG compile_cores=4 + +# By default checkout mfem-moose branch +ARG WORKDIR="opt" +ARG build_git_sha="master" + +# Get Apollo with Hephaestus +RUN cd /$WORKDIR && \ + git clone https://github.com/aurora-multiphysics/apollo.git && \ + cd apollo && \ + git checkout "$build_git_sha" && \ + git submodule update --init --recursive + +# Build Hephaestus +RUN cd /$WORKDIR/apollo/contrib/hephaestus/ && \ + mkdir build && \ + cd build && \ + cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Debug -DMFEM_DIR=/$WORKDIR/mfem/build -DMFEM_COMMON_INCLUDES=/$WORKDIR/mfem/miniapps/common .. && \ + make -j1 + +# Test Hephaestus +RUN cd /$WORKDIR/apollo/contrib/hephaestus/build && \ + make test + +# Build Apollo +RUN cd /$WORKDIR/apollo && \ + METHOD=dbg make -j"$compile_cores" + +# Test Apollo +RUN cd /$WORKDIR/apollo && \ + METHOD=dbg make test