Skip to content

ci(cli): add CI and crates.io publish pipeline for cougr-cli - #285

Open
therealbibson wants to merge 1 commit into
salazarsebas:mainfrom
therealbibson:ci/issue-248-cougr-cli-workflows
Open

ci(cli): add CI and crates.io publish pipeline for cougr-cli#285
therealbibson wants to merge 1 commit into
salazarsebas:mainfrom
therealbibson:ci/issue-248-cougr-cli-workflows

Conversation

@therealbibson

Copy link
Copy Markdown

Summary

  • Adds .github/workflows/cli.yml: fmt/clippy(-D warnings)/test/build for cougr-cli, path-scoped to cougr-cli/** so it doesn't run on unrelated changes (mirrors core.yml's job shape, using a working-directory default like example_reusable.yml since cougr-cli isn't a workspace member yet).
  • Adds .github/workflows/publish-cli.yml: package → publish-to-crates.io (with the same crates.io pre-check guard as publish-crate.yml to skip already-published versions) → GitHub Release, triggered on main pushes touching cougr-cli/** and on cougr-cli-v* tags (distinct tag prefix so CLI releases don't collide with cougr-core's v* tags).
  • No changes to core.yml or publish-crate.ymlcougr-core's existing CI/publish behavior is untouched.

Note: cougr-cli itself doesn't exist yet (tracked by the other sub-issues of #238). These workflows are path-scoped to cougr-cli/** and simply won't trigger until that crate lands — same pattern as the per-example workflows before their example directories existed.

Test plan

  • Once cougr-cli/ is added as a workspace member (per Epic: ship the cougr CLI (new / add / check / doctor) #238's other sub-issues), open a PR touching only cougr-cli/** and confirm CLI CI triggers while the full example matrix does not.
  • Bump cougr-cli/Cargo.toml's version on main and confirm Publish CLI Crate publishes to crates.io and cuts a GitHub Release tagged cougr-cli-v<version>.
  • Reviewed YAML structure against core.yml, publish-crate.yml, and example_reusable.yml for consistency.

Closes #248

Adds .github/workflows/cli.yml (fmt/clippy/test/build, path-scoped to
cougr-cli/) and .github/workflows/publish-cli.yml (version-check-then-
publish-then-release, mirroring publish-crate.yml), so the CLI crate
gets equivalent CI/CD once it lands per salazarsebas#238's sub-issues, without
touching cougr-core's existing workflows.

Closes salazarsebas#248
@drips-wave

drips-wave Bot commented Jul 26, 2026

Copy link
Copy Markdown

@therealbibson Great news! 🎉 Based on an automated assessment of this PR, the linked Wave issue(s) no longer count against your application limits.

You can now already apply to more issues while waiting for a review of this PR. Keep up the great work! 🚀

Learn more about application limits

@salazarsebas

Copy link
Copy Markdown
Owner

The workflow content itself (fmt/clippy -D warnings/test/build, crates.io version check, GitHub Release) looks correct and matches the pattern from core.yml/publish-crate.yml. One blocker before merge: this workflow is path-scoped to cougr-cli/** and uses working-directory: cougr-cli, but the crate is actually being created at cli/ in #288 (and in #277/#279/#280). We're consolidating on a single canonical location for the CLI crate — see the merge-order discussion on #275/#288 — please hold this PR until that's settled, then update the paths to match before merging.

@salazarsebas

Copy link
Copy Markdown
Owner

This is scoped to cougr-cli/** in the path filters, but the actual crate on main lives at cli/ — as written, this workflow would never trigger. Could you rebase onto main and update the paths to cli/**? Also worth double-checking the crate name in the publish step matches what's in cli/Cargo.toml.

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.

ci(cli): add CI and crates.io publish pipeline for cougr-cli

2 participants