-
Notifications
You must be signed in to change notification settings - Fork 8
105 lines (74 loc) · 4.12 KB
/
sanity.yml
File metadata and controls
105 lines (74 loc) · 4.12 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
name: Sanity Tests — All Scenarios
# Run on every push and on PRs targeting main so every branch gets feedback.
on:
push:
branches: ["**"]
pull_request:
branches: [main]
permissions:
contents: read
jobs:
sanity:
name: Sanity Tests
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.11"
- name: Install dependencies
run: |
pip install -r cli/requirements.txt -r mcp_server/requirements.txt pytest pytest-html
# ── CLI scaffold scenarios ─────────────────────────────────────────────
- name: "Scenario: CLI init wizard"
run: pytest cli/test_cli.py -k init -v
- name: "Scenario: GitHub Actions scaffold"
run: pytest tests/test_comprehensive.py::TestScaffoldGHA -v
- name: "Scenario: Jenkins scaffold"
run: pytest tests/test_comprehensive.py::TestScaffoldJenkins -v
- name: "Scenario: GitLab CI scaffold"
run: pytest tests/test_comprehensive.py::TestScaffoldGitlabExtended -v
- name: "Scenario: ArgoCD / Flux GitOps scaffold"
run: pytest tests/test_comprehensive.py::TestScaffoldArgoCDExtended -v
- name: "Scenario: SRE config scaffold (Prometheus, Grafana, SLO)"
run: pytest tests/test_comprehensive.py::TestScaffoldSREExtended -v
# ── MCP server tool scenarios ──────────────────────────────────────────
- name: "Scenario: MCP server — GitHub Actions tool"
run: pytest tests/test_comprehensive.py::TestMCPServerGHA -v
- name: "Scenario: MCP server — Jenkins tool"
run: pytest tests/test_comprehensive.py::TestMCPServerJenkins -v
- name: "Scenario: MCP server — Kubernetes tool"
run: pytest tests/test_comprehensive.py::TestMCPServerK8s -v
- name: "Scenario: MCP server — GitLab CI tool"
run: pytest tests/test_comprehensive.py::TestMCPServerGitLab -v
- name: "Scenario: MCP server — ArgoCD / Flux tool"
run: pytest tests/test_comprehensive.py::TestMCPServerArgoCD -v
- name: "Scenario: MCP server — SRE tool"
run: pytest tests/test_comprehensive.py::TestMCPServerSRE -v
- name: "Scenario: MCP server — Dev container tool"
run: pytest tests/test_comprehensive.py::TestMCPServerDevcontainer -v
# ── MCP wire-protocol tests ───────────────────────────────────────────
- name: "Scenario: MCP wire protocol — handshake, tool discovery, invocation"
run: pytest tests/test_mcp_protocol.py -v
# ── AI skills definitions ──────────────────────────────────────────────
- name: "Scenario: AI skills definitions (OpenAI & Claude)"
run: pytest tests/test_comprehensive.py::TestSkillsDefinitions -v
# ── CLI and MCP server unit tests ─────────────────────────────────────
- name: "Scenario: CLI integration tests (devopsos unified CLI)"
run: pytest cli/test_cli.py -v
- name: "Scenario: MCP server unit tests"
run: pytest mcp_server/test_server.py -v
# ── Combined report artifact ───────────────────────────────────────────
- name: Generate combined HTML report
if: always()
run: |
pytest cli/test_cli.py mcp_server/test_server.py tests/test_comprehensive.py tests/test_mcp_protocol.py \
--html=sanity-report.html --self-contained-html -q
- name: Upload sanity test report
if: always()
uses: actions/upload-artifact@v4
with:
name: sanity-test-report
path: sanity-report.html
retention-days: 30