feat: add more static musl tools
busybox static musl build / build-and-release (push) Failing after 31s
doggo static musl build / build-and-release (push) Successful in 19s
gdu static musl build / build-and-release (push) Successful in 37s
iperf3 static musl build / build-and-release (push) Successful in 20s
speedtest-go static musl build / build-and-release (push) Successful in 32s
busybox static musl build / build-and-release (push) Failing after 31s
doggo static musl build / build-and-release (push) Successful in 19s
gdu static musl build / build-and-release (push) Successful in 37s
iperf3 static musl build / build-and-release (push) Successful in 20s
speedtest-go static musl build / build-and-release (push) Successful in 32s
This commit is contained in:
@@ -2,50 +2,16 @@
|
||||
|
||||
Automated static `musl` builds for portable Linux binaries.
|
||||
|
||||
Current target:
|
||||
- `iperf3` (x86_64 / amd64)
|
||||
## Tools
|
||||
- `iperf3`
|
||||
- `gdu`
|
||||
- `speedtest-go`
|
||||
- `doggo`
|
||||
- `busybox`
|
||||
|
||||
## What this repo does
|
||||
Each release publishes:
|
||||
- the raw binary
|
||||
- a `.tar.gz`
|
||||
- a `.sha256`
|
||||
|
||||
- Tracks a pinned upstream version in `versions/`
|
||||
- Builds a fully static `musl` binary with Gitea Actions
|
||||
- Publishes versioned release assets to Gitea Releases
|
||||
- Is designed to grow with more binaries later
|
||||
|
||||
## Current output
|
||||
|
||||
For each `iperf3` release build, the workflow publishes:
|
||||
- `iperf3-<version>-linux-amd64-musl-static`
|
||||
- `iperf3-<version>-linux-amd64-musl-static.tar.gz`
|
||||
- `iperf3-<version>-linux-amd64-musl-static.sha256`
|
||||
|
||||
## Repo layout
|
||||
|
||||
- `versions/iperf3.version` — tracked upstream version
|
||||
- `scripts/build_iperf3.sh` — static build script
|
||||
- `scripts/sync_iperf3_version.py` — checks upstream and updates pinned version
|
||||
- `scripts/publish_release.py` — idempotent release asset publisher for Gitea
|
||||
- `.gitea/workflows/iperf3.yml` — CI pipeline
|
||||
|
||||
## How updates happen
|
||||
|
||||
1. `scripts/sync_iperf3_version.py` checks the latest upstream iperf3 release.
|
||||
2. If a newer version exists, it updates `versions/iperf3.version`.
|
||||
3. A commit is pushed.
|
||||
4. Gitea Actions builds the static binary and uploads release assets.
|
||||
|
||||
## Manual local update example
|
||||
|
||||
```bash
|
||||
python3 scripts/sync_iperf3_version.py --update-file
|
||||
if ! git diff --quiet -- versions/iperf3.version; then
|
||||
git add versions/iperf3.version
|
||||
git commit -m "chore(iperf3): bump to $(cat versions/iperf3.version)"
|
||||
git push
|
||||
fi
|
||||
```
|
||||
|
||||
## Notes
|
||||
|
||||
- The current workflow targets `amd64` first because that is the most broadly useful Linux target.
|
||||
- The structure is intentionally generic so more binaries can be added later without reworking the repo.
|
||||
Versions are pinned in `versions/*.version` and refreshed by cron. Matching Gitea Actions workflows build and publish updated releases automatically.
|
||||
|
||||
Reference in New Issue
Block a user