Skip to content

Add coverage pipeline #7

Add coverage pipeline

Add coverage pipeline #7

Workflow file for this run

name: coverage
on:
push:
branches:
- master
- dev
- 144-monitor-test-coverage
workflow_dispatch:
jobs:
coverage-job:
runs-on: ${{ matrix.os }}
defaults:
run:
shell: bash -l {0}
strategy:
matrix:
os: [ubuntu-latest]
python-version: ["3.12"]
env:
CONDA_FILE: environment.yml
steps:
- uses: actions/checkout@v4
- name: Get Date
id: get-date
run: echo "today=$(/bin/date -u '+%Y%m%d')" >> $GITHUB_OUTPUT
shell: bash
- name: Setup Conda Environment
uses: conda-incubator/setup-miniconda@v3
with:
miniforge-version: latest
use-mamba: true
activate-environment: cadet-process
channels: conda-forge,
- name: Cache conda
uses: actions/cache@v4
env:
# Increase this value to reset cache if environment.yml has not changed
CACHE_NUMBER: 0
with:
path: ${{ env.CONDA }}/envs
key: ${{ matrix.os }}-python_${{ matrix.python-version }}-${{ steps.get-date.outputs.today }}-${{ hashFiles(env.CONDA_FILE) }}-${{ env.CACHE_NUMBER }}
- name: Update environment
run: |
mamba install "setuptools>=69" "pip>=24"
mamba install python=${{ matrix.python-version }}
echo "python=${{ matrix.python-version }}.*" > $CONDA_PREFIX/conda-meta/pinned
mamba env update -n cadet-process -f ${{ env.CONDA_FILE }}
if: steps.cache.outputs.cache-hit != 'true'
- name: Install
run: |
pip install -e ./[testing,coverage]
- name: Restore Testmon Data
uses: actions/cache@v4
with:
path: .testmondata
key: testmon-${{ github.ref }}-${{ hashFiles('**/*.py') }}
restore-keys: |
testmon-${{ github.ref }}-
- name: Coverage Run
continue-on-error: true
run: |
coverage run -m pytest tests --testmon --durations=10
- name: Coverage Result
if: always()
run: |
coverage report -m
- name: Save Testmon Data
if: always()
uses: actions/cache@v4
with:
path: .testmondata
key: testmon-${{ github.ref }}-${{ hashFiles('**/*.py') }}