WIP: Use github actions #86
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: "Branch next: Docker" | |
| on: | |
| pull_request: | |
| types: [labeled, synchronize, opened, reopened] | |
| branches: [next] | |
| push: | |
| branches: [next] | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| prepare: | |
| name: Prepare | |
| runs-on: ubuntu-slim | |
| outputs: | |
| # Base SHA for this event | |
| base_sha: ${{ steps.checkout.outputs.base_sha }} | |
| # Whether or not to build a given packages | |
| mpi_build: ${{ steps.package_context.outputs.mpi_build }} | |
| petsc_build: ${{ steps.package_context.outputs.petsc_build }} | |
| libmesh_build: ${{ steps.package_context.outputs.libmesh_build }} | |
| moose_dev_build: ${{ steps.package_context.outputs.moose_dev_build }} | |
| # Package tags for building and pulling | |
| mpi_tag: ${{ steps.package_context.outputs.mpi_tag }} | |
| petsc_tag: ${{ steps.package_context.outputs.petsc_tag }} | |
| libmesh_tag: ${{ steps.package_context.outputs.libmesh_tag }} | |
| moose_dev_tag: ${{ steps.package_context.outputs.moose_dev_tag }} | |
| # Package URIs for building and pulling | |
| mpi_uri: ${{ steps.package_context.outputs.mpi_uri }} | |
| petsc_uri: ${{ steps.package_context.outputs.petsc_uri }} | |
| libmesh_uri: ${{ steps.package_context.outputs.libmesh_uri }} | |
| moose_dev_uri: ${{ steps.package_context.outputs.moose_dev_uri }} | |
| # Submodule SHAs for building | |
| conduit_sha: ${{ steps.dependency_refs.outputs.conduit_sha }} | |
| libmesh_sha: ${{ steps.dependency_refs.outputs.libmesh_sha }} | |
| mfem_sha: ${{ steps.dependency_refs.outputs.mfem_sha }} | |
| neml2_sha: ${{ steps.dependency_refs.outputs.neml2_sha }} | |
| petsc_sha: ${{ steps.dependency_refs.outputs.petsc_sha }} | |
| wasp_sha: ${{ steps.dependency_refs.outputs.wasp_sha }} | |
| vtk_version: ${{ steps.dependency_refs.outputs.vtk_version }} | |
| steps: | |
| - uses: idaholab/moose/checkout@actions | |
| name: Checkout | |
| id: checkout | |
| - name: Get package versions | |
| shell: bash | |
| id: package_context | |
| run: | | |
| echo "::group::Install versioner dependencies" | |
| pip install --no-cache --break-system-packages pyyaml jinja2 | |
| echo "::endgroup::" | |
| echo "::group::Parse packages" | |
| outputs=() | |
| summary=() | |
| uri_prefix="ghcr.io/${{ github.repository }}" | |
| base_sha="${{ steps.checkout.outputs.base_sha }}" | |
| packages=("mpi" "petsc" "libmesh" "moose-dev") | |
| for package in "${packages[@]}"; do | |
| base_json="$(./scripts/versioner.py "$package" "$base_sha" --json)" | |
| head_json="$(./scripts/versioner.py "$package" --json)" | |
| base_version="$(echo "$base_json" | jq -r '.full_version')" | |
| head_version="$(echo "$head_json" | jq -r '.full_version')" | |
| package_container="$package" | |
| if [ "$package" != "moose-dev" ]; then | |
| package_container="moose-${package_container}" | |
| fi | |
| package_tag="$head_version" | |
| package_uri="${uri_prefix}/${package_container}" | |
| package_build="false" | |
| if [ "$base_version" != "$head_version" ]; then | |
| package_build="true" | |
| if [ "$GITHUB_EVENT_NAME" == "pull_request" ]; then | |
| package_tag="pr-${{ github.event.pull_request.number }}" | |
| package_uri="${uri_prefix}/pr-${package_container}" | |
| fi | |
| fi | |
| package_var="${package//-/_}" | |
| outputs+=("${package_var}_build=${package_build}") | |
| outputs+=("${package_var}_tag=${package_tag}") | |
| outputs+=("${package_var}_uri=${package_uri}") | |
| summary+=("\`${package}\` | \`${base_version}\` | \`${head_version}\` | \`${package_uri}\` | \`${package_tag}\`") | |
| done | |
| echo "::endgroup::" | |
| echo "::group::Output step change summary" | |
| echo "## Docker package summary" >> $GITHUB_STEP_SUMMARY | |
| echo "| Package | From version | To version | URI | Tag |" >> $GITHUB_STEP_SUMMARY | |
| echo "| ------- | ------------ | ---------- | --- | --- |" >> $GITHUB_STEP_SUMMARY | |
| for entry in "${summary[@]}"; do | |
| echo "$entry" >> $GITHUB_STEP_SUMMARY | |
| done | |
| echo "::endgroup::" | |
| echo "::group::Output packages" | |
| for entry in "${outputs[@]}"; do | |
| echo "$entry" >> $GITHUB_OUTPUT | |
| echo "$entry" | |
| done | |
| echo "::endgroup::" | |
| - name: Get dependency refs | |
| id: dependency_refs | |
| shell: bash | |
| run: | | |
| echo "::group::Build refs" | |
| outputs=() | |
| outputs+=("conduit_sha=$(git rev-parse HEAD:framework/contrib/conduit)") | |
| outputs+=("libmesh_sha=$(git rev-parse HEAD:libmesh)") | |
| outputs+=("mfem_sha=$(git rev-parse HEAD:framework/contrib/mfem)") | |
| outputs+=("neml2_sha=$(git rev-parse HEAD:framework/contrib/neml2)") | |
| outputs+=("petsc_sha=$(git rev-parse HEAD:petsc)") | |
| outputs+=("wasp_sha=$(git rev-parse HEAD:framework/contrib/wasp)") | |
| vtk_version="$(./scripts/versioner.py libmesh-vtk --json | jq -r '.version')" | |
| outputs+=("vtk_version=${vtk_version}") | |
| echo "::endgroup::" | |
| echo "::group::Output refs" | |
| for entry in "${outputs[@]}"; do | |
| echo "$entry" >> $GITHUB_OUTPUT | |
| echo "$entry" | |
| done | |
| echo "::endgroup::" | |
| build_clang_mpich: | |
| name: "Build clang-mpich" | |
| needs: [prepare] | |
| if: >- | |
| !cancelled() | |
| && (needs.prepare.outputs.mpi_build == 'true' || needs.prepare.outputs.petsc_build == 'true' || needs.prepare.outputs.libmesh_build == 'true' || needs.prepare.outputs.moose_dev_build == 'true') | |
| permissions: | |
| contents: read | |
| packages: write | |
| uses: ./.github/workflows/reusable-build-docker.yml | |
| with: | |
| base_sha: ${{ needs.prepare.outputs.base_sha }} | |
| mpi_from: ghcr.io/idaholab/moose-mpibase/rocky:8.10-clang20.1.8-mpich5.0.1_2026.04.14 | |
| mpi_to: "${{ needs.prepare.outputs.mpi_uri }}-clang:${{ needs.prepare.outputs.mpi_tag }}" | |
| mpi_build: ${{ needs.prepare.outputs.mpi_build == 'true' }} | |
| petsc_to: "${{ needs.prepare.outputs.petsc_uri }}-clang-mpich:${{ needs.prepare.outputs.petsc_tag }}" | |
| petsc_build: ${{ needs.prepare.outputs.petsc_build == 'true' }} | |
| petsc_build_args: | | |
| MPI_FLAVOUR=mpich | |
| PETSC_GIT_REF=${{ needs.prepare.outputs.petsc_sha }} | |
| libmesh_to: "${{ needs.prepare.outputs.libmesh_uri }}-clang-mpich:${{ needs.prepare.outputs.libmesh_tag }}" | |
| libmesh_build: ${{ needs.prepare.outputs.libmesh_build == 'true' }} | |
| libmesh_build_args: | | |
| LIBMESH_GIT_REF=${{ needs.prepare.outputs.libmesh_sha }} | |
| VTK_VERSION=${{ needs.prepare.outputs.vtk_version }} | |
| moose_dev_to: "${{ needs.prepare.outputs.moose_dev_uri }}-clang-mpich:${{ needs.prepare.outputs.moose_dev_tag }}" | |
| moose_dev_build: ${{ needs.prepare.outputs.moose_dev_build == 'true' }} | |
| moose_dev_build_args: | | |
| CONDUIT_GIT_REF=${{ needs.prepare.outputs.conduit_sha }} | |
| MFEM_GIT_REF=${{ needs.prepare.outputs.mfem_sha }} | |
| NEML2_GIT_REF=${{ needs.prepare.outputs.neml2_sha }} | |
| WASP_GIT_REF=${{ needs.prepare.outputs.wasp_sha }} | |
| build_clang_min_mpich: | |
| name: "Build clang_min-mpich" | |
| needs: [prepare] | |
| if: >- | |
| !cancelled() | |
| && (needs.prepare.outputs.mpi_build == 'true' || needs.prepare.outputs.petsc_build == 'true' || needs.prepare.outputs.libmesh_build == 'true' || needs.prepare.outputs.moose_dev_build == 'true') | |
| permissions: | |
| contents: read | |
| packages: write | |
| uses: ./.github/workflows/reusable-build-docker.yml | |
| with: | |
| base_sha: ${{ needs.prepare.outputs.base_sha }} | |
| mpi_from: ghcr.io/idaholab/moose-mpibase/rocky:8.10-clang14.0.6-mpich5.0.1_2026.04.12 | |
| mpi_to: "${{ needs.prepare.outputs.mpi_uri }}-clang_min:${{ needs.prepare.outputs.mpi_tag }}" | |
| mpi_build: ${{ needs.prepare.outputs.mpi_build == 'true' }} | |
| petsc_to: "${{ needs.prepare.outputs.petsc_uri }}-clang_min-mpich:${{ needs.prepare.outputs.petsc_tag }}" | |
| petsc_build: ${{ needs.prepare.outputs.petsc_build == 'true' }} | |
| petsc_build_args: | | |
| MPI_FLAVOUR=mpich | |
| PETSC_GIT_REF=${{ needs.prepare.outputs.petsc_sha }} | |
| libmesh_to: "${{ needs.prepare.outputs.libmesh_uri }}-clang_min-mpich:${{ needs.prepare.outputs.libmesh_tag }}" | |
| libmesh_build: ${{ needs.prepare.outputs.libmesh_build == 'true' }} | |
| libmesh_build_args: | | |
| LIBMESH_GIT_REF=${{ needs.prepare.outputs.libmesh_sha }} | |
| VTK_VERSION=${{ needs.prepare.outputs.vtk_version }} | |
| moose_dev_to: "${{ needs.prepare.outputs.moose_dev_uri }}-clang_min-mpich:${{ needs.prepare.outputs.moose_dev_tag }}" | |
| moose_dev_build: ${{ needs.prepare.outputs.moose_dev_build == 'true' }} | |
| moose_dev_build_args: | | |
| CONDUIT_GIT_REF=${{ needs.prepare.outputs.conduit_sha }} | |
| MFEM_GIT_REF=${{ needs.prepare.outputs.mfem_sha }} | |
| WASP_GIT_REF=${{ needs.prepare.outputs.wasp_sha }} | |
| LIBTORCH_SKIP=1 | |
| NEML2_SKIP=1 | |
| build_gcc_min_mpich: | |
| name: "Build gcc_min-mpich" | |
| needs: [prepare] | |
| if: >- | |
| !cancelled() | |
| && (needs.prepare.outputs.mpi_build == 'true' || needs.prepare.outputs.petsc_build == 'true' || needs.prepare.outputs.libmesh_build == 'true' || needs.prepare.outputs.moose_dev_build == 'true') | |
| permissions: | |
| contents: read | |
| packages: write | |
| uses: ./.github/workflows/reusable-build-docker.yml | |
| with: | |
| base_sha: ${{ needs.prepare.outputs.base_sha }} | |
| mpi_from: ghcr.io/idaholab/moose-mpibase/rocky:8.10-gcc9.2.1-mpich5.0.1_2026.04.12 | |
| mpi_to: "${{ needs.prepare.outputs.mpi_uri }}-gcc_min:${{ needs.prepare.outputs.mpi_tag }}" | |
| mpi_build: ${{ needs.prepare.outputs.mpi_build == 'true' }} | |
| petsc_to: "${{ needs.prepare.outputs.petsc_uri }}-gcc_min-mpich:${{ needs.prepare.outputs.petsc_tag }}" | |
| petsc_build: ${{ needs.prepare.outputs.petsc_build == 'true' }} | |
| petsc_build_args: | | |
| MPI_FLAVOUR=mpich | |
| PETSC_GIT_REF=${{ needs.prepare.outputs.petsc_sha }} | |
| libmesh_to: "${{ needs.prepare.outputs.libmesh_uri }}-gcc_min-mpich:${{ needs.prepare.outputs.libmesh_tag }}" | |
| libmesh_build: ${{ needs.prepare.outputs.libmesh_build == 'true' }} | |
| libmesh_build_args: | | |
| LIBMESH_GIT_REF=${{ needs.prepare.outputs.libmesh_sha }} | |
| VTK_VERSION=${{ needs.prepare.outputs.vtk_version }} | |
| moose_dev_to: "${{ needs.prepare.outputs.moose_dev_uri }}-gcc_min-mpich:${{ needs.prepare.outputs.moose_dev_tag }}" | |
| moose_dev_build: ${{ needs.prepare.outputs.moose_dev_build == 'true' }} | |
| moose_dev_build_args: | | |
| CONDUIT_GIT_REF=${{ needs.prepare.outputs.conduit_sha }} | |
| MFEM_GIT_REF=${{ needs.prepare.outputs.mfem_sha }} | |
| WASP_GIT_REF=${{ needs.prepare.outputs.wasp_sha }} | |
| LIBTORCH_SKIP=1 | |
| NEML2_SKIP=1 | |
| build_intel_mpich: | |
| name: "Build intel-mpich" | |
| needs: [prepare] | |
| if: >- | |
| !cancelled() | |
| && (needs.prepare.outputs.mpi_build == 'true' || needs.prepare.outputs.petsc_build == 'true' || needs.prepare.outputs.libmesh_build == 'true' || needs.prepare.outputs.moose_dev_build == 'true') | |
| permissions: | |
| contents: read | |
| packages: write | |
| uses: ./.github/workflows/reusable-build-docker.yml | |
| with: | |
| base_sha: ${{ needs.prepare.outputs.base_sha }} | |
| mpi_from: ghcr.io/idaholab/moose-mpibase/rocky:8.10-oneapi2025.3.3-mpich4.3.2_2026.04.12 | |
| mpi_to: "${{ needs.prepare.outputs.mpi_uri }}-intel:${{ needs.prepare.outputs.mpi_tag }}" | |
| mpi_build: ${{ needs.prepare.outputs.mpi_build == 'true' }} | |
| petsc_to: "${{ needs.prepare.outputs.petsc_uri }}-intel-mpich:${{ needs.prepare.outputs.petsc_tag }}" | |
| petsc_build: ${{ needs.prepare.outputs.petsc_build == 'true' }} | |
| petsc_build_args: | | |
| MPI_FLAVOUR=mpich | |
| PETSC_GIT_REF=${{ needs.prepare.outputs.petsc_sha }} | |
| libmesh_to: "${{ needs.prepare.outputs.libmesh_uri }}-intel-mpich:${{ needs.prepare.outputs.libmesh_tag }}" | |
| libmesh_build: ${{ needs.prepare.outputs.libmesh_build == 'true' }} | |
| libmesh_build_args: | | |
| LIBMESH_GIT_REF=${{ needs.prepare.outputs.libmesh_sha }} | |
| VTK_VERSION=${{ needs.prepare.outputs.vtk_version }} | |
| moose_dev_to: "${{ needs.prepare.outputs.moose_dev_uri }}-intel-mpich:${{ needs.prepare.outputs.moose_dev_tag }}" | |
| moose_dev_build: ${{ needs.prepare.outputs.moose_dev_build == 'true' }} | |
| moose_dev_build_args: | | |
| CONDUIT_GIT_REF=${{ needs.prepare.outputs.conduit_sha }} | |
| MFEM_GIT_REF=${{ needs.prepare.outputs.mfem_sha }} | |
| WASP_GIT_REF=${{ needs.prepare.outputs.wasp_sha }} | |
| LIBTORCH_SKIP=1 | |
| build_moose_mpi_rocky8: | |
| name: "Build moose-mpi-rocky8" | |
| needs: | |
| - prepare | |
| if: >- | |
| !cancelled() | |
| && contains(fromJSON('["success", "skipped"]'), needs.prepare.result) | |
| && needs.prepare.outputs.mpi_build | |
| runs-on: ubuntu-24.04 | |
| permissions: | |
| contents: read | |
| packages: write | |
| steps: | |
| - uses: idaholab/moose/checkout@actions | |
| name: Checkout | |
| with: | |
| pr_base_sha: ${{ needs.prepare.outputs.base_sha }} | |
| - uses: idaholab/moose/build-docker@actions | |
| name: Build and push | |
| with: | |
| from: ghcr.io/idaholab/moose-mpibase/rocky:8.10-gcc13.3.1-mpich5.0.1-openmpi5.0.10_2026.04.12 | |
| file: docker/moose-mpi/Dockerfile | |
| variant: rocky8 | |
| uri_prefix: ${{ needs.prepare.outputs.mpi_uri }} | |
| tag: ${{ needs.prepare.outputs.mpi_tag }} | |
| registry_token: ${{ secrets.GITHUB_TOKEN }} | |
| build_rocky8_mpich: | |
| name: "Build rocky8-mpich" | |
| needs: [prepare, build_moose_mpi_rocky8] | |
| if: >- | |
| !cancelled() | |
| && contains(fromJSON('["success", "skipped"]'), needs.build_moose_mpi_rocky8.result) | |
| && (needs.prepare.outputs.petsc_build == 'true' || needs.prepare.outputs.libmesh_build == 'true' || needs.prepare.outputs.moose_dev_build == 'true') | |
| permissions: | |
| contents: read | |
| packages: write | |
| uses: ./.github/workflows/reusable-build-docker.yml | |
| with: | |
| base_sha: ${{ needs.prepare.outputs.base_sha }} | |
| mpi_from: unused | |
| mpi_to: "${{ needs.prepare.outputs.mpi_uri }}-rocky8:${{ needs.prepare.outputs.mpi_tag }}" | |
| mpi_build: false | |
| petsc_to: "${{ needs.prepare.outputs.petsc_uri }}-rocky8-mpich:${{ needs.prepare.outputs.petsc_tag }}" | |
| petsc_build: ${{ needs.prepare.outputs.petsc_build == 'true' }} | |
| petsc_build_args: | | |
| MPI_FLAVOUR=mpich | |
| PETSC_GIT_REF=${{ needs.prepare.outputs.petsc_sha }} | |
| libmesh_to: "${{ needs.prepare.outputs.libmesh_uri }}-rocky8-mpich:${{ needs.prepare.outputs.libmesh_tag }}" | |
| libmesh_build: ${{ needs.prepare.outputs.libmesh_build == 'true' }} | |
| libmesh_build_args: | | |
| LIBMESH_GIT_REF=${{ needs.prepare.outputs.libmesh_sha }} | |
| VTK_VERSION=${{ needs.prepare.outputs.vtk_version }} | |
| moose_dev_to: "${{ needs.prepare.outputs.moose_dev_uri }}-rocky8-mpich:${{ needs.prepare.outputs.moose_dev_tag }}" | |
| moose_dev_build: ${{ needs.prepare.outputs.moose_dev_build == 'true' }} | |
| moose_dev_build_args: | | |
| CONDUIT_GIT_REF=${{ needs.prepare.outputs.conduit_sha }} | |
| MFEM_GIT_REF=${{ needs.prepare.outputs.mfem_sha }} | |
| NEML2_GIT_REF=${{ needs.prepare.outputs.neml2_sha }} | |
| WASP_GIT_REF=${{ needs.prepare.outputs.wasp_sha }} | |
| build_rocky8_openmpi: | |
| name: "Build rocky8-openmpi" | |
| needs: [prepare, build_moose_mpi_rocky8] | |
| if: >- | |
| !cancelled() | |
| && contains(fromJSON('["success", "skipped"]'), needs.build_moose_mpi_rocky8.result) | |
| && (needs.prepare.outputs.petsc_build == 'true' || needs.prepare.outputs.libmesh_build == 'true' || needs.prepare.outputs.moose_dev_build == 'true') | |
| permissions: | |
| contents: read | |
| packages: write | |
| uses: ./.github/workflows/reusable-build-docker.yml | |
| with: | |
| base_sha: ${{ needs.prepare.outputs.base_sha }} | |
| mpi_from: unused | |
| mpi_to: "${{ needs.prepare.outputs.mpi_uri }}-rocky8:${{ needs.prepare.outputs.mpi_tag }}" | |
| mpi_build: false | |
| petsc_to: "${{ needs.prepare.outputs.petsc_uri }}-rocky8-openmpi:${{ needs.prepare.outputs.petsc_tag }}" | |
| petsc_build: ${{ needs.prepare.outputs.petsc_build == 'true' }} | |
| petsc_build_args: | | |
| MPI_FLAVOUR=openmpi | |
| PETSC_GIT_REF=${{ needs.prepare.outputs.petsc_sha }} | |
| libmesh_to: "${{ needs.prepare.outputs.libmesh_uri }}-rocky8-openmpi:${{ needs.prepare.outputs.libmesh_tag }}" | |
| libmesh_build: ${{ needs.prepare.outputs.libmesh_build == 'true' }} | |
| libmesh_build_args: | | |
| LIBMESH_GIT_REF=${{ needs.prepare.outputs.libmesh_sha }} | |
| VTK_VERSION=${{ needs.prepare.outputs.vtk_version }} | |
| moose_dev_to: "${{ needs.prepare.outputs.moose_dev_uri }}-rocky8-openmpi:${{ needs.prepare.outputs.moose_dev_tag }}" | |
| moose_dev_build: ${{ needs.prepare.outputs.moose_dev_build == 'true' }} | |
| moose_dev_build_args: | | |
| CONDUIT_GIT_REF=${{ needs.prepare.outputs.conduit_sha }} | |
| MFEM_GIT_REF=${{ needs.prepare.outputs.mfem_sha }} | |
| NEML2_GIT_REF=${{ needs.prepare.outputs.neml2_sha }} | |
| WASP_GIT_REF=${{ needs.prepare.outputs.wasp_sha }} | |
| build_rocky9_mpich: | |
| name: "Build rocky9-mpich" | |
| needs: [prepare] | |
| if: >- | |
| !cancelled() | |
| && (needs.prepare.outputs.mpi_build == 'true' || needs.prepare.outputs.petsc_build == 'true' || needs.prepare.outputs.libmesh_build == 'true' || needs.prepare.outputs.moose_dev_build == 'true') | |
| permissions: | |
| contents: read | |
| packages: write | |
| uses: ./.github/workflows/reusable-build-docker.yml | |
| with: | |
| base_sha: ${{ needs.prepare.outputs.base_sha }} | |
| mpi_from: ghcr.io/idaholab/moose-mpibase/rocky:9.7-gcc13.3.1-mpich4.3.2-openmpi5.0.10_2026.04.12 | |
| mpi_to: "${{ needs.prepare.outputs.mpi_uri }}-rocky9:${{ needs.prepare.outputs.mpi_tag }}" | |
| mpi_build: ${{ needs.prepare.outputs.mpi_build == 'true' }} | |
| petsc_to: "${{ needs.prepare.outputs.petsc_uri }}-rocky9-mpich:${{ needs.prepare.outputs.petsc_tag }}" | |
| petsc_build: ${{ needs.prepare.outputs.petsc_build == 'true' }} | |
| petsc_build_args: | | |
| MPI_FLAVOUR=mpich | |
| PETSC_GIT_REF=${{ needs.prepare.outputs.petsc_sha }} | |
| libmesh_to: "${{ needs.prepare.outputs.libmesh_uri }}-rocky9-mpich:${{ needs.prepare.outputs.libmesh_tag }}" | |
| libmesh_build: ${{ needs.prepare.outputs.libmesh_build == 'true' }} | |
| libmesh_build_args: | | |
| LIBMESH_GIT_REF=${{ needs.prepare.outputs.libmesh_sha }} | |
| VTK_VERSION=${{ needs.prepare.outputs.vtk_version }} | |
| moose_dev_to: "${{ needs.prepare.outputs.moose_dev_uri }}-rocky9-mpich:${{ needs.prepare.outputs.moose_dev_tag }}" | |
| moose_dev_build: ${{ needs.prepare.outputs.moose_dev_build == 'true' }} | |
| moose_dev_build_args: | | |
| CONDUIT_GIT_REF=${{ needs.prepare.outputs.conduit_sha }} | |
| MFEM_GIT_REF=${{ needs.prepare.outputs.mfem_sha }} | |
| NEML2_GIT_REF=${{ needs.prepare.outputs.neml2_sha }} | |
| WASP_GIT_REF=${{ needs.prepare.outputs.wasp_sha }} | |
| # | |
| # Modules, with moose-dev-rocky8-mpich | |
| # | |
| modules: | |
| name: "Modules" | |
| needs: | |
| - prepare | |
| - build_rocky8_mpich | |
| if: >- | |
| !cancelled() | |
| && !always() | |
| && contains(fromJSON('["success", "skipped"]'), needs.build_rocky8_mpich.result) | |
| runs-on: ubuntu-slim | |
| steps: | |
| - name: Test | |
| shell: bash | |
| run: | | |
| echo "testing" | |
| modules_debug: | |
| name: "Modules debug" | |
| needs: | |
| - prepare | |
| - build_rocky8_mpich | |
| if: >- | |
| !cancelled() | |
| && contains(fromJSON('["success", "skipped"]'), needs.build_rocky8_mpich.result) | |
| runs-on: ubuntu-24.04 | |
| container: | |
| image: "${{ needs.prepare.outputs.moose_dev_uri }}-rocky8-mpich:${{ needs.prepare.outputs.moose_dev_tag }}" | |
| options: --shm-size=1gb | |
| env: | |
| METHOD: dbg | |
| steps: | |
| - uses: idaholab/moose/checkout@actions | |
| name: Checkout | |
| with: | |
| pr_base_sha: ${{ needs.prepare.outputs.base_sha }} | |
| - uses: idaholab/moose/configure-moose@actions | |
| name: Configure with kokkos, libtorch, neml2, mfem | |
| with: | |
| args: --with-kokkos=cpu --with-libtorch --with-neml2 --with-mfem | |
| - uses: idaholab/moose/build@actions | |
| name: Build | |
| with: | |
| dir: modules | |
| args: all builds | |
| - uses: idaholab/moose/tests@actions | |
| name: Test | |
| with: | |
| dir: modules | |
| args: --use-subdir-exe | |
| modules_parallel: | |
| name: "Modules parallel" | |
| needs: | |
| - prepare | |
| - build_rocky8_mpich | |
| if: >- | |
| !cancelled() | |
| && !always() | |
| && contains(fromJSON('["success", "skipped"]'), needs.build_rocky8_mpich.result) | |
| runs-on: ubuntu-slim | |
| steps: | |
| - name: Test | |
| shell: bash | |
| run: | | |
| echo "testing" | |
| modules_recover: | |
| name: "Modules recover" | |
| needs: | |
| - prepare | |
| - build_rocky8_mpich | |
| if: >- | |
| !cancelled() | |
| && !always() | |
| && contains(fromJSON('["success", "skipped"]'), needs.build_rocky8_mpich.result) | |
| runs-on: ubuntu-slim | |
| steps: | |
| - name: Test | |
| shell: bash | |
| run: | | |
| echo "testing" | |
| modules_restep: | |
| name: "Modules restep" | |
| needs: | |
| - prepare | |
| - build_rocky8_mpich | |
| if: >- | |
| !cancelled() | |
| && !always() | |
| && contains(fromJSON('["success", "skipped"]'), needs.build_rocky8_mpich.result) | |
| runs-on: ubuntu-slim | |
| steps: | |
| - name: Test | |
| shell: bash | |
| run: | | |
| echo "testing" | |
| fluid_properties_apps: | |
| name: "Fluid properties apps" | |
| needs: | |
| - prepare | |
| - build_rocky8_mpich | |
| if: >- | |
| !cancelled() | |
| && !always() | |
| && contains(fromJSON('["success", "skipped"]'), needs.build_rocky8_mpich.result) | |
| runs-on: ubuntu-slim | |
| steps: | |
| - name: Test | |
| shell: bash | |
| run: | | |
| echo "testing" | |
| # | |
| # Sweeps, with moose-dev-rocky8-mpich | |
| # On: push, PR with "CI: sweeps" label | |
| # | |
| sweeps: | |
| name: "Sweeps" | |
| needs: | |
| - prepare | |
| - build_rocky8_mpich | |
| if: >- | |
| !cancelled() | |
| && contains(fromJSON('["success", "skipped"]'), needs.build_rocky8_mpich.result) | |
| && (github.event_name == 'push' || (github.event_name == 'pull_request' && contains(github.event.pull_request.labels.*.name, 'CI\u003A sweeps'))) | |
| runs-on: ubuntu-24.04 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| type: | |
| - -p | |
| - --recover -p | |
| - --distributed-mesh -p | |
| - --distributed-mesh --recover -p | |
| number: | |
| - odd | |
| - even | |
| container: | |
| image: "${{ needs.prepare.outputs.moose_dev_uri }}-rocky8-mpich:${{ needs.prepare.outputs.moose_dev_tag }}" | |
| options: --shm-size=1gb | |
| steps: | |
| - uses: idaholab/moose/checkout@actions | |
| name: Checkout | |
| with: | |
| pr_base_sha: ${{ needs.prepare.outputs.base_sha }} | |
| - uses: idaholab/moose/configure-moose@actions | |
| name: Configure with kokkos | |
| with: | |
| args: --with-kokkos | |
| - uses: idaholab/moose/build@actions | |
| name: Build | |
| with: | |
| dir: test | |
| - uses: idaholab/moose/tests@actions | |
| name: Test ${{ matrix.type }} ${{ matrix.number == 'odd' && '3' || '4' }} | |
| with: | |
| dir: test | |
| args: ${{ matrix.type }} ${{ matrix.number == 'odd' && '3' || '4' }} | |
| - uses: idaholab/moose/tests@actions | |
| name: Test ${{ matrix.type }} ${{ matrix.number == 'odd' && '5' || '6' }} | |
| with: | |
| dir: test | |
| args: ${{ matrix.type }} ${{ matrix.number == 'odd' && '5' || '6' }} | |
| - uses: idaholab/moose/tests@actions | |
| name: Test ${{ matrix.type }} ${{ matrix.number == 'odd' && '7' || '8' }} | |
| with: | |
| dir: test | |
| args: ${{ matrix.type }} ${{ matrix.number == 'odd'&& '7' || '8' }} | |
| - uses: idaholab/moose/tests@actions | |
| name: Test ${{ matrix.type }} ${{ matrix.number == 'odd' && '15' || '16' }} | |
| with: | |
| dir: test | |
| args: ${{ matrix.type }} ${{ matrix.number == 'odd' && '15' || '16' }} | |
| # | |
| # Clang, with moose-dev-clang-mpich | |
| # | |
| clang: | |
| name: "Clang" | |
| needs: | |
| - prepare | |
| - build_clang_mpich | |
| if: >- | |
| !cancelled() | |
| && contains(fromJSON('["success", "skipped"]'), needs.build_clang_mpich.result) | |
| runs-on: ubuntu-24.04 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| method: | |
| - opt | |
| - dbg | |
| env: | |
| METHOD: ${{ matrix.method }} | |
| container: | |
| image: "${{ needs.prepare.outputs.moose_dev_uri }}-clang-mpich:${{ needs.prepare.outputs.moose_dev_tag }}" | |
| options: --shm-size=1gb | |
| steps: | |
| - uses: idaholab/moose/checkout@actions | |
| name: Checkout | |
| with: | |
| pr_base_sha: ${{ needs.prepare.outputs.base_sha }} | |
| - uses: idaholab/moose/configure-moose@actions | |
| name: Configure with kokkos | |
| with: | |
| args: --with-kokkos | |
| - uses: idaholab/moose/build@actions | |
| name: Build test | |
| with: | |
| dir: test | |
| - uses: idaholab/moose/tests@actions | |
| name: Test moose test | |
| with: | |
| dir: test | |
| - uses: idaholab/moose/build@actions | |
| name: Build modules | |
| with: | |
| dir: modules | |
| args: all builds | |
| - uses: idaholab/moose/tests@actions | |
| name: Test modules | |
| with: | |
| dir: modules | |
| args: --use-subdir-exe | |
| - uses: idaholab/moose/build@actions | |
| name: Build unit | |
| with: | |
| dir: unit | |
| - uses: idaholab/moose/tests@actions | |
| name: Test unit | |
| with: | |
| dir: unit | |
| # | |
| # Clang min, with moose-dev-clang_min-mpich | |
| # | |
| clang_min: | |
| name: "Clang min" | |
| needs: | |
| - prepare | |
| - build_clang_min_mpich | |
| if: >- | |
| !cancelled() | |
| && contains(fromJSON('["success", "skipped"]'), needs.build_clang_min_mpich.result) | |
| runs-on: ubuntu-24.04 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| method: | |
| - opt | |
| - dbg | |
| env: | |
| METHOD: ${{ matrix.method }} | |
| container: | |
| image: "${{ needs.prepare.outputs.moose_dev_uri }}-clang_min-mpich:${{ needs.prepare.outputs.moose_dev_tag }}" | |
| options: --shm-size=1gb | |
| steps: | |
| - uses: idaholab/moose/checkout@actions | |
| name: Checkout | |
| with: | |
| pr_base_sha: ${{ needs.prepare.outputs.base_sha }} | |
| - uses: idaholab/moose/configure-moose@actions | |
| name: Configure with kokkos, mfem | |
| with: | |
| args: --with-kokkos --with-mfem | |
| - uses: idaholab/moose/build@actions | |
| name: Build test | |
| with: | |
| dir: test | |
| - uses: idaholab/moose/tests@actions | |
| name: Test moose test | |
| with: | |
| dir: test | |
| - uses: idaholab/moose/build@actions | |
| name: Build modules | |
| with: | |
| dir: modules | |
| args: all builds | |
| - uses: idaholab/moose/tests@actions | |
| name: Test modules | |
| with: | |
| dir: modules | |
| args: --use-subdir-exe | |
| - uses: idaholab/moose/build@actions | |
| name: Build unit | |
| with: | |
| dir: unit | |
| - uses: idaholab/moose/tests@actions | |
| name: Test unit | |
| with: | |
| dir: unit | |
| # | |
| # GCC min, with moose-dev-gcc_min-mpich | |
| # | |
| gcc_min: | |
| name: "GCC min" | |
| needs: | |
| - prepare | |
| - build_gcc_min_mpich | |
| if: >- | |
| !cancelled() | |
| && contains(fromJSON('["success", "skipped"]'), needs.build_gcc_min_mpich.result) | |
| runs-on: ubuntu-24.04 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| method: | |
| - opt | |
| - dbg | |
| env: | |
| METHOD: ${{ matrix.method }} | |
| container: | |
| image: "${{ needs.prepare.outputs.moose_dev_uri }}-gcc_min-mpich:${{ needs.prepare.outputs.moose_dev_tag }}" | |
| options: --shm-size=1gb | |
| steps: | |
| - uses: idaholab/moose/checkout@actions | |
| name: Checkout | |
| with: | |
| pr_base_sha: ${{ needs.prepare.outputs.base_sha }} | |
| - uses: idaholab/moose/configure-moose@actions | |
| name: Configure with kokkos, mfem | |
| with: | |
| args: --with-kokkos --with-mfem | |
| - uses: idaholab/moose/build@actions | |
| name: Build test | |
| with: | |
| dir: test | |
| - uses: idaholab/moose/tests@actions | |
| name: Test moose test | |
| with: | |
| dir: test | |
| - uses: idaholab/moose/build@actions | |
| name: Build modules | |
| with: | |
| dir: modules | |
| args: all builds | |
| - uses: idaholab/moose/tests@actions | |
| name: Test modules | |
| with: | |
| dir: modules | |
| args: --use-subdir-exe | |
| - uses: idaholab/moose/build@actions | |
| name: Build unit | |
| with: | |
| dir: unit | |
| - uses: idaholab/moose/tests@actions | |
| name: Test unit | |
| with: | |
| dir: unit | |
| # | |
| # Intel, with moose-dev-intel-mpich | |
| # | |
| intel: | |
| name: "Intel" | |
| needs: | |
| - prepare | |
| - build_intel_mpich | |
| if: >- | |
| !cancelled() | |
| && contains(fromJSON('["success", "skipped"]'), needs.build_intel_mpich.result) | |
| runs-on: ubuntu-24.04 | |
| steps: | |
| - uses: idaholab/moose/checkout@actions | |
| name: Checkout | |
| with: | |
| pr_base_sha: ${{ needs.prepare.outputs.base_sha }} | |
| - uses: idaholab/moose/configure-moose@actions | |
| name: Configure with kokkos, mfem | |
| with: | |
| args: --with-kokkos --with-mfem | |
| - uses: idaholab/moose/build@actions | |
| name: Build test | |
| with: | |
| dir: test | |
| - uses: idaholab/moose/build@actions | |
| name: Build unit | |
| with: | |
| dir: unit | |
| - uses: idaholab/moose/tests@actions | |
| name: Test unit | |
| with: | |
| dir: unit | |
| # | |
| # Heavy, with moose-dev-rocky8-mpich | |
| # | |
| heavy: | |
| name: "Heavy" | |
| needs: | |
| - prepare | |
| - build_rocky8_mpich | |
| if: >- | |
| !cancelled() | |
| && contains(fromJSON('["success", "skipped"]'), needs.build_rocky8_mpich.result) | |
| runs-on: ubuntu-24.04 | |
| container: | |
| image: "${{ needs.prepare.outputs.moose_dev_uri }}-rocky8-mpich:${{ needs.prepare.outputs.moose_dev_tag }}" | |
| options: --shm-size=1gb | |
| steps: | |
| - uses: idaholab/moose/checkout@actions | |
| name: Checkout | |
| with: | |
| pr_base_sha: ${{ needs.prepare.outputs.base_sha }} | |
| - uses: idaholab/moose/configure-moose@actions | |
| name: Configure with kokkos, libtorch, neml2, mfem | |
| with: | |
| args: --with-kokkos=cpu --with-libtorch --with-neml2 --with-mfem | |
| - uses: idaholab/moose/build@actions | |
| name: Build test | |
| with: | |
| dir: test | |
| - uses: idaholab/moose/tests@actions | |
| name: Test test --heavy | |
| with: | |
| dir: test | |
| args: --heavy | |
| - uses: idaholab/moose/build@actions | |
| name: Build modules | |
| with: | |
| dir: modules | |
| - uses: idaholab/moose/tests@actions | |
| name: Test modules --heavy | |
| with: | |
| dir: modules | |
| args: --heavy | |
| # | |
| # No optional, with moose-dev-rocky8-mpich | |
| # | |
| no_optional: | |
| name: "No optional" | |
| needs: | |
| - prepare | |
| - build_rocky8_mpich | |
| if: >- | |
| !cancelled() | |
| && contains(fromJSON('["success", "skipped"]'), needs.build_rocky8_mpich.result) | |
| runs-on: ubuntu-24.04 | |
| container: | |
| image: "${{ needs.prepare.outputs.moose_dev_uri }}-rocky8-mpich:${{ needs.prepare.outputs.moose_dev_tag }}" | |
| options: --shm-size=1gb | |
| steps: | |
| - uses: idaholab/moose/checkout@actions | |
| name: Checkout | |
| with: | |
| pr_base_sha: ${{ needs.prepare.outputs.base_sha }} | |
| - uses: idaholab/moose/build@actions | |
| name: Build test | |
| with: | |
| dir: test | |
| - uses: idaholab/moose/tests@actions | |
| name: Test test | |
| with: | |
| dir: test | |
| - uses: idaholab/moose/build@actions | |
| name: Build unit | |
| with: | |
| dir: unit | |
| - uses: idaholab/moose/tests@actions | |
| name: Test unit | |
| with: | |
| dir: unit | |
| - uses: idaholab/moose/build@actions | |
| name: Build modules | |
| with: | |
| dir: modules | |
| args: all builds | |
| - uses: idaholab/moose/tests@actions | |
| name: Test modules | |
| with: | |
| dir: modules | |
| args: --use-subdir-exe | |
| # | |
| # No unity, with moose-dev-rocky8-mpich | |
| # | |
| no_unity: | |
| name: "No unity" | |
| needs: | |
| - prepare | |
| - build_rocky8_mpich | |
| if: >- | |
| !cancelled() | |
| && contains(fromJSON('["success", "skipped"]'), needs.build_rocky8_mpich.result) | |
| runs-on: ubuntu-24.04 | |
| container: | |
| image: "${{ needs.prepare.outputs.moose_dev_uri }}-rocky8-mpich:${{ needs.prepare.outputs.moose_dev_tag }}" | |
| options: --shm-size=1gb | |
| env: | |
| MOOSE_UNITY: false | |
| steps: | |
| - uses: idaholab/moose/checkout@actions | |
| name: Checkout | |
| with: | |
| pr_base_sha: ${{ needs.prepare.outputs.base_sha }} | |
| - uses: idaholab/moose/build@actions | |
| name: Build test | |
| with: | |
| dir: test | |
| - uses: idaholab/moose/build@actions | |
| name: Build modules | |
| with: | |
| dir: modules | |
| # | |
| # Python, with moose-dev-rocky8-mpich | |
| # | |
| python: | |
| name: "Python" | |
| needs: | |
| - prepare | |
| - build_rocky8_mpich | |
| if: >- | |
| !cancelled() | |
| && contains(fromJSON('["success", "skipped"]'), needs.build_rocky8_mpich.result) | |
| runs-on: ubuntu-24.04 | |
| container: | |
| image: "${{ needs.prepare.outputs.moose_dev_uri }}-rocky8-mpich:${{ needs.prepare.outputs.moose_dev_tag }}" | |
| options: --shm-size=1gb | |
| steps: | |
| - uses: idaholab/moose/checkout@actions | |
| name: Checkout | |
| with: | |
| pr_base_sha: ${{ needs.prepare.outputs.base_sha }} | |
| - uses: idaholab/moose/build@actions | |
| name: Build test | |
| with: | |
| dir: test | |
| - uses: idaholab/moose/tests@actions | |
| name: Test python | |
| with: | |
| dir: python | |
| - uses: idaholab/moose/tests@actions | |
| name: Test scripts | |
| with: | |
| dir: scripts |