test python conversion #139
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: 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/lib/x86_64-linux-gnu/openmpi/include/openmpi/ompi/mpi/cxx/*\;/usr/include/*" | |
# !!!!! I have tried everything and the report still includes cxx | |
# /usr/lib/x86_64-linux-gnu/openmpi/include/openmpi/ompi/mpi | |
# try that as a file prefix | |
#Run meshfields for coverage 162 | |
- 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 | |
# Generate a report readable from console ------------------------------------- | |
# Convert .info to .xml | |
## checkout repo | |
- name: Lcov-to-cobertuba Checkout repo | |
uses: actions/checkout@v2 | |
with: | |
repository: eriwen/lcov-to-cobertura-xml # I am concerned about .dat vs .info | |
path: lcov_cobertuba | |
## set up python and compile repo | |
- name: setup python | |
uses: actions/setup-python@v2 | |
with: | |
python-version: '3.11' # install the python version needed | |
- name: install python packages | |
run: | | |
python -m pip install --upgrade pip | |
pip install -r requirements.txt | |
## run conversion | |
- name: execute py script # !!!!! we're giving it an info file and it asks for .dat, this won't work | |
run: python lcov_cobertura.py coverage.info --base-dir ${{runner.workspace}}/build-meshFields --output ${{runner.workspace}}/build-meshFields/coverage.xml | |
# Test to make sure the file is created | |
- name: Upload xml test | |
uses: actions/upload-artifact@v3 | |
with: | |
name: coverageXML | |
path: ${{runner.workspace}}/build-meshFields/coverage.xml | |
# Output to console | |
- name: Code Coverage Summary Report | |
uses: irongut/[email protected] | |
with: | |
filename: coverage.xml | |