Skip to content

ci: fix skipped release publication jobs - #841

Merged
jbeckwith-oai merged 5 commits into
mainfrom
codex/fix-release-publish-gate
Aug 3, 2026
Merged

ci: fix skipped release publication jobs#841
jbeckwith-oai merged 5 commits into
mainfrom
codex/fix-release-publish-gate

Conversation

@jbeckwith-oai

@jbeckwith-oai jbeckwith-oai commented Aug 3, 2026

Copy link
Copy Markdown
Contributor

What changed

  • Materialize and validate the selected release SHA, tag, and publish decision through step outputs.
  • Add cancellation-safe status checks to the source selector, runtime compatibility gate, and Maven Central publication gate.
  • Add a final release outcome invariant that fails if release-PR CI, runtime compatibility, or Maven publication is unexpectedly skipped or fails.

Root cause

PR #836 split automatic releases and manual retries into mutually exclusive jobs. Exactly one source job is therefore intentionally skipped on every run.

GitHub applies an implicit success() status check to a job-level if that does not contain a status-check function. A skipped job propagates through the dependency chain, so the downstream runtime and publication jobs were skipped even though the fan-in source-selection job succeeded and selected v4.50.0. GitHub reports skipped jobs as successful, which left both the automatic run and guarded retry green.

The earlier output-only diagnosis was incomplete. Step-backed outputs remain useful for validation and observability, but the scheduler-safe !cancelled() conditions are the root fix.

Validation

  • git diff --check
  • YAML parsing with yq
  • Bash syntax checks on the exact selector and outcome scripts
  • Actionlint 1.7.12: clean
  • Selector matrix: 7/7 cases passed
  • Release outcome matrix: 21/21 cases passed, including both observed silent-skip states as expected failures
  • Zizmor 1.28.0: no new finding; four inherited medium warnings for stale version comments on unchanged pinned actions
  • Safe local publication: ./gradlew publish -PpublishLocal --no-configuration-cache succeeded
  • Verified POM, main JAR, sources JAR, Javadoc JAR, and Gradle metadata for all four published modules (20 required files); all archives and POMs parsed successfully
  • Maven consumer smoke: the repository's Core, OkHttp, and Bedrock probes compiled for Java 8 against the locally published 4.50.0 coordinates and ran on Java 21
  • Exact release-source preflight at 3c9440d1f5dd6917379d6912155b3b3e8d82c767: core tests passed under GraalVM 21's native-image agent and generated six non-empty metadata files
  • Final hosted checks passed on the current-main merge: build/Jackson compatibility, tests, lint, API compatibility, CodeQL, dependency submission, Java 8/25 runtime compatibility, and the required aggregator

The only intentionally untested operation on the PR is the credentialed Central Portal upload. After merge, the guarded v4.50.0 retry remains the production end-to-end confirmation; the workflow now cannot finish green if that publication path is skipped.

Copilot AI review requested due to automatic review settings August 3, 2026 21:16

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Pull request overview

This PR fixes the CI “publish gate” in .github/workflows/create-releases.yml by materializing the release-source decision as explicit step outputs (strings) and validating release metadata when publishing is enabled, so downstream jobs reliably receive should_publish == 'true' when appropriate.

Changes:

  • Replaces expression-based job outputs in the release fan-in job with step-backed outputs written to $GITHUB_OUTPUT.
  • Adds a bash selection/validation step that chooses the release source (retry vs automatic) and fails fast on malformed source_sha / release_tag when publication is enabled.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Copilot AI review requested due to automatic review settings August 3, 2026 22:04
@jbeckwith-oai jbeckwith-oai changed the title ci: fix Maven publish gate ci: fix skipped release publication jobs Aug 3, 2026

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 1 out of 1 changed files in this pull request and generated no new comments.

Copilot AI review requested due to automatic review settings August 3, 2026 22:23

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 1 out of 1 changed files in this pull request and generated no new comments.

@jbeckwith-oai
jbeckwith-oai marked this pull request as ready for review August 3, 2026 22:41
@jbeckwith-oai
jbeckwith-oai requested a review from a team as a code owner August 3, 2026 22:41
@openai-sdks

openai-sdks Bot commented Aug 3, 2026

Copy link
Copy Markdown

OkTest Summary

237/237 SDK tests passed in 15.993s for Java SDK PR #841.

Test results — 42 files
Test Result Time
tests/chat-completions-complex-body.test.ts ✅ Passed 159ms
tests/chat-completions-create.test.ts ✅ Passed 676ms
tests/chat-completions-stream.test.ts ✅ Passed 360ms
tests/files-content-binary.test.ts ✅ Passed 215ms
tests/files-create-multipart.test.ts ✅ Passed 286ms
tests/files-list-pagination.test.ts ✅ Passed 326ms
tests/initialize-config.test.ts ✅ Passed 149ms
tests/instance-isolation.test.ts ✅ Passed 244ms
tests/models-list.test.ts ✅ Passed 183ms
tests/responses-background-lifecycle.test.ts ✅ Passed 312ms
tests/responses-body-method-errors.test.ts ✅ Passed 496ms
tests/responses-cancel-timeout.test.ts ✅ Passed 228ms
tests/responses-cancel.test.ts ✅ Passed 355ms
tests/responses-compact-retries.test.ts ✅ Passed 377ms
tests/responses-compact.test.ts ✅ Passed 314ms
tests/responses-create-advanced-stream.test.ts ✅ Passed 338ms
tests/responses-create-advanced.test.ts ✅ Passed 1.321s
tests/responses-create-disconnect.test.ts ✅ Passed 1.164s
tests/responses-create-errors.test.ts ✅ Passed 278ms
tests/responses-create-malformed-api-responses.test.ts ✅ Passed 325ms
tests/responses-create-retries.test.ts ✅ Passed 740ms
tests/responses-create-stream-failures.test.ts ✅ Passed 218ms
tests/responses-create-stream-timeout.test.ts ✅ Passed 219ms
tests/responses-create-stream-wire.test.ts ✅ Passed 6.034s
tests/responses-create-stream.test.ts ✅ Passed 127ms
tests/responses-create-terminal-states.test.ts ✅ Passed 351ms
tests/responses-create-timeout.test.ts ✅ Passed 221ms
tests/responses-create.test.ts ✅ Passed 272ms
tests/responses-delete.test.ts ✅ Passed 216ms
tests/responses-input-items-errors.test.ts ✅ Passed 289ms
tests/responses-input-items-list.test.ts ✅ Passed 328ms
tests/responses-input-items-options.test.ts ✅ Passed 622ms
tests/responses-input-tokens-count-timeout.test.ts ✅ Passed 224ms
tests/responses-input-tokens-count.test.ts ✅ Passed 246ms
tests/responses-malformed-inputs.test.ts ✅ Passed 4.981s
tests/responses-not-found-errors.test.ts ✅ Passed 396ms
tests/responses-parse.test.ts ✅ Passed 686ms
tests/responses-retrieve-retries.test.ts ✅ Passed 278ms
tests/responses-retrieve.test.ts ✅ Passed 255ms
tests/responses-stored-method-errors.test.ts ✅ Passed 1.12s
tests/retry-behavior.test.ts ✅ Passed 3.506s
tests/sdk-error-shape.test.ts ✅ Passed 416ms

View OkTest run #30860892713

SDK merge (7bc5b2321e75) · head (3df36b6fdc6c) · base (99811b2329aa) · OkTest (91635c6a2723)

@HAYDEN-OAI HAYDEN-OAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Reviewed the complete exact-head workflow, all commits and prior discussion, both previously green-but-skipped production release runs, the pinned release-please output contract, reusable runtime gating, exact-source Maven publication invariants, protected secrets/permissions, cancellation, and retry/recovery behavior. The explicit !cancelled() checks correctly avoid skipped-dependency propagation without keeping cancelled runs alive; selected SHA/tag outputs are validated and consistently propagated, and the final outcome fails closed on unexpected skips or failures. No substantive correctness, security, compatibility, or recovery issues found.

Copilot AI review requested due to automatic review settings August 3, 2026 22:58

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 1 out of 1 changed files in this pull request and generated no new comments.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: f02441aa2a

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread .github/workflows/create-releases.yml Outdated
Copilot AI review requested due to automatic review settings August 3, 2026 23:02

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 1 out of 1 changed files in this pull request and generated no new comments.

@jbeckwith-oai
jbeckwith-oai merged commit 2049667 into main Aug 3, 2026
12 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants