Automated build and publish workflow. It automatically detects if the project is a Go module and applies the appropriate pipeline.
gopush 'commit message' [tag]- commit message: Required. The message for the git commit.
- tag: Optional. The tag to create. If not provided, it will be auto-generated.
- --skip-race or -R: Optional. Skip race detection tests (only applicable to Go projects).
- Verifies
go.mod - Runs
gotest(vet, tests, race, coverage, badges) - Commits changes with your message
- Creates/uses tag
- Intelligent push: Pushes to remote (auto-pulls/rebases if remote is ahead).
- Automatically installs binaries with version tag (if
cmd/exists) - Finds dependent modules in search path
- For each dependent (in parallel):
- Removes replace directive for published module
- Runs
go get module@tagandgo mod tidy - If no other replaces exist: auto-publish dependent
- Dependent results print in real-time to the console.
- Executes backup (asynchronous)
- Commits changes with your message
- Creates/uses tag
- Intelligent push: Pushes to remote (auto-pulls/rebases if remote is ahead).
- Executes backup (asynchronous)
See: GOPUSH_FLOW.md
Go Project Success:
✅ vet ok, ✅ tests stdlib ok, ✅ race detection ok, ✅ coverage: 71%, ✅ Tag: v1.0.1, ✅ Pushed ok
Non-Go Project Success:
✅ Tag: v0.1.0, ✅ Pushed ok
# Simple push
gopush 'feat: new feature'
# With specific tag
gopush 'fix: critical bug' 'v2.1.3'0- Success1- Tests failed, git operation failed, or verification failed
When your commit message contains backticks (`), $, or other shell special characters, use single quotes to prevent shell interpretation:
# ❌ Backticks will fail (shell tries to execute as commands)
gopush "feat: Add `afterLine` parameter"
# ✅ Use single quotes
gopush 'feat: Add `afterLine` parameter'
# ✅ Or escape backticks
gopush "feat: Add \`afterLine\` parameter"