Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 36 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
# Template — copy to `.github/workflows/ci.yml` to enable.
#
# Pure-Python pytest matrix for the dcebe package. The agent does not
# touch .github/ directly per CLAUDE.md; copy this file into place
# manually and commit on a separate branch (no agent push).

name: CI

on:
push:
branches: [master, main]
pull_request:

jobs:
test:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
python-version: ["3.9", "3.10", "3.11", "3.12", "3.13"]
steps:
- uses: actions/checkout@v4

- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
cache: pip

- name: Install package and test deps
run: |
python -m pip install --upgrade pip
pip install -e .[test]

- name: Run pytest (skip MATLAB parity if fixtures absent)
run: pytest tests_py/ -v
58 changes: 58 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
# Template — copy to `.github/workflows/release.yml` to enable.
#
# Tag-gated PyPI publication via OIDC trusted publishing. No PyPI API
# token required after one-time configuration on PyPI side. Triggers
# only on annotated tags matching `v*.*.*`.

name: Release

on:
push:
tags: ["v*.*.*"]

permissions:
contents: read

jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.12"

- name: Install build backend
run: |
python -m pip install --upgrade pip
pip install build

- name: Build sdist and wheel
run: python -m build

- uses: actions/upload-artifact@v4
with:
name: dist
path: dist/

publish:
needs: build
runs-on: ubuntu-latest
environment:
name: pypi
url: https://pypi.org/p/dcebe
permissions:
id-token: write # required for OIDC trusted publishing
steps:
- uses: actions/download-artifact@v4
with:
name: dist
path: dist/

- name: Publish to PyPI
uses: pypa/gh-action-pypi-publish@release/v1
# No `password:` argument — OIDC trusted publisher (configure
# at https://pypi.org/manage/account/publishing/ before the
# first release).
Loading