Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
57 changes: 57 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,13 +31,57 @@ env:
IMAGE_PREFIX: ${{ github.repository }}

jobs:
# ============================================================================
# Job 0: Generate protobuf code (required by all builds)
# ============================================================================
generate-proto:
name: Generate Protobuf Code
runs-on: ubuntu-latest
timeout-minutes: 10

steps:
- name: Checkout
uses: actions/checkout@v4

- name: Setup Go
uses: actions/setup-go@v5
with:
go-version: '1.21'

- name: Setup protoc
uses: arduino/setup-protoc@v3
with:
Copy link

Copilot AI Nov 20, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[nitpick] The protoc version '25.x' should be documented or aligned with project requirements. Consider adding a comment explaining the version choice or verifying this matches the version used in other workflows.

Suggested change
with:
with:
# Using protoc version 25.x to match project requirements and ensure compatibility with generated code.
# This version is aligned with other workflows and documented in the project's build instructions.

Copilot uses AI. Check for mistakes.
version: '25.x'
repo-token: ${{ secrets.GITHUB_TOKEN }}

- name: Install protoc-gen-go
run: |
go install google.golang.org/protobuf/cmd/protoc-gen-go@latest
go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest

- name: Install buf
uses: bufbuild/buf-setup-action@v1
with:
github_token: ${{ secrets.GITHUB_TOKEN }}

- name: Generate protobuf code
run: make proto-go

- name: Upload generated proto code
uses: actions/upload-artifact@v4
with:
name: proto-generated
path: pkg/plugin/gen/
retention-days: 1

# ============================================================================
# Job 1: Build release and debug binaries for all platforms
# ============================================================================
build-binaries:
name: Build Binaries (${{ matrix.service }}-${{ matrix.os }}-${{ matrix.arch }})
runs-on: ${{ matrix.runner }}
timeout-minutes: 20
needs: generate-proto

strategy:
fail-fast: false
Expand All @@ -63,6 +107,12 @@ jobs:
with:
fetch-depth: 0 # Full history for version info

- name: Download generated proto code
uses: actions/download-artifact@v4
with:
name: proto-generated
path: pkg/plugin/gen/

- name: Setup Go
uses: actions/setup-go@v5
with:
Expand Down Expand Up @@ -186,6 +236,7 @@ jobs:
name: Build Rust Proxy (${{ matrix.target }})
runs-on: ${{ matrix.runner }}
timeout-minutes: 30
needs: generate-proto

strategy:
fail-fast: false
Expand Down Expand Up @@ -214,6 +265,12 @@ jobs:
with:
fetch-depth: 0

- name: Download generated proto code
uses: actions/download-artifact@v4
with:
name: proto-generated
path: pkg/plugin/gen/

- name: Setup Rust
uses: dtolnay/rust-toolchain@stable
with:
Expand Down
Loading