Skip to content

Tidy Up CI Workflows#51

Merged
wpak-ai merged 2 commits into
cppalliance:developfrom
AuraMindNest:fix/tidy-workflow
May 21, 2026
Merged

Tidy Up CI Workflows#51
wpak-ai merged 2 commits into
cppalliance:developfrom
AuraMindNest:fix/tidy-workflow

Conversation

@AuraMindNest
Copy link
Copy Markdown
Collaborator

@AuraMindNest AuraMindNest commented May 21, 2026

Close #37

Summary by CodeRabbit

  • Chores
    • Enabled automated weekly dependency updates (including grouping and labels) to keep packages current and secure.
    • Established CI pipelines for lint/format checks and a separate tests & coverage run, with caching and generation/upload of coverage reports for PRs and runs.

Review Change Stack

@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 21, 2026

📝 Walkthrough

Walkthrough

This PR separates linting and testing into distinct workflows: adds ci-lint.yml for pre-commit checks, updates ci-test.yml to focus on tests and coverage, and adds .github/dependabot.yml to enable weekly automated dependency updates for uv, github-actions, and pre-commit.

Changes

CI Workflow Reorganization

Layer / File(s) Summary
Dedicated lint and format workflow
.github/workflows/ci-lint.yml
New workflow runs pre-commit checks via prek on push and pull_request, with caching for ~/.cache/prek, Python 3.14 setup, uv package manager, system dependency installation, and GitHub-formatted output for Ruff and REUSE.
Test workflow update with coverage focus
.github/workflows/ci-test.yml
Workflow name changes from "Lint and format" to "Tests and coverage"; lint-and-format job removed and replaced with test-coverage job that runs pytest with coverage thresholds, generates coverage summary tables, and uploads coverage artifacts.
Dependabot dependency update configuration
.github/dependabot.yml
New Dependabot configuration enables automated weekly dependency updates for uv (10 PR limit, grouped by semver for patch/minor vs major), github-actions (5 PR limit), and pre-commit (5 PR limit), with consistent Monday 09:00 UTC scheduling and appropriate labels.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Poem

🐰 New workflows hop in tidy rows,
Lint checks first where the pre-commit goes,
Tests then gather coverage bright,
Dependabot tends updates each Monday night,
I nibble carrots and watch CI flows.

🚥 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 'Tidy Up CI Workflows' directly matches the main objective described in issue #37 and accurately reflects the primary changes: refactoring CI workflow files for better organization and naming consistency.
Linked Issues check ✅ Passed The pull request fully implements all acceptance criteria from issue #37: dedicated ci-lint.yml and ci-test.yml workflows, dependabot.yml configuration with proper grouping for uv/github-actions/pre-commit ecosystems, and consistent ci-.yml naming convention.
Out of Scope Changes check ✅ Passed The changes are limited to CI workflow files (.github/dependabot.yml, .github/workflows/ci-lint.yml, .github/workflows/ci-test.yml) and directly address the objectives outlined in issue #37 with no extraneous modifications.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

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

Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In @.github/workflows/ci-lint.yml:
- Around line 7-10: The workflow currently triggers on both unscoped push and
pull_request which duplicates CI runs; update the GitHub Actions triggers in the
top-level "on" block to either remove the unscoped "push" entry or scope it to
protected branches (e.g. set "push" to only run on main/release branches) while
keeping "pull_request" for PR validation—modify the "on", "push", and
"pull_request" entries accordingly in the CI config so pushes to feature
branches no longer trigger a second run.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 9ef38436-e65f-44cb-a5f1-70dca78db86a

📥 Commits

Reviewing files that changed from the base of the PR and between f0e884b and 984e78c.

📒 Files selected for processing (5)
  • .github/dependabot.yml
  • .github/workflows/ci-dependencies.yml
  • .github/workflows/ci-lint.yml
  • .github/workflows/ci-package.yml
  • .github/workflows/ci-test.yml

Comment thread .github/workflows/ci-lint.yml
@AuraMindNest
Copy link
Copy Markdown
Collaborator Author

@coderabbitai review

@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 21, 2026

✅ Actions performed

Review triggered.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@AuraMindNest AuraMindNest requested a review from henry0816191 May 21, 2026 17:27
Copy link
Copy Markdown
Collaborator

@henry0816191 henry0816191 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You should fix README.md/Contributing /CI coverage

Comment thread .github/workflows/ci-lint.yml Outdated
@AuraMindNest AuraMindNest requested a review from wpak-ai May 21, 2026 19:04
Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Nitpick comments (2)
.github/workflows/ci-lint.yml (2)

7-15: ⚡ Quick win

Add a concurrency group to cancel superseded runs.

With pull_request + push on main/develop, rapid pushes to a PR branch will queue multiple in-flight lint runs. Adding a per-ref concurrency group cancels older runs and saves CI minutes without changing behavior on protected branches (where you may want to keep cancel-in-progress: false).

Suggested addition
 permissions:
   contents: read

+concurrency:
+  group: ${{ github.workflow }}-${{ github.ref }}
+  cancel-in-progress: ${{ github.event_name == 'pull_request' }}
+
 jobs:
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.github/workflows/ci-lint.yml around lines 7 - 15, Add a top-level
concurrency block to the workflow so superseded runs are cancelled for the same
ref; specifically, under the existing top-level keys (near the on: pull_request
/ push block) add concurrency with a group that uses the ref (e.g., "ci-lint-${{
github.ref }}" or "${{ github.workflow }}-${{ github.ref }}") and set
cancel-in-progress: true so rapid pushes to the same PR branch cancel earlier
lint runs.

44-50: 💤 Low value

Minor: prek cache gc is skipped when lint fails.

Because both commands run in the same run: block, a non-zero exit from prek run --all-files short-circuits the script and prek cache gc never executes. The cache entry is still saved by actions/cache on a hit-miss, so over time it can grow until you bump the cache key. If gc on every run matters, split it into its own step with if: always() (and consider continue-on-error: true so a gc failure doesn't mask the real lint result).

Suggested split
     - name: pre-commit
       run: |
         uv run --only-group pre-commit prek run --all-files --show-diff-on-failure
-        uv run --only-group pre-commit prek cache gc
       env:
         RUFF_OUTPUT_FORMAT: github
         REUSE_OUTPUT_FORMAT: github
+    - name: prek cache gc
+      if: always()
+      continue-on-error: true
+      run: uv run --only-group pre-commit prek cache gc
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.github/workflows/ci-lint.yml around lines 44 - 50, The current single run
block runs "uv run --only-group pre-commit prek run --all-files
--show-diff-on-failure" and "uv run --only-group pre-commit prek cache gc"
together so a failing lint aborts the gc; split the gc into its own workflow
step that only runs "uv run --only-group pre-commit prek cache gc" and add "if:
always()" (and optionally "continue-on-error: true") so "prek cache gc" executes
regardless of the lint exit status; keep the env vars RUFF_OUTPUT_FORMAT and
REUSE_OUTPUT_FORMAT on the lint step and add them to the new gc step as needed,
referencing the existing pre-commit step name and the two commands shown in the
diff.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Nitpick comments:
In @.github/workflows/ci-lint.yml:
- Around line 7-15: Add a top-level concurrency block to the workflow so
superseded runs are cancelled for the same ref; specifically, under the existing
top-level keys (near the on: pull_request / push block) add concurrency with a
group that uses the ref (e.g., "ci-lint-${{ github.ref }}" or "${{
github.workflow }}-${{ github.ref }}") and set cancel-in-progress: true so rapid
pushes to the same PR branch cancel earlier lint runs.
- Around line 44-50: The current single run block runs "uv run --only-group
pre-commit prek run --all-files --show-diff-on-failure" and "uv run --only-group
pre-commit prek cache gc" together so a failing lint aborts the gc; split the gc
into its own workflow step that only runs "uv run --only-group pre-commit prek
cache gc" and add "if: always()" (and optionally "continue-on-error: true") so
"prek cache gc" executes regardless of the lint exit status; keep the env vars
RUFF_OUTPUT_FORMAT and REUSE_OUTPUT_FORMAT on the lint step and add them to the
new gc step as needed, referencing the existing pre-commit step name and the two
commands shown in the diff.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 2ffd54cb-f60d-40ef-9a01-fae8a2740fe7

📥 Commits

Reviewing files that changed from the base of the PR and between 984e78c and 087f9d6.

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

@wpak-ai wpak-ai merged commit fff363a into cppalliance:develop May 21, 2026
5 checks passed
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.

Tidy Up CI Workflows

3 participants