Skip to content

CI updates

CI updates #337

Workflow file for this run

# This is a CI workflow for the NCEPLIBS-ip project.
#
# This workflow builds with all developer options, including address
# sanitizer and code coverage.
#
# Ed Hartnett, 1/8/23
name: developer
on:
push:
branches:
- develop
pull_request:
branches:
- develop
jobs:
developer:
runs-on: ubuntu-latest
env:
FC: gfortran-11
CC: gcc-11
steps:
- name: Install Dependencies
run: |
sudo apt-get update
sudo apt-get install doxygen libopenblas-dev
python3 -m pip install gcovr
- name: checkout
uses: actions/checkout@v4
with:
path: ip
- name: build
run: |
cmake -S ip -B ip/build -DENABLE_DOCS=YES -DOPENMP=ON -DCMAKE_Fortran_FLAGS="-g -fprofile-abs-path -fprofile-arcs -ftest-coverage -O0 -fsanitize=address" -DCMAKE_C_FLAGS="-g -fprofile-abs-path -fprofile-arcs -ftest-coverage -O0 -fsanitize=address" -DCMAKE_BUILD_TYPE=Debug -DBUILD_SHARED_LIBS=ON -DBUILD_8=ON
cmake --build ip/build --parallel 2 --verbose
- name: test
run: ctest --test-dir ip/build -j2 --verbose --output-on-failure --rerun-failed
- name: run-gcovr
run: gcovr -r ip -v --html-details --exclude ip/tests --exclude ip/build/CMakeFiles --print-summary -o test-coverage.html
- name: upload-test-coverage
uses: actions/upload-artifact@v4
with:
name: ip-test-coverage
path: |
*.html
*.css
- uses: actions/upload-artifact@v4
with:
name: docs
path: |
ip/build/docs/html