- Go 1.23 or later
- Make (optional)
go build -o xsh main.gogo build -ldflags="-s -w -X github.com/benoitpetit/xsh/cmd.Version=1.0.0" -o xsh main.gogo test ./..../xsh -v feed- Push to
prodbranch for continuous builds - Create a tag for official releases:
git tag -a v1.0.0 -m "Release version 1.0.0"
git push origin v1.0.0The GitHub Actions workflow will automatically:
- Build binaries for Linux, Windows, and macOS (amd64 & arm64)
- Create a GitHub Release with all binaries
- Compress binaries (.tar.gz for Unix, .zip for Windows)
# Linux
GOOS=linux GOARCH=amd64 go build -ldflags="-s -w" -o xsh-linux-amd64 main.go
# Windows
GOOS=windows GOARCH=amd64 go build -ldflags="-s -w" -o xsh-windows-amd64.exe main.go
# macOS Intel
GOOS=darwin GOARCH=amd64 go build -ldflags="-s -w" -o xsh-darwin-amd64 main.go
# macOS Apple Silicon
GOOS=darwin GOARCH=arm64 go build -ldflags="-s -w" -o xsh-darwin-arm64 main.go.
├── browser/ # Browser cookie extraction
├── cmd/ # CLI commands
├── core/ # Core API logic
├── display/ # Output formatting
├── models/ # Data models
├── tests/ # Test suite
├── utils/ # Utilities
└── main.go # Entry point
- Follow standard Go conventions
- Run
go fmtbefore committing - Run
go vetto check for issues - Add tests for new features