Skip to content

Add code coverage to stdlib. #2194

Add code coverage to stdlib.

Add code coverage to stdlib. #2194

Workflow file for this run

name: fpm-deployment
on: [push, pull_request]
jobs:
deploy:
name: Run tests and deploys the fpm branches
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
include:
- os: ubuntu-latest
toolchain: {compiler: gcc, version: 13}
steps:
- name: Checkout code
uses: actions/[email protected]
- name: Set up Python 3.x
uses: actions/setup-python@v1
with:
python-version: 3.x
- name: Install requirements
run: pip install --upgrade -r config/requirements.txt
- uses: fortran-lang/setup-fortran@main
id: setup-fortran
with:
compiler: ${{ matrix.toolchain.compiler }}
version: ${{ matrix.toolchain.version }}
- name: Setup Fortran Package Manager
uses: fortran-lang/setup-fpm@v5
with:
fpm-version: 'v0.10.0'
- run: | # Just for deployment: create stdlib-fpm folder
python config/fypp_deployment.py --deploy_stdlib_fpm
- run: | # Just for deployment: create stdlib-fpm-ilp64 folder
python config/fypp_deployment.py --deploy_stdlib_fpm --with_ilp64
- run: | # Use fpm gnu ci to check xdp and qp
python config/fypp_deployment.py --with_xdp --with_qp
fpm test --profile release --flag '-DWITH_XDP -DWITH_QP'
# Update and deploy the f90 files generated by github-ci to the `stdlib-fpm` branch.
- name: Deploy 🚀
uses: JamesIves/[email protected]
if: github.event_name != 'pull_request'
with:
BRANCH: stdlib-fpm
FOLDER: stdlib-fpm
# Update and deploy the f90 files generated by github-ci to the `stdlib-fpm-ilp64` branch.
- name: Deploy with 64-bit integer support 🚀
uses: JamesIves/[email protected]
if: github.event_name != 'pull_request'
with:
BRANCH: stdlib-fpm-ilp64
FOLDER: stdlib-fpm-ilp64
coverage:
name: Generate and upload code coverage report
needs: deploy
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
include:
- os: ubuntu-latest
toolchain: {compiler: gcc, version: 13}
steps:
- name: Checkout code
uses: actions/[email protected]
with:
ref: stdlib-fpm
- uses: fortran-lang/setup-fortran@main
id: setup-fortran
with:
compiler: ${{ matrix.toolchain.compiler }}
version: ${{ matrix.toolchain.version }}
- name: Setup Fortran Package Manager
uses: fortran-lang/setup-fpm@v5
with:
fpm-version: 'v0.10.0'
- name: Prepare for code coverage
if: contains( matrix.os, 'ubuntu')
run: |
sudo apt-get install lcov
- name: Run tests to generate the coverage.
run: fpm test --profile release --flag '-DWITH_XDP -DWITH_QP -coverage'
- name: Create coverage report
run: |
mkdir -p ${{ env.COV_DIR }}
mv ./build/gfortran_*/*/* ${{ env.COV_DIR }}
lcov --capture --initial --base-directory . --directory ${{ env.COV_DIR }} --output-file ${{ env.COV_DIR }}/coverage.base --ignore-errors mismatch
lcov --capture --base-directory . --directory ${{ env.COV_DIR }} --output-file ${{ env.COV_DIR }}/coverage.capture --ignore-errors mismatch
lcov --add-tracefile ${{ env.COV_DIR }}/coverage.base --add-tracefile ${{ env.COV_DIR }}/coverage.capture --output-file ${{ env.COV_DIR }}/coverage.info --ignore-errors mismatch
env:
COV_DIR: build/coverage
- name: Upload coverage report
uses: codecov/codecov-action@v4
with:
token: ${{ secrets.CODECOV_TOKEN }}
files: build/coverage/coverage.info