Skip to content
This repository was archived by the owner on Jul 3, 2026. It is now read-only.

Commit 21e4d5a

Browse files
Lukas Geigerclaude
andcommitted
ci: add GitHub Actions workflow (ubuntu/macos/windows × Python 3.9–3.12)
Zero-dependency stdlib project — no pip install step for tests. Ruff lint step added after fixing SIM105 ignore, UP009 headers, unused import (F401) and unused variable (F841). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
1 parent c8f2050 commit 21e4d5a

4 files changed

Lines changed: 32 additions & 5 deletions

File tree

.github/workflows/ci.yml

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
name: CI
2+
3+
on:
4+
push:
5+
pull_request:
6+
7+
jobs:
8+
test:
9+
name: Python ${{ matrix.python-version }} / ${{ matrix.os }}
10+
runs-on: ${{ matrix.os }}
11+
strategy:
12+
fail-fast: false
13+
matrix:
14+
os: [ubuntu-latest, macos-latest, windows-latest]
15+
python-version: ["3.9", "3.10", "3.11", "3.12"]
16+
17+
steps:
18+
- uses: actions/checkout@v4
19+
20+
- name: Set up Python ${{ matrix.python-version }}
21+
uses: actions/setup-python@v5
22+
with:
23+
python-version: ${{ matrix.python-version }}
24+
25+
- name: Run tests (stdlib only, zero deps)
26+
run: python -m unittest discover -s tests -v
27+
28+
- name: Lint (ruff)
29+
run: |
30+
pip install ruff
31+
python -m ruff check .

fable_hunter.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
#!/usr/bin/env python3
2-
# -*- coding: utf-8 -*-
32
"""
43
fable-5-hunter
54
==============

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ target-version = "py39"
5454

5555
[tool.ruff.lint]
5656
select = ["E", "W", "F", "I", "B", "C4", "UP", "SIM"]
57-
ignore = ["E501"]
57+
ignore = ["E501", "SIM105"]
5858

5959
[tool.ruff.format]
6060
quote-style = "double"

tests/test_hunter.py

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
#!/usr/bin/env python3
2-
# -*- coding: utf-8 -*-
32
"""
43
Tests for fable-5-hunter (standard library only, zero-dependency).
54
@@ -655,7 +654,6 @@ def test_deep_merge_in_load_config(self):
655654
self.assertEqual(cfg["model_id"], "claude-fable-5") # default preserved
656655

657656
def test_default_notifiers_are_desktop_and_file(self):
658-
cfg = fh.load_config()
659657
# When no config file is present the defaults apply.
660658
# We just test the DEFAULT_CONFIG directly since load_config merges from it.
661659
self.assertIn("desktop", fh.DEFAULT_CONFIG["notifiers"])
@@ -714,7 +712,6 @@ def test_acquire_blocks_second_instance(self):
714712
self.assertFalse(result)
715713

716714
def test_acquire_takes_over_stale_lock(self):
717-
import time as _time
718715
with tempfile.TemporaryDirectory() as tmp:
719716
lock = Path(tmp) / "hunter.lock"
720717
lock.write_text("12345", encoding="utf-8")

0 commit comments

Comments
 (0)