feat: bootstrap static musl build pipeline for iperf3
iperf3 static musl build / build-and-release (push) Failing after 16s

This commit is contained in:
Hermes Agent
2026-05-07 22:12:23 +00:00
commit 257889f1e2
7 changed files with 324 additions and 0 deletions
+51
View File
@@ -0,0 +1,51 @@
# static-musl-builds
Automated static `musl` builds for portable Linux binaries.
Current target:
- `iperf3` (x86_64 / amd64)
## What this repo does
- 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.