Skip to content

Add CI/CD: pre-commit gates, GitHub Actions workflows, and contributor tooling#103

Closed
aviv1ron1 wants to merge 16 commits into
generative-computing:mainfrom
aviv1ron1:integration/cicd-on-ruff-format
Closed

Add CI/CD: pre-commit gates, GitHub Actions workflows, and contributor tooling#103
aviv1ron1 wants to merge 16 commits into
generative-computing:mainfrom
aviv1ron1:integration/cicd-on-ruff-format

Conversation

@aviv1ron1

Copy link
Copy Markdown
Collaborator

What

Stands up the project's CI/CD and code-quality infrastructure on top of the
now-formatted tree. This is the second of the two-PR split: the bulk ruff
reformat landed separately in #102, and this PR carries everything that builds
on it.

Included

Pre-commit

  • .pre-commit-config.yaml: ruff (lint + format) as a blocking gate,
    nbstripout, local validate-links hook, SPDX-header and DCO-signoff checks,
    uv-lock, and standard hygiene hooks (whitespace, EOF, YAML/TOML, merge
    conflicts, large files, line endings).
  • .pre-commit/validate_links.py: checks broken local links, stale labels, and
    broken first-party imports in .md / .ipynb / .py.

GitHub Actions

  • ci.yaml: lint + CPU test suite (ruff via a pinned uvx version).
  • gpu-tests.yaml: GPU-gated vLLM / integration tests.
  • check-headers.yaml: SPDX license-header enforcement.
  • dco.yaml: Developer Certificate of Origin sign-off check.
  • publish.yaml: package publish workflow.

Contributor tooling & docs

  • ci/check_headers.py, ci/check_dco.py: scripts backing the header/DCO checks.
  • docs/CICD_PLAN.md: rollout plan and rationale.
  • CONTRIBUTING.md, CHANGELOG.md, Makefile updates.
  • SPDX headers added to the tutorials source modules.
  • uv.lock refreshed; uv-pre-commit bumped to 0.8.4.
  • Notebooks normalized via nbstripout.
  • .git-blame-ignore-revs records the Apply ruff format and lint autofixes across the codebase #102 reformat commit
    (c8d4a4ab79cc9e22cc0d5de264ec6d1a2b412d08) so git blame skips past it.

Notes

aviv1ron1 added 16 commits June 11, 2026 12:05
- Rework the ruff section into a two-PR rollout (format first, then enforce).
- Fix review comments: uv-lock/check-headers auto-fix wording, lint scope,
  workflow count, versioning example.
- Add an Execution section recording the post-format full-suite Vela run
  (1338 passed, 2 pre-existing near-tie integration failures).

Signed-off-by: aviv ron <rona@il.ibm.com>
Record the repo-wide ruff format commit so 'git blame' skips it and
authorship of real changes stays visible. Enable locally with:
  git config blame.ignoreRevsFile .git-blame-ignore-revs

Signed-off-by: aviv ron <rona@il.ibm.com>
…n-ruff-format

Signed-off-by: aviv ron <rona@il.ibm.com>
The repo-wide ruff format (PR 1) is merged into this branch, so the tree is
ruff-clean. Flip ruff from the advisory bridge to the enforced gate:

- ci.yaml: drop continue-on-error from the ruff format/lint steps.
- .pre-commit-config.yaml: re-add ruff-format and make ruff blocking
  (--exit-non-zero-on-fix --fix).
- CICD_PLAN.md: reflect the enforced state.

Signed-off-by: aviv ron <rona@il.ibm.com>
ci/check_headers.py, ci/check_dco.py, and .pre-commit/validate_links.py
were added on the CI/CD branch and never went through the format pass.
Apply ruff format + safe fixes (UP015, RUF005) so the merged tree is
fully ruff-clean under the now-blocking gate. No behavioral change.

Signed-off-by: aviv ron <rona@il.ibm.com>
Hygiene hook fixups on 5 non-code files (gitignore, CODEOWNERS, a jinja
fixture, and two sample-run JSONs) that lacked a final newline.

Signed-off-by: aviv ron <rona@il.ibm.com>
Signed-off-by: aviv ron <rona@il.ibm.com>
The tutorial notebooks already carry no outputs; nbstripout only renumbers
cell ids and clears empty metadata, so the tree satisfies the hook. No
tutorial content is lost.

Signed-off-by: aviv ron <rona@il.ibm.com>
- Regenerate uv.lock to match the pytest-cov additions in the dev/test
  groups (CI runs 'uv sync --frozen', which requires an in-sync lock).
- Bump uv-pre-commit 0.6.0 -> 0.8.4: the old uv could not parse the
  [tool.uv] conflicts syntax and reported a bogus unsatisfiable error.

Signed-off-by: aviv ron <rona@il.ibm.com>
The lint job used 'uv run ruff', but ruff is not a project dependency,
so it failed with 'Failed to spawn: ruff'. Use 'uvx ruff@0.9.0' (the same
version the pre-commit hook pins) and drop the unnecessary project sync
from the lint job.

Signed-off-by: aviv ron <rona@il.ibm.com>
test_fallback_precedence_and_yaml_parity compared discover_adapters()
output (filesystem scan order, varies by OS/filesystem) against the YAML
manifest order as an ordered list, so it failed on some runners. Parity
means the same set of adapters, not the same order — compare sorted.

Signed-off-by: aviv ron <rona@il.ibm.com>
@aviv1ron1

Copy link
Copy Markdown
Collaborator Author

Superseded — the cicd work is consolidated into #95, which is now rebased onto the merged reformat (#102) and carries the review fixes. Closing this draft attempt.

@aviv1ron1 aviv1ron1 closed this Jul 21, 2026
@aviv1ron1
aviv1ron1 deleted the integration/cicd-on-ruff-format branch July 21, 2026 11:48
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