-
-
Notifications
You must be signed in to change notification settings - Fork 108
133 lines (131 loc) · 4.61 KB
/
test.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
130
131
132
133
name: tests
on:
push:
branches:
- main
pull_request:
branches:
- '*'
workflow_dispatch:
schedule:
- cron: '0 15 * * SUN'
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
jobs:
pre_commit:
name: Run pre-commit hooks
runs-on: 'ubuntu-latest'
steps:
- uses: actions/checkout@v3
with:
fetch-depth: "1"
- name: set PY
run: echo "PY=$(python -VV | sha256sum | cut -d' ' -f1)" >> $GITHUB_ENV
- uses: actions/cache@v3
with:
path: ~/.cache/pre-commit
key: pre-commit|${{ env.PY }}|${{ hashFiles('.pre-commit-config.yaml') }}
- name: pre-commit
uses: pre-commit/[email protected]
test_suite:
name: Pytest on ${{ matrix.os }} with Python ${{ matrix.python-version }}
needs: [pre_commit]
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: ['ubuntu-latest', 'macos-latest', 'windows-latest']
# Run on the full set on schedule, workflow_dispatch and push&tags events, otherwise on a subset.
python-version: ${{ ( github.event_name == 'schedule' || github.event_name == 'workflow_dispatch' || ( github.event_name == 'push' && github.ref_type == 'tag' ) ) && fromJSON('["3.7", "3.8", "3.9", "3.10", "3.11"]') || fromJSON('["3.7", "3.9", "3.11"]') }}
timeout-minutes: 90
defaults:
run:
shell: bash -el {0}
steps:
- uses: holoviz-dev/holoviz_tasks/[email protected]
with:
name: unit_test_suite
python-version: ${{ matrix.python-version }}
channel-priority: strict
channels: pyviz/label/dev,conda-forge,nodefaults
envs: "-o examples_tests -o tests"
cache: true
conda-update: true
id: install
- name: patch zarr on Python 3.7
if: steps.install.outputs.cache-hit != 'true' && matrix.python-version == '3.7'
run: |
conda activate test-environment
conda install "zarr <2.15.0"
- name: patch holoviews
if: steps.install.outputs.cache-hit != 'true'
run: |
conda activate test-environment
conda install "holoviews <= 1.17.0a2"
- name: patch fiona/geostack on Python 3.7 / Macos
if: steps.install.outputs.cache-hit != 'true' && contains(matrix.os, 'macos') && matrix.python-version == '3.7'
run: |
conda activate test-environment
conda install "fiona=1.8" "gdal=3.3"
- name: doit test_unit
run: |
conda activate test-environment
doit test_unit
- name: test examples
# Should be removed when numba support python 3.11
if: matrix.python-version != '3.11'
run: |
conda activate test-environment
bokeh sampledata
doit test_examples
- name: codecov
run: |
conda activate test-environment
codecov
test_suite_36:
name: Pytest on ${{ matrix.os }} with Python ${{ matrix.python-version }}
needs: [pre_commit]
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: ['macos-latest', 'windows-latest']
python-version: ['3.6']
timeout-minutes: 90
defaults:
run:
shell: bash -l {0}
steps:
- uses: holoviz-dev/holoviz_tasks/[email protected]
with:
name: unit_test_suite_36
python-version: ${{ matrix.python-version }}
channel-priority: strict
channels: pyviz/label/dev,conda-forge,nodefaults
envs: "-o tests"
cache: true
conda-update: true
id: install
- name: doit develop_install py
if: steps.install.outputs.cache-hit != 'true'
run: |
conda activate test-environment
# - Pin panel on Python 3.6 because one or more dev releases on the 0.13.* series
# can be installed on Python 3.6 but are actually not compatible with Python 3.6
# Panel 0.13 will support Python >= 3.7 only so the pin here can stay indefinitely.
# - Install importlib_resources to fix tqdm that missed adding it as a dependency
# for 3.6 (https://github.com/conda-forge/tqdm-feedstock/pull/114)
conda install "panel=0.12" "importlib_resources" --no-update-deps
- name: doit env_capture
run: |
conda activate test-environment
doit env_capture
- name: doit test_unit
run: |
conda activate test-environment
doit test_unit
- name: codecov
run: |
conda activate test-environment
codecov