Repository navigation
GitHub Actions & Release Automation - #2
Merged
Merged
Conversation
- Add Homebrew installer to dist.toml - Configure tap URL: msetsma/gitnav - Enable automatic formula publishing - Add workflow step to publish formula to tap - Requires HOMEBREW_GITHUB_TOKEN secret to be set
- Specify cargo-dist version 0.13 explicitly in all jobs - Add caching for cargo-dist binary to speed up plan job - Ensures consistent version across plan, build, and publish jobs
- Change version from 0.13 to 0.13.0 (full semantic version) - Cargo install requires patch version number - Update cache key to use 0.13.0
- Add host-mode = true to allow cargo dist plan to work - Fixes error about no targets specified in plan phase - Host mode will use the current platform for planning
- Remove Homebrew installer from dist.toml (was causing plan phase errors) - Remove host-mode setting - Keep standard cargo-dist targets and archives - Update release workflow to manually extract SHA256 checksums - Prepare for manual Homebrew formula updates from release artifacts This fixes the 'no targets specified' error in the plan phase while keeping release workflow functional.
The plan step was failing because it specified targets but didn't enable host-mode, causing cargo-dist to fail with 'You specified --artifacts, disabling host mode, but specified no targets to build!' error. Adding the --host-mode flag resolves this issue.
The plan step was failing because cargo-dist 0.13.0 doesn't support --host-mode flag and the targets defined in dist.toml were causing conflict. Moving target definitions to the build matrix in the workflow allows plan to run without specifying targets directly.
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.
Overview
Migrated from
cargo-distto a fully manual, transparent GitHub Actions workflow. Added comprehensive CI/CD pipeline, documentation, and Homebrew automation.Changes by Category
GitHub Actions Workflows (NEW)
release.yml- Multi-platform release automation (264 lines)workflow_dispatchwith timestamp-based versionstests.yml- CI/CD pipeline (234 lines)Homebrew Integration (NEW)
.github/scripts/update-homebrew.sh- Automated formula updateshomebrew-gitnavtap repository using HOMEBREW_TOKENhomebrew/gitnav.rband replaces:VERSION_PLACEHOLDER→ actual version from git tagLINUX_GNU_SHA_PLACEHOLDER→ Linux x86_64 SHA256LINUX_ARM_SHA_PLACEHOLDER→ Linux ARM64 SHA256MACOS_X86_SHA_PLACEHOLDER→ macOS x86_64 SHA256MACOS_ARM_SHA_PLACEHOLDER→ macOS ARM64 SHA256homebrew/gitnav.rb- Formula templateDocumentation (NEW)
docs/development/github-workflows.md(722 lines)docs/development/roadmap.md- Moved and updated from rootdocs/getting-started/quick-start.md- Quick start guidedocs/guides/usage-guide.md(610 lines) - Comprehensive user guidedocs/guides/scripting.md(633 lines) - Scripting examples and automationdocs/reference/exit-codes.md- Exit code referencedocs/reference/performance.md- Performance benchmarkshomebrew/README.md- Homebrew integration guide (87 lines)Source Code Enhancements
src/exit_codes.rs(NEW, 84 lines)src/output.rs(NEW, 288 lines)Enhanced modules:
src/cache.rs- +417 lines (cache improvements)src/config.rs- +536 lines (config enhancements)src/fzf.rs- +167 lines (fzf integration improvements)src/scanner.rs- +329 lines (scanning improvements)src/preview.rs- +434 lines (preview enhancements)src/main.rs- +266 lines (CLI improvements)src/shell.rs- +55 lines (shell integration)Configuration & Build
Cargo.toml- Added dependencies:serde_json = "1.0"- JSON serializationatty = "0.2"- TTY detection.gitignore- Added.claude/for development toolsREADME.md- Updated:CHANGELOG.md- Added comprehensive v0.2.0 release notes (109 lines):TODO.md(NEW, 149 lines) - Release checklist and process documentationKey Features
Fully Automated Releases - No manual binary compilation needed
Multi-Platform Builds - 6 platforms in parallel (total ~10-15 min)
Complete Homebrew Automation - All SHA256 checksums populated automatically
Professional CI/CD - Linting, testing, security audits, coverage tracking
Comprehensive Documentation - 2000+ lines of user and developer docs
Zero External Dependencies - Uses only standard Rust tooling
Production-Ready - Follows industry best practices from ripgre