Skip to content

CI

CI #1602

Workflow file for this run

name: CI
on:
# GitHub has started calling new repo's first branch "main" https://github.com/github/renaming
# Existing codes likely still have "master" as the primary branch
# Both are tracked here to keep legacy and new codes working
push:
branches:
- '**'
pull_request:
branches:
- '**'
schedule:
# Nightly tests run on master by default:
# Scheduled workflows run on the latest commit on the default or base branch.
# (from https://help.github.com/en/actions/reference/events-that-trigger-workflows#scheduled-events-schedule)
- cron: "0 0 * * *"
workflow_dispatch:
inputs:
CACHE_NUMBER:
type: number
default: 0
RUN_TESTS:
type: boolean
default: true
jobs:
test:
name: Test on ${{ matrix.os }}, Python ${{ matrix.python-version }}
runs-on: ${{ matrix.os }}
strategy:
matrix:
# os: [macOS-latest, ubuntu-latest]
os: [ubuntu-latest]
python-version: [3.11]
include:
- os: ubuntu-latest
label: linux-64
# prefix: /usr/share/miniconda3/envs/openmm7.6
environment-file: devtools/conda-envs/fep_env.yaml
miniforge-variant: Mambaforge
miniforge-version: 4.9.2-4
#- os: macos-latest
# label: osx-64
# # prefix: /Users/runner/miniconda3/envs/openmm7.6
# environment-file: devtools/conda-envs/openmm7.6.yaml
# miniforge-variant: Mambaforge-pypy3
steps:
- uses: actions/[email protected]
- name: Additional info about the build
shell: bash
run: |
uname -a
df -h
ulimit -a
- name: Set cache date
run: echo "DATE=$(date +'%Y%m%d')" >> $GITHUB_ENV
- name: Make Cache (no worflow_dispatch)
if: ${{ github.event_name != 'workflow_dispatch' }}
uses: actions/[email protected]
with:
path: ~/conda_pkgs_dir # ${{ matrix.prefix }}
# Increase the last number (0) to reset cache manually
key: ${{ matrix.label }}-conda-${{ hashFiles('devtools/conda-envs/fep_env.yaml') }}-${{ env.DATE }}-0
id: cache1
- name: Make Cache (worflow_dispatch)
if: ${{ github.event_name == 'workflow_dispatch' }}
uses: actions/[email protected]
with:
path: ~/conda_pkgs_dir # ${{ matrix.prefix }}
key: ${{ matrix.label }}-conda-${{ hashFiles('devtools/conda-envs/fep_env.yaml') }}-${{ env.DATE }}-${{ inputs.CACHE_NUMBER }}
id: cache2
# More info on options: https://github.com/conda-incubator/setup-miniconda
- uses: conda-incubator/[email protected]
with:
python-version: ${{ matrix.python-version }}
condarc-file: ${{ matrix.condarc-file }}
environment-file: ${{ matrix.environment-file }}
miniforge-variant: ${{ matrix.miniforge-variant }}
miniforge-version: ${{ matrix.miniforge-version }}
use-mamba: true
# mamba-version: "*"
# environment-file: devtools/conda-envs/fep_env.yaml
channels: conda-forge,defaults
# channel-priority: true
activate-environment: fep
#auto-update-conda: false
auto-activate-base: false
#show-channel-urls: true
use-only-tar-bz2: true # IMPORTANT: This needs to be set for caching to work properly!
- name: Update environment
run: conda env update -n fep -f devtools/conda-envs/fep_env.yaml
- name: Install package
# conda setup requires this special shell
shell: bash -l {0}
run: |
python -m pip install . --no-deps
conda info
conda list
conda config --show-sources
conda config --show
printenv | sort
- name: Run tests
# conda setup requires this special shell
shell: bash -l {0}
run: |
conda activate fep
pytest -v --cov=transformato --cov-report=xml --color=yes transformato/tests/
- name: CodeCov
uses: codecov/[email protected]
with:
file: ./coverage.xml
flags: unittests
name: codecov-${{ matrix.os }}-py${{ matrix.python-version }}