Releases are created only from reviewed commits on main. The release workflow
builds all archives in one GitHub-hosted Ubuntu job, produces a SHA-256 manifest,
attests the manifest, and creates the GitHub Release without a long-lived token.
- Update the default
versionincmd/oai-smoke/main.go, its unit test, andCHANGELOG.mdin one pull request. - Run
go test ./...,go test -race ./...,go vet ./..., and the repository CI matrix. - Merge the reviewed pull request to protected
main.
Create an annotated vMAJOR.MINOR.PATCH tag at the exact reviewed main commit
and push it. The workflow rejects a tag that does not match the source version.
It builds these CGO_ENABLED=0 targets:
- Linux: AMD64 and ARM64
- macOS: AMD64 and ARM64
- Windows: AMD64 and ARM64
The build uses -trimpath, omits the Go build ID, fixes archive timestamps to
the tagged commit time, and creates archives with stable file ordering and
metadata. The workflow builds the complete archive set twice and compares every
byte before publishing. Every archive contains the binary, LICENSE, and
README.en.md.
After the workflow succeeds:
gh release download vMAJOR.MINOR.PATCH --repo airouter-dev/openai-compatible-api-smoke-test
sha256sum --check checksums.txt
gh attestation verify oai-smoke_MAJOR.MINOR.PATCH_linux_amd64.tar.gz \
--repo airouter-dev/openai-compatible-api-smoke-testInstall and run at least one downloaded archive on each available operating system. Never replace an asset on an existing release. If an artifact is wrong, publish a corrected patch version.