Skip to content

Add release workflow to publish pre-built binaries#22

Merged
Swimburger merged 3 commits intomainfrom
devin/1773855900-add-release-workflow
Mar 18, 2026
Merged

Add release workflow to publish pre-built binaries#22
Swimburger merged 3 commits intomainfrom
devin/1773855900-add-release-workflow

Conversation

@Swimburger
Copy link
Member

@Swimburger Swimburger commented Mar 18, 2026

Summary

Adds a GitHub Actions workflow that builds cross-platform protoc-gen-openapi binaries and publishes them as GitHub Release assets when a version tag (v*) is pushed.

Motivation: Currently, consumers must install Go and compile from source via go install on every CI run, which takes ~31s. Pre-built binaries allow direct download instead (~1-2s).

Platforms: linux/amd64, linux/arm64, darwin/amd64, darwin/arm64, windows/amd64

Binary naming: protoc-gen-openapi-{os}-{arch}[.exe]

Review & Testing Checklist for Human

  • This workflow cannot be tested via PR CI — it only triggers on tag push. After merging, push a new tag (e.g. v0.1.13) to verify it creates a release with the expected binary assets.
  • Verify the Go version constraint (^1.20) is still appropriate for this project's go.mod.
  • Consider whether windows/arm64 should be added to the platform list.

Notes

  • The VERSION variable is captured from GITHUB_REF_NAME but not currently injected into the binary via ldflags. This is fine since the binary doesn't read a version from ldflags, but could be wired up later if needed.
  • No SHA256 checksums file is generated. Could be added in a follow-up if desired.

Link to Devin session: https://app.devin.ai/sessions/9aa3a5abd77d4e069bcfade48423e986
Requested by: @Swimburger


Open with Devin

Co-Authored-By: Niels Swimberghe <3382717+Swimburger@users.noreply.github.com>
@devin-ai-integration
Copy link

🤖 Devin AI Engineer

I'll be helping with this pull request! Here's what you should know:

✅ I will automatically:

  • Address comments on this PR. Add '(aside)' to your comment to have me ignore it.
  • Look at CI failures and help fix them

Note: I can only respond to comments from users who have write access to this repository.

⚙️ Control Options:

  • Disable automatic comment and CI monitoring

devin-ai-integration[bot]

This comment was marked as resolved.

Co-Authored-By: Niels Swimberghe <3382717+Swimburger@users.noreply.github.com>
Co-Authored-By: Niels Swimberghe <3382717+Swimburger@users.noreply.github.com>
@devin-ai-integration
Copy link

Self-Review

The release workflow looks clean. A few observations:

No issues found

  • Checkout before setup-go: Correctly ordered (checkout first, then setup-go). The Devin Review bot flagged this as a bug but then self-corrected — the ordering is correct.
  • Platform matrix: All 6 platforms covered (linux/amd64, linux/arm64, darwin/amd64, darwin/arm64, windows/amd64, windows/arm64).
  • Build flags: -trimpath -ldflags="-s -w" strips debug info and reduces binary size — good for distribution.
  • Go version: ^1.20 matches go.mod (go 1.20).

Minor observations (no action needed):

  • No SHA256 checksums: Could add a checksums file in a follow-up for supply chain verification, but not critical for an internal tool.
  • No version injection via ldflags: The binary doesn't read a version from ldflags today, so this is fine. Could be wired up later if the binary ever needs to report its own version.
  • softprops/action-gh-release@v2: Uses the latest major version. Could pin to a specific SHA for reproducibility, but @v2 is standard practice.

@Swimburger Swimburger merged commit 70e83b5 into main Mar 18, 2026
2 checks passed
@Swimburger Swimburger deleted the devin/1773855900-add-release-workflow branch March 18, 2026 20:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet