ci: route lightweight workflow jobs to ubuntu-slim runners#4409
Merged
ci: route lightweight workflow jobs to ubuntu-slim runners#4409
Conversation
The check-ci-workflows hook imports pyyaml but ran under bare `python3`, which fails on environments where the system Python doesn't have pyyaml installed. Switch to `uv run --no-project --with pyyaml python3` so the hook self-bootstraps its dependency without polluting the system Python or rebuilding the project venv. Signed-off-by: Jonathan Springer <jps@s390x.com>
Move jobs that don't need cores or RAM from ubuntu-latest (4 CPU, 16 GB) to ubuntu-slim (1 CPU, 5 GB) to free up the larger runners for jobs that actually use them. - lint.yml: ruff, vulture, interrogate, radon, and the syntax-check matrix (yamllint/jsonlint/tomllint) move to ubuntu-slim. pylint stays on ubuntu-latest since it imports the project and fans out with --jobs=0. - linting-full.yml: actionlint, reviewdog, commitlint, helm lint/chart-testing/unittest, gosec, govulncheck — none of these need the larger runner. - dependency-review.yml, helm-publish.yml (lint + publish), license-check.yml, vitest.yml, python-package.yml: single-purpose jobs with no compilation or parallel test workload. Signed-off-by: Jonathan Springer <jps@s390x.com>
2b1f22e to
71e17f7
Compare
License-check installs Rust via rustup and compiles cargo-license from source, which is too heavy for ubuntu-slim (1 CPU, 5 GB). Signed-off-by: Jonathan Springer <jps@s390x.com>
gcgoncalves
pushed a commit
that referenced
this pull request
Apr 23, 2026
* chore(pre-commit): run check-ci-workflows hook via uv The check-ci-workflows hook imports pyyaml but ran under bare `python3`, which fails on environments where the system Python doesn't have pyyaml installed. Switch to `uv run --no-project --with pyyaml python3` so the hook self-bootstraps its dependency without polluting the system Python or rebuilding the project venv. Signed-off-by: Jonathan Springer <jps@s390x.com> * ci: route lightweight workflow jobs to ubuntu-slim runners Move jobs that don't need cores or RAM from ubuntu-latest (4 CPU, 16 GB) to ubuntu-slim (1 CPU, 5 GB) to free up the larger runners for jobs that actually use them. - lint.yml: ruff, vulture, interrogate, radon, and the syntax-check matrix (yamllint/jsonlint/tomllint) move to ubuntu-slim. pylint stays on ubuntu-latest since it imports the project and fans out with --jobs=0. - linting-full.yml: actionlint, reviewdog, commitlint, helm lint/chart-testing/unittest, gosec, govulncheck — none of these need the larger runner. - dependency-review.yml, helm-publish.yml (lint + publish), license-check.yml, vitest.yml, python-package.yml: single-purpose jobs with no compilation or parallel test workload. Signed-off-by: Jonathan Springer <jps@s390x.com> * ci: revert license-check to ubuntu-latest License-check installs Rust via rustup and compiles cargo-license from source, which is too heavy for ubuntu-slim (1 CPU, 5 GB). Signed-off-by: Jonathan Springer <jps@s390x.com> --------- Signed-off-by: Jonathan Springer <jps@s390x.com>
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
Move CI jobs that don't need cores or RAM from
ubuntu-latest(4 CPU, 16 GB) toubuntu-slim(1 CPU, 5 GB). The intent is to free up the larger runners for jobs that actually use them (pylint, pytest, cargo, docker buildx, playwright) without slowing the lightweight ones meaningfully.Workflow changes
lint.yml— added a per-toolrunnerfield in the matrix.ruff,vulture,interrogate,radon, and thesyntax-checkmatrix (yamllint/jsonlint/tomllint) now run onubuntu-slim.pylintstays onubuntu-latestbecause it imports the project and fans out with--jobs=0.linting-full.yml— whole job moves toubuntu-slim.make linting-fullrunsactionlint,reviewdog,commitlint,helm lint/chart-testing/unittest,gosec,govulncheck— none of which need the larger runner.dependency-review.yml,helm-publish.yml(lint + publish),license-check.yml,vitest.yml,python-package.yml— single-purpose jobs with no compilation or parallel test workload, flipped outright.Pre-commit fix (separate commit)
The
check-ci-workflowshook importedpyyamlbut ran under barepython3, which fails when the system Python lacks pyyaml. Switched itsentrytouv run --no-project --with pyyaml python3 …so it self-bootstraps without polluting the system Python or rebuilding the project venv.🏷️ Type of Change
📓 Notes
Workflows left on
ubuntu-latestdeliberately:pytest,pytest-rust,rust.*,docker-multiplatform,docker-scan,docker-release,playwright,alembic-upgrade-validation,sql-sanitizer,wrapper,pre-commit,lint-web. These either compile, run parallel test suites, build container images, or were judged borderline and left for a follow-up after observing slim behavior in practice.ubuntu-slimis a relatively new GitHub-hosted runner tier; if any of the migrated jobs misbehave under 1 CPU / 5 GB, the fix is a one-line revert per workflow.