Skip to content

Latest commit

 

History

History
44 lines (33 loc) · 1.63 KB

File metadata and controls

44 lines (33 loc) · 1.63 KB

Releasing oai-smoke

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.

Prepare

  1. Update the default version in cmd/oai-smoke/main.go, its unit test, and CHANGELOG.md in one pull request.
  2. Run go test ./..., go test -race ./..., go vet ./..., and the repository CI matrix.
  3. Merge the reviewed pull request to protected main.

Publish

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.

Verify

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-test

Install 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.