tests #1115
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 | |
conda-mamba: mamba | |
id: install | |
- 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 | |
mamba 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 | |
conda-mamba: mamba | |
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 |