-
Notifications
You must be signed in to change notification settings - Fork 8
129 lines (126 loc) · 4.35 KB
/
pytest.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
name: tests
on:
push:
pull_request:
types: [opened, reopened]
env:
# Increase this value to reset cache if environment.yml has not changed.
PY_CACHE_NUMBER: 2
PY_ENV: ccc_gene_expr
jobs:
ccc_pytest:
name: Python tests for CCC
runs-on: ${{ matrix.os }}
strategy:
max-parallel: 4
fail-fast: false
matrix:
python-version: ["3.10", "3.11"]
os: [ubuntu-latest, macOS-latest, windows-latest]
steps:
- name: Checkout git repo
uses: actions/checkout@v4
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install pytest numpy scipy numba pandas scikit-learn
- name: Test CCC with pytest
env:
PYTHONPATH: libs/
run: |
pytest tests/test_coef.py tests/test_pytorch_core.py tests/test_scipy_stats.py tests/test_sklearn_metrics.py
# pytest:
# name: Python tests for analyses
# runs-on: ${{ matrix.os }}
# strategy:
# max-parallel: 4
# fail-fast: false
# matrix:
# python-version: ["3.9"]
# os: [ubuntu-latest, macOS-latest, windows-latest]
# steps:
# - name: Checkout git repo
# uses: actions/checkout@v3
# - name: Cache conda
# id: cache
# uses: actions/cache@v3
# with:
# path: "${{ env.PY_ENV }}.tar.gz"
# key: ${{ runner.os }}-${{ env.PY_CACHE_NUMBER }}-${{ hashFiles('environment/environment.yml', 'environment/scripts/install_r_packages.r', 'environment/scripts/install_other_packages.sh') }}
# - name: Setup Miniconda
# if: steps.cache.outputs.cache-hit != 'true'
# uses: conda-incubator/setup-miniconda@v2
# with:
# activate-environment: ${{ env.PY_ENV }}
# environment-file: environment/environment.yml
# auto-activate-base: false
# miniforge-variant: Mambaforge
# miniforge-version: 'latest'
# use-mamba: true
# - name: Install other packages and Conda-Pack environment
# if: steps.cache.outputs.cache-hit != 'true'
# shell: bash -l {0}
# run: |
# # other packages (R packages mainly)
# bash environment/scripts/install_other_packages.sh
#
# # install conda-pack, and pack environment
# conda install --yes -c conda-forge conda-pack coverage
# conda pack -f -n ${{ env.PY_ENV }} -o "${{ env.PY_ENV }}.tar.gz"
# - name: Unpack environment
# shell: bash -l {0}
# run: |
# mkdir -p "${{ env.PY_ENV }}"
# tar -xzf "${{ env.PY_ENV }}.tar.gz" -C "${{ env.PY_ENV }}"
# - name: Setup data and run pytest (Windows systems)
# if: runner.os == 'Windows'
# env:
# PYTHONPATH: libs/
# shell: cmd
# run: |
# echo on
# cd ${{ env.PY_ENV }}
# call .\Scripts\activate.bat
# .\Scripts\conda-unpack.exe
# cd ..
# set R_HOME=%CONDA_PREFIX%\Lib\R
# python environment\scripts\setup_data.py --mode testing
# pytest -v -rs tests
# - name: Setup data and run pytest (non-Windows systems)
# if: runner.os != 'Windows'
# shell: bash
# env:
# PYTHONPATH: libs/
# run: |
# source ${{ env.PY_ENV }}/bin/activate
# conda-unpack
#
# python environment/scripts/setup_data.py --mode testing
#
# if [ "$RUNNER_OS" == "Linux" ]; then
# # for linux/ubuntu, run the tests once: with numba jit activated
# # (which is the expected implementation) and with the jit
# # deactivated (otherwise coverage does not work).
#
# # numba jit activated
# pytest -v -rs tests
#
# # numba jit deactivated + code coverage
# export NUMBA_DISABLE_JIT=1
# coverage run --source=libs/ -m pytest -v -rs tests
# coverage xml -o coverage.xml
# else
# pytest -v -rs tests
# fi
# - name: Codecov upload
# if: runner.os == 'Linux'
# uses: codecov/codecov-action@v2
# with:
# files: ./coverage.xml
# name: codecov-${{ matrix.os }}-python${{ matrix.python-version }}
# fail_ci_if_error: true
# verbose: true