Skip to content

Codecov Scan

Codecov Scan #187

Workflow file for this run

name: Codecov Scan
on:
schedule:
- cron: '24 0 * * *'
pull_request:
branches: [ main, dev/cea ]
paths-ignore:
- '**.css'
- '**.dox'
- '**.doxyfile'
- '**.geo'
- '**.goto'
- '**.html'
- '**.jpg'
- '**.js'
- '**.markdown'
- '**.md'
- '**.odg'
- '**.old'
- '**.png'
- '**.py'
- '**.samples'
- '**.svg'
- '**.webp'
- '**.yml'
workflow_dispatch:
concurrency:
group: ${{ github.workflow }}-${{ github.ref || github.run_id }}
cancel-in-progress: true
env:
# CTest
CT_OPTS: "--timeout 600 --output-on-failure"
EXCLUDED_TESTS: '^.*(mumps).*$'
EXCLUDED_TESTS_WITH_LABELS: 'LARGE_HYBRID'
# OpenMPI
OMPI_ALLOW_RUN_AS_ROOT: 1
OMPI_ALLOW_RUN_AS_ROOT_CONFIRM: 1
OMPI_MCA_rmaps_base_oversubscribe : true
# Remove test output file after run to reduce disk usage
ARCANE_TEST_CLEANUP_AFTER_RUN: 1
jobs:
build:
name: Codecov
runs-on: ubuntu-latest
container:
image: ghcr.io/arcaneframework/ubuntu-2404:gcc-13_full_20240717
steps:
- name: Display CPU infos
shell: bash
run: |
cat /proc/cpuinfo
- name: Display disks infos
shell: bash
run: |
df -h
# 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 "CCACHE_DIR=${GITHUB_WORKSPACE}/ccache" >> $GITHUB_ENV
echo "LOG_DIR=${GITHUB_WORKSPACE}/log" >> $GITHUB_ENV
echo "CT_RESULT_DIR=${GITHUB_WORKSPACE}/test" >> $GITHUB_ENV
- name: Set C++ compiler and default MPI
shell: bash
run: |
source /root/scripts/use_openmpi.sh
source /root/scripts/use_gcc-13.sh
- name: Get date
shell: bash
run: echo "m_date=$(/bin/date -u '+%Y%m%d%H%M%S')" >> $GITHUB_ENV
- name: Checkout framework
uses: actions/checkout@v4
with:
path: ${{ env.SOURCE_DIR }}
submodules: true
- name: Get cache for ccache tool
uses: actions/cache@v4
with:
path: ${{env.CCACHE_DIR}}
key: codecov-${{ env.m_date }}-${{ github.run_number }}
restore-keys: codecov-
- name: Build framework
uses: arcaneframework/gh_actions/build_install_framework@v2
with:
source_dir: ${{ env.SOURCE_DIR }}
build_dir: ${{ env.BUILD_DIR }}
log_dir: ${{ env.LOG_DIR }}
cache_dir: ${{ env.CCACHE_DIR }}
max_size_cache_dir: 1G
ccache_debug_mode: false
cmake_additionnal_args: '-DCMAKE_CXX_FLAGS_RELEASE="-O2 -g"
-DARCCORE_CXX_STANDARD=20
-DARCCORE_ENABLE_CODE_COVERAGE=ON
-DARCANE_ENABLE_DOTNET_PYTHON_WRAPPER=ON
-DARCANE_DISABLE_PERFCOUNTER_TESTS=ON
-DARCANE_DISABLE_HYODA=TRUE
-DCMAKE_DISABLE_FIND_PACKAGE_Trilinos=ON
-DALIEN_BUILD_COMPONENT=all
-DALIEN_PLUGIN_HYPRE=ON
-DALIEN_PLUGIN_PETSC=ON
-DGFORTRAN_LIBRARY=/usr/lib/gcc/x86_64-linux-gnu/13/libgfortran.so'
type_build: 'Release'
compilo: 'gcc'
verbose: true
with_cuda: false
with_samples: false
- name: Upload failure artifact
if: failure()
uses: actions/upload-artifact@v4
with:
name: codecov-failure_config_build-artifact
path: ${{ env.LOG_DIR }}
retention-days: 7
- name: Display disks infos
shell: bash
run: |
df -h
- name: Test
shell: bash
run: |
mkdir -p ${{ env.CT_RESULT_DIR }}
ARCANE_CHECK=1 ctest --test-dir ${{ env.BUILD_DIR }} --output-junit ${{ env.CT_RESULT_DIR }}/results.xml ${{ env.CT_OPTS }} -E '${{ env.EXCLUDED_TESTS }}' -LE '${{ env.EXCLUDED_TESTS_WITH_LABELS }}'
- name: Display disks infos
shell: bash
run: |
df -h
- 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 and generated wrap files
shell: bash
run: |
rm -v -f *_axl.h.gcov *_wrap.*.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: codecov-test-artifact
path: ${{ env.CT_RESULT_DIR }}
retention-days: 7