Skip to content

Merge pull request #7: release v0.7.0 reliable reuse decisions #13

Merge pull request #7: release v0.7.0 reliable reuse decisions

Merge pull request #7: release v0.7.0 reliable reuse decisions #13

Workflow file for this run

name: CI
on:
push:
branches: [main]
pull_request:
workflow_dispatch:
permissions:
contents: read
jobs:
core:
name: ${{ matrix.os }} / Python ${{ matrix.python }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, windows-latest]
python: ['3.11', '3.12', '3.13']
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python }}
cache: pip
- name: Install build tools
run: python -m pip install build==1.6.0 ruff==0.16.6 pyright==1.1.411
- name: Critical lint
run: ruff check --select E9,F63,F7,F82 src scripts tests
- name: Type checks
run: pyright
- name: Validate release contract
run: python scripts/validate-release.py
- name: Task-quality benchmark report
run: python scripts/benchmark-discovery.py --output quality-report.json
- name: Build wheel and source archive
run: python -m build
- name: Test extracted source archive
run: >-
python -c "import glob,subprocess,sys;
archives=glob.glob('dist/*.tar.gz');
assert len(archives)==1, archives;
subprocess.check_call([sys.executable,'scripts/check-sdist.py',archives[0]])"
- name: Install built wheel
run: >-
python -c "import glob,subprocess,sys;
wheels=glob.glob('dist/*.whl');
assert len(wheels)==1, wheels;
subprocess.check_call([sys.executable,'-m','pip','install','--force-reinstall',wheels[0]])"
- name: Installed console smoke
run: |
brief2ship doctor
python -m brief2ship --version
brief2ship discover --help
python -c "from brief2ship import DiscoveryConfig, discover; assert DiscoveryConfig and discover"
python scripts/smoke-installed.py
optional-extractor:
name: Optional Trafilatura adapter
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: '3.12'
cache: pip
- name: Install package with extraction extra
run: python -m pip install -e '.[extract]'
- name: Run full tests with optional extractor
run: python scripts/validate-release.py
- name: Verify doctor sees adapter
run: >-
python -c "import json,subprocess;
payload=json.loads(subprocess.check_output(['brief2ship','doctor'],text=True));
assert payload['trafilatura_available'] is True, payload"