Skip to content

Commit d99464b

Browse files
authored
Add cross-platform tests and package CI (#64)
* Add phylib CI * Stabilize the initial CI matrix
1 parent d9beeae commit d99464b

2 files changed

Lines changed: 93 additions & 1 deletion

File tree

‎.github/workflows/ci.yml‎

Lines changed: 91 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,91 @@
1+
name: CI
2+
3+
on:
4+
push:
5+
branches:
6+
- master
7+
pull_request:
8+
workflow_dispatch:
9+
10+
permissions:
11+
contents: read
12+
13+
concurrency:
14+
group: ci-${{ github.workflow }}-${{ github.ref }}
15+
cancel-in-progress: true
16+
17+
jobs:
18+
test:
19+
name: ${{ matrix.scope }} (${{ matrix.os }}, Python ${{ matrix.python-version }})
20+
runs-on: ${{ matrix.os }}
21+
strategy:
22+
fail-fast: false
23+
matrix:
24+
include:
25+
- os: ubuntu-latest
26+
python-version: "3.10"
27+
scope: Full tests
28+
test-target: phylib
29+
- os: ubuntu-latest
30+
python-version: "3.11"
31+
scope: Full tests
32+
test-target: phylib
33+
- os: ubuntu-latest
34+
python-version: "3.12"
35+
scope: Full tests
36+
test-target: phylib
37+
- os: macos-latest
38+
python-version: "3.12"
39+
scope: Full tests
40+
test-target: phylib
41+
- os: windows-latest
42+
python-version: "3.12"
43+
scope: Smoke tests
44+
test-target: phylib/electrode phylib/stats phylib/utils
45+
46+
steps:
47+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
48+
49+
- name: Set up Python ${{ matrix.python-version }}
50+
uses: actions/setup-python@83679a892e2d95755f2dac6acb0bfd1e9ac5d548 # v6.1.0
51+
with:
52+
python-version: ${{ matrix.python-version }}
53+
cache: pip
54+
cache-dependency-path: |
55+
requirements.txt
56+
requirements-dev.txt
57+
58+
- name: Install dependencies
59+
run: |
60+
python -m pip install --upgrade pip setuptools
61+
python -m pip install -r requirements-dev.txt -e .
62+
63+
- name: Run tests
64+
run: python -m pytest ${{ matrix.test-target }}
65+
66+
build:
67+
name: Build package
68+
runs-on: ubuntu-latest
69+
needs: test
70+
71+
steps:
72+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
73+
74+
- name: Set up Python
75+
uses: actions/setup-python@83679a892e2d95755f2dac6acb0bfd1e9ac5d548 # v6.1.0
76+
with:
77+
python-version: "3.12"
78+
cache: pip
79+
cache-dependency-path: requirements.txt
80+
81+
- name: Build package
82+
run: |
83+
python -m pip install --upgrade build
84+
python -m build
85+
86+
- name: Upload build artifacts
87+
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
88+
with:
89+
name: dist
90+
path: dist/
91+
if-no-files-found: error

‎MANIFEST.in‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
1-
include LICENSE
1+
include LICENSE.md
22
include README.md
3+
include requirements.txt
34

45
recursive-include tests *
56
recursive-include phylib/electrode/probes *.prb

0 commit comments

Comments
 (0)