A simple Go application demonstrating self-updating functionality from GitHub releases.
- Automatic updates from GitHub releases
- Linux/Windows binaries
- Version checking and display
- SHA256 checksums for integrity verification
Download any of **NON-**latest binary for your platform from the Releases page to check out an update process.
./mytool./mytool --update
# or
./mytool -u./mytool --version
# or
./mytool -v.
├── main.go # Main application entry point
├── cli/cli.go # Command-line argument parsing
├── updater/updater.go # Update logic using go-selfupdate
├── .github/workflows/release.yml # CI/CD pipeline for releases
└── README.md
- The application checks GitHub releases for newer versions
- If a newer version is found, it downloads the appropriate binary for the current platform
- SHA256 checksums are verified for integrity
- The old binary is replaced with the new one
The project uses GitHub Actions for automated releases:
- On push to
mainbranch, a new release is created - Binaries are built for Linux and Windows
- SHA256 checksums are generated and included
- Release notes are automatically generated
- go-selfupdate - Self-updating library
