Skip to content

feat: release candidate CI to allow for kokoro signing #3195

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 3 commits into
base: main
Choose a base branch
from

Conversation

cabljac
Copy link
Contributor

@cabljac cabljac commented Jul 10, 2025

Implements a proper release candidate → final release workflow with signing integration points.

Key Changes

New RC Flow:

  • create_rc=true → Creates RC with unsigned binaries (marked as prerelease)
  • External signing process (Kokoro) replaces RC binaries with signed versions
  • promote_rc=true → Validates signed binaries exist, then promotes to final release

Workflow Safety:

  • Validates all expected signed binaries exist before promotion
  • Prevents incomplete releases with clear error messages
  • Only updates latest tag on final releases, not RCs

Process:

  1. Build & test unsigned binaries
  2. Create RC → upload unsigned binaries for testing
  3. Kokoro signs macOS/Windows binaries, replaces in RC release
  4. Promote RC → validates signatures, creates final release

@cabljac cabljac changed the title @invertase/genkit rc ci feat: release candidate CI to allow for kokoro signing Jul 10, 2025
@cabljac cabljac requested review from Ehesp and Copilot July 10, 2025 09:46
Copilot

This comment was marked as outdated.

@cabljac cabljac requested a review from Copilot July 10, 2025 09:52
Copy link

@Copilot Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull Request Overview

Implements a new release-candidate workflow with unsigned binaries, integration points for external signing (Kokoro), and a promotion path to final releases.

  • Adds create_rc and promote_rc inputs and jobs to the CLI build workflow
  • Validates version format before building
  • Creates RC releases, waits for signed binaries, then promotes to final releases and updates the latest tag
Comments suppressed due to low confidence (3)

.github/workflows/build-cli-binaries.yml:387

  • The uploaded RC asset name omits the file extension. You should include ${{ steps.binary.outputs.ext }} in asset_name so Windows builds get .exe and others keep correct names.
          asset_name: genkit-${{ matrix.target }}

.github/workflows/build-cli-binaries.yml:573

  • The final release asset name also omits the extension. Include ${{ steps.binary.outputs.ext }} in asset_name so the correct file names (e.g., .exe) appear in the release.
          asset_name: genkit-${{ matrix.target }}

.github/workflows/build-cli-binaries.yml:479

  • This uses the RC tag (inputs.version) for the final release. You should use the derived FINAL_VERSION (without -rc...) for tag_name, release_name, and download URLs to correctly represent the final release.
          tag_name: ${{ inputs.version }}

Base automatically changed from @invertase/cli-binary to main July 11, 2025 10:30
@cabljac cabljac force-pushed the @invertase/genkit-rc-ci branch from 3303425 to e07967a Compare July 15, 2025 15:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: No status
Development

Successfully merging this pull request may close these issues.

1 participant