Skip to content

ci: add 'verify' CI check (inline Python workflow)#1

Merged
Skiipy11 merged 1 commit into
masterfrom
chore/ci-template
Jul 11, 2026
Merged

ci: add 'verify' CI check (inline Python workflow)#1
Skiipy11 merged 1 commit into
masterfrom
chore/ci-template

Conversation

@Skiipy11

@Skiipy11 Skiipy11 commented Jul 11, 2026

Copy link
Copy Markdown
Collaborator

What

Adds .github/workflows/ci.yml — the repo's first CI. A single job, id verify, runs on every PR and on pushes to master:

  1. Byte-compile all Python sources (python -m compileall -q .) under Python 3.10 — the floor declared by requires-python = ">=3.10" in pyproject.toml, so the declared minimum is actually verified.
  2. PEP 517 packaging build (python -m build) — validates pyproject.toml metadata and that the sdist + wheel build cleanly.

permissions: contents: read, timeout-minutes: 15, actions pinned to current major tags (checkout@v4, setup-python@v5).

Why not the org reusable workflow

Plan 028 Phase 1.3 wires repos to ZenSystemAI/.github/.github/workflows/node-ci-reusable.yml@main. That ref is not applicable to ZenVox, for two independently sufficient reasons:

  1. Visibility: ZenVox is public; ZenSystemAI/.github is private. GitHub only shares private-repo reusable workflows with other private repositories in the same org — a public caller gets "workflow was not found" no matter the Actions access policy. (This caveat is documented in the .github repo's README from the foundations step.)
  2. Stack: ZenVox is a Python project (pyproject.toml + setuptools, PyInstaller for release builds). There is no package.json, so the node workflow's setup-node npm cache and npm ci steps would hard-fail on every PR forever — a permanent false-red, not an honest gate.

The inline job id verify surfaces the check as bare verify (reusable calls would surface as verify / verify), which matches the org required-status-check convention directly.

Honest scope note

ZenVox has no test suite. This workflow gates syntax + packaging only — the strongest honest gates available today. A dependency-install/import smoke was deliberately left out: the GUI/audio stack (customtkinter, pyautogui, sounddevice) is not headless-CI-friendly and would produce flaky failures unrelated to code changes. When tests land, add a step to this job rather than weakening the existing gates.

Test evidence

  • Local run of both gate steps on this branch: compileall exit 0; python -m build produced zenvox-1.0.0.tar.gz + zenvox-1.0.0-py3-none-any.whl.
  • actionlint 1.7.12: zero findings on ci.yml.
  • The real proof is this PR itself: the new verify check runs against this very branch.

Do not merge without operator approval — first CI wiring is infra-tier per the PR-flow rule.

🤖 Generated with Claude Code

https://claude.ai/code/session_01BBPjDftvw487JP5FePZs3s

Summary by CodeRabbit

  • Chores
    • Added automated checks for pull requests and changes to the master branch.
    • The workflow verifies Python source compilation and validates that distribution packages can be built successfully.

Adds .github/workflows/ci.yml with a single 'verify' job gating every PR
and pushes to master: byte-compile of all Python sources plus a PEP 517
sdist+wheel build, pinned to Python 3.10 (the requires-python floor).

Deviates deliberately from the org reusable node-ci workflow
(ZenSystemAI/.github/.github/workflows/node-ci-reusable.yml@main):
this repo is PUBLIC and the .github repo is PRIVATE (public callers
cannot use private reusable workflows), and ZenVox is a Python project
with no package.json for the node workflow to act on. Rationale is
documented in the workflow header.

Both gate steps verified locally before push (compileall exit 0;
build produced zenvox-1.0.0 sdist + wheel). actionlint 1.7.12: clean.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BBPjDftvw487JP5FePZs3s
@coderabbitai

coderabbitai Bot commented Jul 11, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: b0145880-0498-41cc-bb32-92a2ebc76bb7

📥 Commits

Reviewing files that changed from the base of the PR and between 410dca3 and d886921.

📒 Files selected for processing (1)
  • .github/workflows/ci.yml

📝 Walkthrough

Walkthrough

Adds a GitHub Actions CI workflow triggered by pull requests and pushes to master. It runs on Python 3.10, byte-compiles repository sources, and validates PEP 517 packaging by building source and wheel distributions.

Changes

CI Verification

Layer / File(s) Summary
Workflow configuration
.github/workflows/ci.yml
Defines workflow triggers, read-only permissions, the verify job, Ubuntu runner, timeout, repository checkout, and Python 3.10 setup.
Python and packaging gates
.github/workflows/ci.yml
Adds source byte-compilation and PEP 517 package-building commands using build.

Estimated code review effort: 2 (Simple) | ~10 minutes

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly describes the new verify CI workflow added for the repository.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch chore/ci-template

Comment @coderabbitai help to get the list of available commands.

@Skiipy11
Skiipy11 merged commit 9e045e0 into master Jul 11, 2026
4 checks passed
@Skiipy11
Skiipy11 deleted the chore/ci-template branch July 11, 2026 04:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant