Repository navigation
feat: add bunenv GitHub Action for CI/CD workflows - #7
Merged
Merged
Conversation
Add official GitHub Action to simplify bunenv setup in workflows:
**New Files:**
- `action.yml`: Composite action for setting up Bun with bunenv
- Inputs: bun-version, variant, github-token, cache, python-version
- Outputs: bun-version, bunenv-path
- Auto-caching of Bun installations
- Cross-platform support (Ubuntu, macOS, Windows)
- `ACTION.md`: Complete documentation with examples
- Quick start guides
- Matrix testing examples
- Cross-platform examples
- Polyglot project examples
- Troubleshooting guide
**Updated:**
- `README.md`: Added GitHub Actions section with action usage
- `.github/workflows/ci.yml`: Added action-test job to validate action
**Features:**
✅ Isolated Bun environments (like virtualenv)
✅ Automatic caching for faster runs
✅ Version pinning for reproducible builds
✅ Cross-platform (Ubuntu, macOS, Windows)
✅ Variant support (baseline, musl, profile)
✅ GitHub token support to avoid rate limits
**Usage:**
```yaml
- uses: JacobCoffee/bunenv@v1
with:
bun-version: 'latest'
```
This makes bunenv easy to use in CI/CD pipelines while maintaining
the isolation and reproducibility benefits of virtual environments.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
JacobCoffee
added a commit
to JacobCoffee/byte
that referenced
this pull request
Nov 24, 2025
Replace nodeenv with bunenv for frontend tooling isolation: **Changes:** - Makefile: Replace `nodeenv --python-virtualenv` with `bunenv --python-virtualenv --bun=latest` - pyproject.toml: Add `bunenv>=0.1.0` to dev dependencies - uv.lock: Update lock file with bunenv dependency **Benefits:** ✅ Purpose-built for Bun (vs Node.js-focused nodeenv) ✅ Maintained actively with modern tooling ✅ GitHub Releases API integration (vs nodejs.org index) ✅ Same proven architecture as nodeenv ✅ Zero breaking changes to workflow **Testing:** Verified bunenv 0.1.0 installs correctly via `uv sync --group dev` **Migration Path:** `nodeenv --python-virtualenv` → `bunenv --python-virtualenv --bun=latest` No other changes required - bunenv provides the same isolation and activation mechanism, just optimized for Bun. Related: JacobCoffee/bunenv#7 (bunenv GitHub Action) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This was referenced Nov 24, 2025
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
Add an official GitHub Action to make bunenv easy to use in CI/CD workflows, similar to
actions/setup-pythonoractions/setup-node.Motivation
Currently, users need to manually install bunenv and create environments in their workflows:
This PR adds a reusable action that simplifies this to:
Changes
New Files
action.yml- Composite GitHub ActionACTION.md- Complete DocumentationUpdated Files
README.md.github/workflows/ci.ymlaction-testjob to validate the actionFeatures
✅ Isolated Environments - Each workflow gets its own Bun environment
✅ Automatic Caching - Caches Bun installations for faster runs
✅ Version Pinning - Lock to specific Bun versions
✅ Cross-Platform - Ubuntu, macOS, Windows support
✅ Variant Support - baseline, musl, profile variants
✅ Zero Config - Sensible defaults, works out of the box
Usage Examples
Basic
Matrix Testing
Polyglot Project
Inputs
bun-versionlatestvariant""(auto)github-token${{ github.token }}cachetruepython-version3.12Outputs
bun-versionbunenv-pathTesting
The PR includes an
action-testjob that:Benefits Over Manual Setup
Before:
After:
Future Enhancements
Potential future improvements (not in this PR):
bunfile.lockversion detectionDocumentation
Complete documentation is in
ACTION.mdincluding:See ACTION.md for full details.
🤖 Generated with Claude Code