Repository navigation
ci: run ruff, mypy, bandit, pytest, Go TUI and viewer checks on every pull request - #1422
Merged
Merged
Conversation
Contributor
Author
|
I'll fix CI failures and address comments from users with write access. I'll skip comments containing "(aside)".
|
Contributor
|
… gate Add uv lock --check, a wheel install smoke test, a PyInstaller dry run, actionlint and zizmor on the workflows, CodeQL, and Dependabot for action pins, uv, Go and npm dependencies. Release caches are disabled so zizmor's cache-poisoning audit passes.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
The only workflow was
build-release.yml, which runs on version tags, so none of the checksCONTRIBUTING.mdasks for ran on a pull request. This adds.github/workflows/ci.yml, triggered onpull_request, pushes tomainandworkflow_dispatch, with one job per check so each can be made a required status on its own:ruffruff check .,ruff format --check .make lint-check,make format-checkmypymypy strix/make type-checkbanditbandit -r strix/ -c pyproject.tomlmake securitypytest (3.12 / 3.13 / 3.14)pytest -qon every Python the project classifiesuv run pytesttuigofmt -l,go vet,CGO_ENABLED=0 go build,go test -racemake tui-lint,make tui-build,make tui-testviewernpm ci,npm run build, then the committedstrix/interface/viewer/static/must equal the fresh buildmake viewer, plus a freshness checkEvery tool runs through
uv run --frozen, so the versions are the ones inuv.lock. Actions are pinned to the same commit SHAs asbuild-release.yml(setup-nodeis new and pinned to v7.0.0),permissionsis read-only,persist-credentials: false, and aconcurrencygroup cancels superseded runs on the same ref.actionlintpasses.Two things keep the first run on
mainhonest:.pre-commit-config.yamlpinned ruffv0.11.13whileuv.lockhas0.15.20; the two disagree ontests/test_tool_call_ids_providers.py:109(N802ondo_POSTvs.RUF100for the then-unusednoqa), so whichever one you ran, the other was red. The hook now usesv0.15.20and the stalenoqais dropped.make type-check) is not gated: it reports 909 errors onmaintoday and needs its own baseline first.pytestonmaincurrently fails one test,test_resolves_common_bare_model_names; that fix is in #1423 so this workflow is green once both land.Part of STR-617
Link to Devin session: https://app.devin.ai/sessions/dca9d4eea9114d6db88b5b374105df30
Open in Devin Desktop: https://app.devin.ai/desktop/session/dca9d4eea9114d6db88b5b374105df30?variant=devin