-
Notifications
You must be signed in to change notification settings - Fork 1
112 lines (92 loc) · 3.41 KB
/
Copy pathci.yml
File metadata and controls
112 lines (92 loc) · 3.41 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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
name: CI
on:
pull_request:
push:
branches:
- development
- main
jobs:
test:
name: Tests / ${{ matrix.os }} / Python ${{ matrix.python-version }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
# Phase 19.3 (audit remediation 2026-05-02): expanded from
# Linux-only Python matrix to Linux × macOS × Windows ×
# Python 3.10/3.11/3.12 + a dedicated arm64 Linux row.
# Verifies the durable cross-platform rule with evidence
# rather than just intent. Pi tier (pi_zero / pi_5 in
# docs/hardware_profiles.md) gets exercised via the arm64
# row.
os: [ubuntu-latest, macos-latest, windows-latest]
python-version: ["3.10", "3.11", "3.12"]
include:
- os: ubuntu-24.04-arm
python-version: "3.12"
steps:
- name: Check out repository
uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Install package
run: |
python -m pip install --upgrade pip
python -m pip install -e ".[test]"
- name: Run tests
run: pytest -q --cov=mythic_vibe_cli --cov-report=term-missing
# Phase 19.3 (audit remediation 2026-05-02): cross-platform
# install + invocation smoke. Catches the "works on my
# machine" class of regression that unit tests miss.
- name: Smoke test — install + --help + doctor
run: |
python -m mythic_vibe_cli --help
python -m mythic_vibe_cli doctor --json
python -m mythic_vibe_cli surface chat --backend matrix --json
python -m mythic_vibe_cli ai models --provider anthropic --json
quality:
name: Lint, Types, Package, Contract
runs-on: ubuntu-latest
steps:
- name: Check out repository
uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.12"
- name: Install development tooling
run: |
python -m pip install --upgrade pip
python -m pip install -e ".[dev]"
- name: Ruff lint
run: ruff check mythic_vibe_cli tests scripts tools
- name: Mypy type check
run: mypy mythic_vibe_cli
- name: Changelog gate
run: python scripts/check_changelog.py
# Phase 19.3 (audit remediation 2026-05-02): docs-↔-code
# contract gate from slice 19.2. New handlers added without
# documentation fail CI; existing baseline is ratcheted in
# tools/contract_audit.py:main.
- name: Contract audit gate
run: python tools/contract_audit.py --strict
- name: Quality gate
run: python scripts/quality_gate.py
- name: JSON output audit
run: python -m mythic_vibe_cli simulate --json | python -m json.tool
- name: Active runtime security audit
run: python -m mythic_vibe_cli security audit --path . --json > security-audit.json
- name: Upload security audit artifact
uses: actions/upload-artifact@v4
if: always()
with:
name: security-audit
path: security-audit.json
- name: Boundary audit
run: python -m mythic_vibe_cli doctor --repo-boundary
- name: Build package
run: python -m build
- name: Check distributions
run: twine check dist/*