use images from docker_base_images repository #223
Workflow file for this run
This file contains 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: ShivaCI | |
on: | |
push: | |
branches: [ "main" ] | |
pull_request: | |
workflow_dispatch: | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref }} | |
cancel-in-progress: true | |
jobs: | |
get_docker_image_tag_hash: | |
runs-on: ubuntu-22.04 | |
outputs: | |
DOCKER_IMAGE_TAG_HASH: ${{ steps.extract_docker_image_tag_hash.outputs.DOCKER_IMAGE_TAG_HASH }} | |
steps: | |
- name: Checkout .devcontainer/devcontainer.json | |
uses: actions/[email protected] | |
with: | |
sparse-checkout: | | |
.devcontainer/devcontainer.json | |
sparse-checkout-cone-mode: false | |
submodules: false | |
lfs: false | |
fetch-depth: 1 | |
- name: Extract docker image tag hash | |
id: extract_docker_image_tag_hash | |
run: | | |
echo "DOCKER_IMAGE_TAG_HASH=$(jq '.build.args.docker_image_tag_hash' -r .devcontainer/devcontainer.json)" >> "$GITHUB_OUTPUT" | |
# code_style: | |
# needs: [check_pull_request_is_not_a_draft] | |
# runs-on: ubuntu-22.04 | |
# steps: | |
# - name: Checkout Repository | |
# uses: actions/[email protected] | |
# with: | |
# submodules: true | |
# lfs: false | |
# - name: Check style | |
# env: | |
# DOCKER_REPOSITORY: geosx/ubuntu20.04-gcc9 | |
# CMAKE_BUILD_TYPE: Release | |
# BUILD_AND_TEST_ARGS: --test-code-style | |
# run: ./scripts/ci_build_and_test.sh | |
doxygen_check: | |
runs-on: ubuntu-22.04 | |
needs: | |
- get_docker_image_tag_hash | |
steps: | |
- name: Checkout Repository | |
uses: actions/[email protected] | |
with: | |
submodules: true | |
lfs: false | |
- name: Check doxygen | |
env: | |
DOCKER_REPOSITORY: geosx/ubuntu:22.04-${{ needs.get_docker_image_tag_hash.outputs.DOCKER_IMAGE_TAG_HASH }} | |
HOST_CONFIG: hostconfigs/environment.cmake | |
CMAKE_CXX_COMPILER: /usr/bin/clang++ | |
CMAKE_C_COMPILER: /usr/bin/clang | |
CMAKE_BUILD_TYPE: Release | |
BUILD_AND_TEST_ARGS: --test-doxygen | |
run: ./scripts/ci_build_and_test.sh | |
code_checks: | |
runs-on: ubuntu-22.04 | |
needs: | |
- get_docker_image_tag_hash | |
steps: | |
- name: Checkout Repository | |
uses: actions/[email protected] | |
with: | |
submodules: true | |
lfs: false | |
- name: code_checks | |
env: | |
DOCKER_REPOSITORY: geosx/ubuntu:22.04-${{ needs.get_docker_image_tag_hash.outputs.DOCKER_IMAGE_TAG_HASH }} | |
HOST_CONFIG: hostconfigs/environment.cmake | |
CMAKE_CXX_COMPILER: /usr/bin/clang++ | |
CMAKE_C_COMPILER: /usr/bin/clang | |
CMAKE_BUILD_TYPE: Release | |
BUILD_AND_TEST_ARGS: --code-checks | |
run: ./scripts/ci_build_and_test.sh | |
linux_builds: | |
name: ${{matrix.name}} | |
runs-on: ${{matrix.RUNS_ON}} | |
needs: | |
- get_docker_image_tag_hash | |
strategy: | |
# Set fail-fast to false to ensure that feedback is delivered for all matrix combinations. Consider changing this to true when your workflow is stable. | |
fail-fast: false | |
matrix: | |
include: | |
- name: RHEL8.9-clang17-dbg (ubi8.9, clang-17.0.6, Debug) | |
DOCKER_REPOSITORY: geosx/ubi:8.9 | |
RUNS_ON: ubuntu-22.04 | |
CMAKE_CXX_COMPILER: clang++ | |
CMAKE_C_COMPILER: clang | |
CMAKE_BUILD_TYPE: Debug | |
- name: RHEL8.9-clang17-rel (ubi8.9, clang-17.0.6, Release) | |
DOCKER_REPOSITORY: geosx/ubi:8.9 | |
RUNS_ON: ubuntu-22.04 | |
CMAKE_CXX_COMPILER: clang++ | |
CMAKE_C_COMPILER: clang | |
CMAKE_BUILD_TYPE: Release | |
- name: RHEL8.9-gcc13-dbg (ubi8.9, gcc 13.2.1, Debug) | |
DOCKER_REPOSITORY: geosx/ubi:8.9 | |
RUNS_ON: ubuntu-22.04 | |
CMAKE_CXX_COMPILER: /opt/rh/gcc-toolset-13/root/bin/g++ | |
CMAKE_C_COMPILER: /opt/rh/gcc-toolset-13/root/bin/gcc | |
CMAKE_BUILD_TYPE: Debug | |
- name: RHEL8.9-gcc13-rel (ubi8.9, gcc 13.2.1, Release) | |
DOCKER_REPOSITORY: geosx/ubi:8.9 | |
RUNS_ON: ubuntu-22.04 | |
CMAKE_CXX_COMPILER: /opt/rh/gcc-toolset-13/root/bin/g++ | |
CMAKE_C_COMPILER: /opt/rh/gcc-toolset-13/root/bin/gcc | |
CMAKE_BUILD_TYPE: Release | |
- name: ubuntu22-gcc11-rel (ubuntu-22, gcc 11.4.0, Release) | |
DOCKER_REPOSITORY: geosx/ubuntu:22.04 | |
RUNS_ON: ubuntu-22.04 | |
CMAKE_CXX_COMPILER: /usr/bin/g++ | |
CMAKE_C_COMPILER: /usr/bin/gcc | |
CMAKE_BUILD_TYPE: Release | |
- name: ubuntu22-clang14-rel (ubuntu-22, clang-14.0.0, Release) | |
DOCKER_REPOSITORY: geosx/ubuntu:22.04 | |
RUNS_ON: ubuntu-22.04 | |
CMAKE_CXX_COMPILER: /usr/bin/clang++ | |
CMAKE_C_COMPILER: /usr/bin/clang | |
CMAKE_BUILD_TYPE: Release | |
- name: ubuntu22-clang14-dbg (ubuntu-22, clang-14.0.0, Debug) | |
DOCKER_REPOSITORY: geosx/ubuntu:22.04 | |
RUNS_ON: ubuntu-22.04 | |
CMAKE_CXX_COMPILER: /usr/bin/clang++ | |
CMAKE_C_COMPILER: /usr/bin/clang | |
CMAKE_BUILD_TYPE: Debug | |
- name: ubuntu22-gcc11-dbg (ubuntu-22, gcc 11.4.0, Release) | |
DOCKER_REPOSITORY: geosx/ubuntu:22.04 | |
RUNS_ON: ubuntu-22.04 | |
CMAKE_CXX_COMPILER: /usr/bin/g++ | |
CMAKE_C_COMPILER: /usr/bin/gcc | |
CMAKE_BUILD_TYPE: Debug | |
- name: ubuntu22-gcc11-cuda11-rel (ubuntu-22, gcc 11.4.0, cuda-11.8.0, Release) | |
DOCKER_REPOSITORY: geosx/ubuntu:22.04-cuda11.8 | |
RUNS_ON: streak2 | |
CMAKE_CXX_COMPILER: /usr/bin/g++ | |
CMAKE_C_COMPILER: /usr/bin/gcc | |
CMAKE_BUILD_TYPE: Release | |
ENABLE_CUDA: ON | |
CMAKE_CUDA_ARCHITECTURES: "86" | |
NPROC: 4 | |
DOCKER_RUN_ARGS: "--cpus=4 --memory=64g --runtime=nvidia --gpus all" | |
- name: ubuntu22-gcc11-cuda11-dbg (ubuntu-22, gcc 11.4.0, cuda-11.8.0, Debug) | |
DOCKER_REPOSITORY: geosx/ubuntu:22.04-cuda11.8 | |
RUNS_ON: streak2 | |
CMAKE_CXX_COMPILER: /usr/bin/g++ | |
CMAKE_C_COMPILER: /usr/bin/gcc | |
CMAKE_BUILD_TYPE: Debug | |
ENABLE_CUDA: ON | |
CMAKE_CUDA_ARCHITECTURES: "86" | |
NPROC: 4 | |
DOCKER_RUN_ARGS: "--cpus=4 --memory=64g --runtime=nvidia --gpus all" | |
- name: ubuntu22-clang14-cuda11-rel (ubuntu-22, clang-14.0.0, cuda-11.8.0, Release) | |
DOCKER_REPOSITORY: geosx/ubuntu:22.04-cuda11.8 | |
RUNS_ON: streak2 | |
CMAKE_CXX_COMPILER: /usr/bin/clang++ | |
CMAKE_C_COMPILER: /usr/bin/clang | |
CMAKE_BUILD_TYPE: Release | |
ENABLE_CUDA: ON | |
CMAKE_CUDA_ARCHITECTURES: "86" | |
NPROC: 4 | |
DOCKER_RUN_ARGS: "--cpus=4 --memory=64g --runtime=nvidia --gpus all" | |
- name: ubuntu22-clang14-cuda11-dbg (ubuntu-22, clang-14.0.0, cuda-11.8.0, Debug) | |
DOCKER_REPOSITORY: geosx/ubuntu:22.04-cuda11.8 | |
RUNS_ON: streak2 | |
CMAKE_CXX_COMPILER: /usr/bin/clang++ | |
CMAKE_C_COMPILER: /usr/bin/clang | |
CMAKE_BUILD_TYPE: Debug | |
ENABLE_CUDA: ON | |
CMAKE_CUDA_ARCHITECTURES: "86" | |
NPROC: 4 | |
DOCKER_RUN_ARGS: "--cpus=4 --memory=64g --runtime=nvidia --gpus all" | |
- name: RHEL8.9-clang17-cuda12-rel (ubi8.9, clang-17.0.6, cuda-12.4.1, Release) | |
DOCKER_REPOSITORY: geosx/ubi:8.9-cuda12.4 | |
RUNS_ON: streak2 | |
CMAKE_CXX_COMPILER: clang++ | |
CMAKE_C_COMPILER: clang | |
CMAKE_BUILD_TYPE: Release | |
ENABLE_CUDA: ON | |
CMAKE_CUDA_ARCHITECTURES: "86" | |
NPROC: 4 | |
DOCKER_RUN_ARGS: "--cpus=4 --memory=64g --runtime=nvidia --gpus all" | |
- name: RHEL8.9-gcc13-cuda12-rel (ubi8.8, gcc 13.2.1, cuda-12.4.1, Release) | |
DOCKER_REPOSITORY: geosx/ubi:8.9-cuda12.4 | |
RUNS_ON: streak2 | |
CMAKE_CXX_COMPILER: /opt/rh/gcc-toolset-13/root/bin/g++ | |
CMAKE_C_COMPILER: /opt/rh/gcc-toolset-13/root/bin/gcc | |
CMAKE_BUILD_TYPE: Release | |
ENABLE_CUDA: ON | |
CMAKE_CUDA_ARCHITECTURES: "86" | |
NPROC: 4 | |
DOCKER_RUN_ARGS: "--cpus=4 --memory=64g --runtime=nvidia --gpus all" | |
steps: | |
- name: Checkout Repository | |
uses: actions/[email protected] | |
with: | |
submodules: true | |
lfs: false | |
- name: Print environment | |
run: printenv | |
- name: Build and test | |
env: | |
DOCKER_REPOSITORY: ${{ matrix.DOCKER_REPOSITORY }}-${{ needs.get_docker_image_tag_hash.outputs.DOCKER_IMAGE_TAG_HASH }} | |
CMAKE_CXX_COMPILER: ${{ matrix.CMAKE_CXX_COMPILER }} | |
CMAKE_C_COMPILER: ${{ matrix.CMAKE_C_COMPILER }} | |
CMAKE_BUILD_TYPE: ${{ matrix.CMAKE_BUILD_TYPE }} | |
ENABLE_CUDA: ${{ matrix.ENABLE_CUDA }} | |
CMAKE_CUDA_ARCHITECTURES: ${{ matrix.CMAKE_CUDA_ARCHITECTURES }} | |
NPROC: ${{ matrix.NPROC }} | |
BUILD_AND_TEST_ARGS: ${{ matrix.BUILD_AND_TEST_ARGS }} --build-exe | |
DOCKER_RUN_ARGS: ${{ matrix.DOCKER_RUN_ARGS }} | |
HOST_CONFIG: hostconfigs/environment.cmake | |
run: ./scripts/ci_build_and_test.sh | |
code_coverage: | |
runs-on: ubuntu-22.04 | |
needs: | |
- get_docker_image_tag_hash | |
steps: | |
- name: Checkout Repository | |
uses: actions/[email protected] | |
with: | |
submodules: true | |
lfs: false | |
- name: run code coverage | |
env: | |
DOCKER_REPOSITORY: geosx/ubuntu:22.04-${{ needs.get_docker_image_tag_hash.outputs.DOCKER_IMAGE_TAG_HASH }} | |
HOST_CONFIG: hostconfigs/environment.cmake | |
CMAKE_CXX_COMPILER: /usr/bin/g++ | |
CMAKE_C_COMPILER: /usr/bin/gcc | |
CMAKE_BUILD_TYPE: Debug | |
BUILD_AND_TEST_ARGS: "--build-exe --code-coverage" | |
run: ./scripts/ci_build_and_test.sh | |
- name: Upload coverage reports to Codecov | |
uses: codecov/codecov-action@v3 | |
with: | |
files: shiva_coverage.info.cleaned | |
fail_ci_if_error: true | |
env: | |
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} | |
check_that_all_jobs_succeeded: | |
runs-on: ubuntu-22.04 | |
needs: | |
- get_docker_image_tag_hash | |
- linux_builds | |
- doxygen_check | |
- code_checks | |
if: ${{ always() }} | |
env: | |
RETURN_VAL: | | |
${{ | |
needs.linux_builds.result == 'success' && | |
needs.doxygen_check.result == 'success' && | |
needs.code_checks.result == 'success' | |
}} | |
steps: | |
- name: PR Success | |
if: ${{ contains(env.RETURN_VAL, 'true') }} | |
run: "true" | |
- name: PR Failure | |
if: ${{ contains(env.RETURN_VAL, 'false') }} | |
run: "false" |