-
Notifications
You must be signed in to change notification settings - Fork 8
71 lines (61 loc) · 2.45 KB
/
test-python-hasi.yml
File metadata and controls
71 lines (61 loc) · 2.45 KB
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
name: Test Python HASI
# NOTE (2026-04): This workflow is temporarily disabled on push / PR
# events because every element of its toolchain has bit-rotted:
#
# * Runner images `ubuntu-18.04`, `windows-2019`, and `macos-10.15`
# have all been retired by GitHub Actions, so the jobs sit in
# `queued` indefinitely and never start.
# * Python 3.7 is end-of-life (EOL June 2023) and is not installable
# on modern runner images via `actions/setup-python@v5`.
# * The pinned test dependencies `itk==5.2.0.post2` (2021),
# `itk-shape==0.2.1`, and `dwd==1.0.1` are incompatible with the
# `itk` 5.4.x API that the rest of HASI now targets.
# * The IPFS-hosted test data workflow relies on
# `ibnesayeed/setup-ipfs@master` plus an `ipfs pin add` of a CID
# that is no longer reliably pinned on the public swarm, so even
# on a working runner the test data step fails.
#
# The last successful run of this workflow predates 2025-03. Rather
# than mask the failures with `continue-on-error`, trigger only on
# `workflow_dispatch` so the file stays around as a scaffold for when
# someone has time to modernize the Python test stack (port tests away
# from IPFS, bump `itk`, pick new runner images). The `src/hasi`
# pytest files themselves are unchanged and still runnable locally.
on: [workflow_dispatch]
env:
hasi-testing-data-ipfs-cid: bafybeihvca4e6ik3twyz5qdz3f33woqpzorrcfwkh47tp3wwpxuuggmbey
jobs:
test-python-hasi-package:
runs-on: ${{ matrix.os }}
strategy:
max-parallel: 3
matrix:
os: [ubuntu-24.04, windows-2022, macos-14]
steps:
- uses: actions/checkout@v5
- name: Set up Python 3.10
uses: actions/setup-python@v5
with:
python-version: '3.10'
- name: Setup ipfs
uses: ibnesayeed/setup-ipfs@master
with:
ipfs_version: ^0.8
- name: Pin ipfs testing data locally
run: |
ipfs pin add -- ${{ env.hasi-testing-data-ipfs-cid }}
- name: Install build dependencies
run: |
python -m pip install --upgrade pip
python -m pip install itk==5.2.0.post2
python -m pip install itk-shape==0.2.1
python -m pip install dwd==1.0.1
python -m pip install seaborn
python -m pip install matplotlib
python -m pip install pytest
python -m pip install pytest-dependency
python -m pip install ipfsspec xarray zarr
- name: Test with pytest
run: |
cd src/hasi
pytest .