Skip to content

report generator test #127

report generator test

report generator test #127

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
# !!!!! exclude -D statements needed.
- 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
- 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
- name: Setup .NET Core # Required to execute ReportGenerator
uses: actions/setup-dotnet@v3
with:
dotnet-version: 6.x
dotnet-quality: 'ga'
- name: ReportGenerator
uses: danielpalme/[email protected]
with: # !!!!! what do we call the lcov report?
reports: '${{runner.workspace}}/build-meshFields/coverage/*' # REQUIRED # The coverage reports that should be parsed (separated by semicolon). Globbing is supported.
targetdir: '${{runner.workspace}}/coverageReport' # REQUIRED # The directory where the generated report should be saved.
reporttypes: Html_Dark;HtmlSummary # The output formats and scope (separated by semicolon) Values: Badges, Clover, Cobertura, OpenCover, CsvSummary, Html, Html_Dark, Html_Light, Html_BlueRed, HtmlChart, HtmlInline, HtmlInline_AzurePipelines, HtmlInline_AzurePipelines_Dark, HtmlInline_AzurePipelines_Light, HtmlSummary, JsonSummary, Latex, LatexSummary, lcov, MarkdownSummary, MarkdownSummaryGithub, MarkdownDeltaSummary, MHtml, PngChart, SonarQube, TeamCitySummary, TextSummary, TextDeltaSummary, Xml, XmlSummary
#sourcedirs: '' # Optional directories which contain the corresponding source code (separated by semicolon). The source directories are used if coverage report contains classes without path information.
#historydir: '' # Optional directory for storing persistent coverage information. Can be used in future reports to show coverage evolution.
#plugins: '' # Optional plugin files for custom reports or custom history storage (separated by semicolon).
#assemblyfilters: '+*' # Optional list of assemblies that should be included or excluded in the report. Exclusion filters take precedence over inclusion filters. Wildcards are allowed.
#classfilters: '+*' # Optional list of classes that should be included or excluded in the report. Exclusion filters take precedence over inclusion filters. Wildcards are allowed.
#filefilters: '+*' # Optional list of files that should be included or excluded in the report. Exclusion filters take precedence over inclusion filters. Wildcards are allowed.
#verbosity: 'Info' # The verbosity level of the log messages. Values: Verbose, Info, Warning, Error, Off
#title: '' # Optional title.
#tag: '${{ github.run_number }}_${{ github.run_id }}' # Optional tag or build version.
#license: '' # Optional license for PRO version. Get your license here: https://reportgenerator.io/pro
#customSettings: '' # Optional custom settings (separated by semicolon). See: https://github.com/danielpalme/ReportGenerator/wiki/Settings.
#toolpath: 'reportgeneratortool' # Default directory for installing the dotnet tool.
- name: Upload coverage report artifact
uses: actions/[email protected]
with:
name: coverageReport # Artifact name
path: ${{runner.workspace}}/coverageReport # Directory containing files to upload