Skip to content

Codecov Scan

Codecov Scan #132

Workflow file for this run

name: 'Codecov Scan'
on:
schedule:
- cron: '24 0 * * *'
pull_request:
branches: [ main ]
workflow_dispatch:
env:
# CTest
CT_OPTS: "--timeout 300 --output-on-failure"
# MPI
OMPI_ALLOW_RUN_AS_ROOT: 1
OMPI_ALLOW_RUN_AS_ROOT_CONFIRM: 1
OMPI_MCA_rmaps_base_oversubscribe: 1
jobs:
tests:
name: 'Build and Test'
runs-on: ubuntu-latest
container:
image: ghcr.io/arcaneframework/arcane_ubuntu-2404:gcc-14_full_release_latest
steps:
# On place la source à la racine pour éviter
# un sous-répertoire en plus dans Codecov.
- name: Define environment paths
shell: bash
run: |
echo "SOURCE_DIR=${GITHUB_WORKSPACE}" >> $GITHUB_ENV
echo "BUILD_DIR=${GITHUB_WORKSPACE}/build" >> $GITHUB_ENV
echo "CT_RESULT_DIR=${GITHUB_WORKSPACE}/test" >> $GITHUB_ENV
- name: Checkout repo
uses: actions/checkout@v4
with:
path: ${{ env.SOURCE_DIR }}
- name: Configure
shell: bash
run: |
cmake \
-S ${{ env.SOURCE_DIR }} \
-B ${{ env.BUILD_DIR }} \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_CXX_FLAGS_RELEASE="-O2 -g --coverage -fprofile-abs-path -ftest-coverage" \
-GNinja
- name: Build
shell: bash
run: |
cmake --build ${{ env.BUILD_DIR }}
- name: Test
shell: bash
run: |
mkdir -p ${{ env.CT_RESULT_DIR }}
ctest --test-dir ${{ env.BUILD_DIR }} --output-junit ${{ env.CT_RESULT_DIR }}/results.xml ${{ env.CT_OPTS }}
- name: Apply coverage
shell: bash
continue-on-error: true
run: |
gcov -p $(find . -name "*.gcno" -o -name "*.gcda")
- name: Remove gcov files for generated axl .h
shell: bash
run: |
rm -v -f *_axl.h.gcov
- name: Upload coverage files to Codecov
uses: codecov/codecov-action@v4
env:
CODECOV_TOKEN : ${{ secrets.CODECOV_TOKEN }}
with:
verbose: true
fail_ci_if_error: true
- name: Upload test artifact
uses: actions/upload-artifact@v4
if: failure()
with:
name: test-all-modules-artifact
path: ${{ env.CT_RESULT_DIR }}
retention-days: 7