report generator test #127
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 | |
# !!!!! 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 |