Skip to content

fix(ci): run semantic-release as CLI instead of Docker action#203

Merged
Abdelsalam-Abbas merged 2 commits intomainfrom
fix/release-pixi-lock-v2
Apr 8, 2026
Merged

fix(ci): run semantic-release as CLI instead of Docker action#203
Abdelsalam-Abbas merged 2 commits intomainfrom
fix/release-pixi-lock-v2

Conversation

@Abdelsalam-Abbas
Copy link
Copy Markdown
Contributor

@Abdelsalam-Abbas Abdelsalam-Abbas commented Apr 7, 2026

Summary

  • Replaces the Docker-based python-semantic-release action with direct CLI invocation via uvx
  • The Docker container didn't have pixi, so build_command = "pixi lock" failed with command not found
  • Running on the host means build_command can use pixi (installed by setup-pixi)
  • Adds assets = ["pixi.lock"] so the regenerated lockfile is staged in the version commit

How it works

The semantic-release lifecycle: stamp version in pyproject.toml -> run build_command (pixi lock) -> stage version files + assets (pixi.lock) -> commit -> tag -> push. This means the lockfile update is part of the same commit and tag as the version bump.

Test plan

  • Merge and verify next release commit includes updated pixi.lock
  • Verify semantic-release publish creates the GitHub Release correctly with GH_TOKEN

Summary by CodeRabbit

  • Chores
    • Updated release workflow and included additional artifacts in release packages.

The Docker-based action runs build_command inside its container where
pixi is not available. Switch to running semantic-release via uvx on
the runner where setup-pixi installs pixi. Add assets config so
pixi.lock is included in the version commit.
@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented Apr 7, 2026

Important

Review skipped

Review was skipped due to path filters

⛔ Files ignored due to path filters (1)
  • pixi.lock is excluded by !**/*.lock

CodeRabbit blocks several paths by default. You can override this behavior by explicitly including those paths in the path filters. For example, including **/dist/** will override the default block on the dist directory, by removing the pattern from both the lists.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 7f612508-0359-4c42-abda-9a99f789243b

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

The PR refactors the release workflow from GitHub action-based semantic-release invocations to inline shell commands via uvx, adds astral-sh/setup-uv support, and updates pyproject.toml to include pixi.lock as a release artifact.

Changes

Cohort / File(s) Summary
Release Workflow Refactoring
.github/workflows/release.yml
Replaced python-semantic-release GitHub actions with inline shell-based invocation via uvx. Added astral-sh/setup-uv@v6 action, configured git committer identity, uses GH_TOKEN for authentication, and changed error handling from action outputs to shell conditionals.
Release Configuration
pyproject.toml
Added assets = ["pixi.lock"] to [tool.semantic_release] configuration to treat the pixi lockfile as a release artifact.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Possibly related PRs

Suggested reviewers

  • k-chrispens
  • marcuscollins
  • xraymemory

Poem

🐰 From actions to uvx we hop,
Pixi.lock now won't be dropped!
Git committer, tokens dance,
Shell commands take their chance,
Releases flow with fresh romance! 🚀

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately describes the main change: switching from a Docker action to direct CLI invocation of semantic-release via uvx on the runner.
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
  • Commit unit tests in branch fix/release-pixi-lock-v2

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.

@Abdelsalam-Abbas Abdelsalam-Abbas requested review from k-chrispens, marcuscollins, saada and xraymemory and removed request for marcuscollins and saada April 7, 2026 18:44
Copy link
Copy Markdown
Collaborator

@marcuscollins marcuscollins left a comment

Choose a reason for hiding this comment

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

LGTM

@Abdelsalam-Abbas Abdelsalam-Abbas merged commit 482e9bf into main Apr 8, 2026
8 of 11 checks passed
@k-chrispens k-chrispens deleted the fix/release-pixi-lock-v2 branch April 22, 2026 00:26
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.

2 participants