1+ name : pytest
2+
3+ on :
4+ pull_request :
5+ push :
6+ branches : [main]
7+ paths :
8+ - " .github/workflows/*"
9+ - " pymc_experimental/**"
10+ - " setup.py"
11+ - " pyproject.toml"
12+ - " buildosx"
13+ - " conda-envs/**"
14+ - " codecov.yml"
15+
16+ jobs :
17+ ubuntu :
18+ strategy :
19+ matrix :
20+ os : [ubuntu-18.04]
21+ floatx : [float32, float64]
22+ fail-fast : false
23+ runs-on : ${{ matrix.os }}
24+ env :
25+ TEST_SUBSET : ${{ matrix.test-subset }}
26+ AESARA_FLAGS : floatX=${{ matrix.floatx }},gcc__cxxflags='-march=native'
27+ defaults :
28+ run :
29+ shell : bash -l {0}
30+ steps :
31+ - uses : actions/checkout@v2
32+ - name : Cache conda
33+ uses : actions/cache@v1
34+ env :
35+ # Increase this value to reset cache if environment-test-py37.yml has not changed
36+ CACHE_NUMBER : 0
37+ with :
38+ path : ~/conda_pkgs_dir
39+ key : ${{ runner.os }}-conda-${{ env.CACHE_NUMBER }}-${{
40+ hashFiles('conda-envs/environment-test-py37.yml') }}
41+ - name : Cache multiple paths
42+ uses : actions/cache@v2
43+ env :
44+ # Increase this value to reset cache if requirements.txt has not changed
45+ CACHE_NUMBER : 0
46+ with :
47+ path : |
48+ ~/.cache/pip
49+ $RUNNER_TOOL_CACHE/Python/*
50+ ~\AppData\Local\pip\Cache
51+ key : ${{ runner.os }}-build-${{ matrix.python-version }}-${{
52+ hashFiles('requirements.txt') }}
53+ - uses : conda-incubator/setup-miniconda@v2
54+ with :
55+ miniforge-variant : Mambaforge
56+ miniforge-version : latest
57+ mamba-version : " *"
58+ activate-environment : pymc-test-py37
59+ channel-priority : strict
60+ environment-file : conda-envs/environment-test-py37.yml
61+ use-mamba : true
62+ use-only-tar-bz2 : true # IMPORTANT: This needs to be set for caching to work properly!
63+ - name : Install-pymc
64+ run : |
65+ conda activate pymc-test-py37
66+ pip install -e .
67+ python --version
68+ - name : Run tests
69+ run : |
70+ conda activate pymc-test-py37
71+ python -m pytest -vv --cov=pymc_experimental --cov-append --cov-report=xml --cov-report term --durations=50 $TEST_SUBSET
72+ - name : Upload coverage to Codecov
73+ uses : codecov/codecov-action@v2
74+ with :
75+ env_vars : TEST_SUBSET
76+ name : ${{ matrix.os }} ${{ matrix.floatx }}
77+ fail_ci_if_error : false
78+ windows :
79+ strategy :
80+ matrix :
81+ os : [windows-latest]
82+ floatx : [float32, float64]
83+ fail-fast : false
84+ runs-on : ${{ matrix.os }}
85+ env :
86+ TEST_SUBSET : ${{ matrix.test-subset }}
87+ AESARA_FLAGS : floatX=${{ matrix.floatx }},gcc__cxxflags='-march=core2'
88+ defaults :
89+ run :
90+ shell : cmd
91+ steps :
92+ - uses : actions/checkout@v2
93+ - name : Cache conda
94+ uses : actions/cache@v1
95+ env :
96+ # Increase this value to reset cache if conda-envs/environment-test-py38.yml has not changed
97+ CACHE_NUMBER : 0
98+ with :
99+ path : ~/conda_pkgs_dir
100+ key : ${{ runner.os }}-conda-${{ env.CACHE_NUMBER }}-${{
101+ hashFiles('conda-envs/windows-environment-test-py38.yml') }}
102+ - name : Cache multiple paths
103+ uses : actions/cache@v2
104+ env :
105+ # Increase this value to reset cache if requirements.txt has not changed
106+ CACHE_NUMBER : 0
107+ with :
108+ path : |
109+ ~/.cache/pip
110+ $RUNNER_TOOL_CACHE/Python/*
111+ ~\AppData\Local\pip\Cache
112+ key : ${{ runner.os }}-build-${{ matrix.python-version }}-${{
113+ hashFiles('requirements.txt') }}
114+ - uses : conda-incubator/setup-miniconda@v2
115+ with :
116+ miniforge-variant : Mambaforge
117+ miniforge-version : latest
118+ mamba-version : " *"
119+ activate-environment : pymc-test-py38
120+ channel-priority : strict
121+ environment-file : conda-envs/windows-environment-test-py38.yml
122+ use-mamba : true
123+ use-only-tar-bz2 : true # IMPORTANT: This needs to be set for caching to work properly!
124+ - name : Install-pymc
125+ run : |
126+ conda activate pymc-test-py38
127+ pip install -e .
128+ python --version
129+ - name : Run tests
130+ # This job uses a cmd shell, therefore the environment variable syntax is different!
131+ # The ">-" in the next line replaces newlines with spaces (see https://stackoverflow.com/a/66809682).
132+ run : >-
133+ conda activate pymc-test-py38 &&
134+ python -m pytest -vv --cov=pymc_experimental --cov-append --cov-report=xml --cov-report term --durations=50 %TEST_SUBSET%
135+ - name : Upload coverage to Codecov
136+ uses : codecov/codecov-action@v2
137+ with :
138+ env_vars : TEST_SUBSET
139+ name : ${{ matrix.os }} ${{ matrix.floatx }}
140+ fail_ci_if_error : false
0 commit comments