Skip to content

exclude statements take 6 #133

exclude statements take 6

exclude statements take 6 #133

Workflow file for this run

name: build-test-analyze
on:
push:
branches: [ main, pw/lcovGithubAction ]
pull_request:
branches: [ main ]
schedule:
- cron: '23 14 * * 3'
jobs:
buildTestAnalyze:
# See: https://docs.github.com/en/free-pro-team@latest/actions/learn-github-actions/managing-complex-workflows#using-a-build-matrix
runs-on: ubuntu-latest
strategy:
matrix:
compiler: [g++]
language: ['cpp']
build_type: [Debug]
# Permissions needed for codeql analysis
# I think this is the minimal set needed for a public repo (https://github.com/github/codeql-action/pull/689).
permissions:
security-events: write
steps:
- name: Install CMake
run: |
sudo apt-get update -yq
sudo apt-get install -yq cmake
cmake --version
- name: Install additional dependencies
run: |
sudo apt-get install doxygen
sudo apt-get install graphviz
sudo apt-get install libhdf5-mpi-dev
## Kokkos
- name: Kokkos Checkout repo
uses: actions/checkout@v2
with:
repository: kokkos/kokkos
path: kokkos
ref: develop
- name: Kokkos Configure CMake
shell: bash
run: cmake -S $GITHUB_WORKSPACE/kokkos -B ${{runner.workspace}}/build-kokkos
-DCMAKE_CXX_COMPILER=${{ matrix.compiler }}
-DKokkos_ENABLE_SERIAL=ON
-DKokkos_ENABLE_OPENMP=OFF
-DKokkos_ENABLE_DEBUG=ON
-DCMAKE_INSTALL_PREFIX=${{runner.workspace}}/build-kokkos/install
- name: Kokkos Build
shell: bash
run: cmake --build ${{runner.workspace}}/build-kokkos --parallel 2 --target install
## Omegah
- name: Omega_h Checkout repo
uses: actions/checkout@v2
with:
repository: sandialabs/omega_h
path: omegah
- name: Omega_h Configure CMake
shell: bash
run: cmake -S $GITHUB_WORKSPACE/omegah -B ${{runner.workspace}}/build-omegah
-DCMAKE_CXX_COMPILER=${{ matrix.compiler }}
-DBUILD_SHARED_LIBS=OFF
-DOmega_h_USE_Kokkos=ON
-DKokkos_PREFIX=${{runner.workspace}}/build-kokkos/install/lib/cmake
-DOmega_h_USE_MPI=OFF
-DCMAKE_INSTALL_PREFIX=${{runner.workspace}}/build-omegah/install
- name: Omega_h Build
shell: bash
run: cmake --build ${{runner.workspace}}/build-omegah --parallel 2 --target install
## Cabana
- name: Cabana Checkout repo
uses: actions/checkout@v2
with:
repository: ECP-copa/Cabana
path: cabana
- name: Cabana Configure CMake
shell: bash
run: cmake -S $GITHUB_WORKSPACE/cabana -B ${{runner.workspace}}/build-cabana
-DCMAKE_CXX_COMPILER=${{matrix.compiler}}
-DCMAKE_BUILD_TYPE=${{matrix.build_type}}
-DKokkos_DIR=${{runner.workspace}}/build-kokkos/install/lib/cmake/Kokkos
-DCabana_ENABLE_MPI=OFF
-DCabana_ENABLE_CAJITA=OFF
-DCabana_ENABLE_TESTING=OFF
-DCabana_ENABLE_EXAMPLES=OFF
-DCMAKE_INSTALL_PREFIX=${{runner.workspace}}/build-cabana/install
- name: Cabana Build
shell: bash
run: cmake --build ${{runner.workspace}}/build-cabana --parallel 2 --target install
## MeshFields
- name: MeshFields Checkout repo
uses: actions/checkout@v2
with:
repository: SCOREC/meshFields
path: meshFields
- name: Install lcov 1.16
shell: bash
run: sudo apt-get install lcov
- name: MeshFields Configure CMake
shell: bash
run: cmake -S $GITHUB_WORKSPACE/meshFields -B ${{runner.workspace}}/build-meshFields
-D meshFields_ENABLE_COVERAGE_BUILD=ON
-D CMAKE_BUILD_TYPE=${{matrix.build_type}}
-DKokkos_DIR=${{runner.workspace}}/build-kokkos/install/lib/cmake/Kokkos
-DCabana_DIR=${{runner.workspace}}/build-cabana/install/lib/cmake/Cabana
-DOmega_h_DIR=${{runner.workspace}}/build-omegah/install/lib/cmake/Omega_h
-DCMAKE_INSTALL_PREFIX=${{runner.workspace}}/build-meshFields/install
-D CABANA_INSTALL_DIR="\${{runner.workspace}}/build-cabana/*"
-D KOKKOS_INSTALL_DIR="\${{runner.workspace}}/build-kokkos/*"
-D OMEGAH_INSTALL_DIR="\${{runner.workspace}}/build-omegah/*"
-D LCOV_SYSTEM_EXCLUDE_PATHS="/usr/include/*\;/cxx/*"
- name: Run MeshFields for coverage
working-directory: ${{runner.workspace}}/build-meshFields
shell: bash
run: |
make
make coverage
#Uploads coverage directory with lcov generated HTML
- name: Upload coverage artifact
uses: actions/upload-artifact@v3
with:
name: coverage
path: ${{runner.workspace}}/build-meshFields/coverage