Skip to content

KSM-1269 Run Java test matrix on release-branch PRs - #1119

Merged
mgallego-keeper merged 1 commit into
release/sdk/java/core/v17.4.0from
feature/KSM-1269-java-test-workflow-release-branches
Aug 19, 2026
Merged

KSM-1269 Run Java test matrix on release-branch PRs#1119
mgallego-keeper merged 1 commit into
release/sdk/java/core/v17.4.0from
feature/KSM-1269-java-test-workflow-release-branches

Conversation

@stas-schaller

Copy link
Copy Markdown
Contributor

Summary

  • Adds release/sdk/java/core/** to the pull_request and push triggers in test.java.yml. Previously, the Java CI matrix only fired on PRs targeting master; fix PRs developed against a release branch received no CI signal.
  • Adding push: as well covers direct commits to the release branch.

Test plan

  • This PR itself triggers the Java 8/11/17/21 matrix (visible in the PR's checks tab — the fix proves itself)

Add release/sdk/java/core/** to pull_request and push triggers in
test.java.yml so CI fires on PRs targeting or pushing to the release branch.

@mgallego-keeper mgallego-keeper 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.

Approving. The trigger change is correct and self-verifying: all four matrix jobs (Java 8/11/17/21) ran and passed on this PR against base release/sdk/java/core/v17.4.0, which is exactly the case that previously got no signal.

Verified:

  • release/sdk/java/core/** matches all 17 existing Java core release branches, including the non-versioned graph-links-update-v17.0.1.
  • Structure matches the existing test.ruby.yml precedent exactly (master + release glob on both pull_request and push).
  • The paths filter still covers both changed files.
  • Security posture unchanged: contents: read, persist-credentials: false, actions pinned to SHAs, no secrets, no pull_request_target.

Two non-blocking notes.

1. The README changelog entry. Every other 17.4.0 entry describes a change visible to someone consuming the published Maven artifact (generatePassword, isEditable, HTTP timeouts, getFolders(), deleteFolder(), key ID validation, file permissions). A GitHub Actions trigger fix has no effect on the shipped JAR, so it reads as noise in the SDK's release notes. I would drop the README hunk; nothing parses that changelog (the Maven publish workflow does not read it, and no script in the repo references it), so removing it is risk-free. If it stays: append it after KSM-1262 rather than inserting above it, since the list is otherwise append-ordered, and keep it on one line like every other bullet.

2. push on the release glob will double runs. PR #1110 is open with head release/sdk/java/core/v17.4.0 and base master. Once this merges, every push to the release branch fires both push (branch matches the release glob) and pull_request: synchronize on #1110 (base matches master), so 8 matrix jobs per push instead of 4. Draft status does not suppress it, since drafts still emit synchronize.

Not worth blocking on for a 2-minute job, and test.ruby.yml already carries the identical duplication, so this is consistent with the house pattern. One thing worth knowing if it ever does get addressed: a concurrency: block will not dedupe it. The standard group key ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} puts the push run in Test-Java-refs/heads/release/... and the PR run in Test-Java-1110, so both still run. The only real options are dropping the release glob from push: (the release PR to master is open for most of the branch's life, so pull_request already covers it) or accepting the duplication.

Follow-up tickets for the remaining workflows with the same gap are being filed against the audit item in KSM-1269.

@mgallego-keeper
mgallego-keeper merged commit 1b1e4dc into release/sdk/java/core/v17.4.0 Aug 19, 2026
6 checks passed
mgallego-keeper added a commit that referenced this pull request Aug 19, 2026
…cle guard

Brings in #1117 (Java API compatibility), #1119 (CI on release-branch PRs)
and #1120 (17.4.0 docs). Two files conflicted; SecretsManager.kt merged
cleanly and the cycle guard is unchanged.

README.md: both sides appended a changelog entry at the same position.
Kept both, with KSM-1269 ahead of KSM-1270 in landing order.

SecretsManagerTest.kt: the conflict bundled the new cycle test with
testSecretsManagerOptionsAcceptsCustomTimeouts, whose incoming side was a
deletion. That test was not dropped by #1117, it was relocated to the new
TimeoutTest.kt as timeoutOptions_acceptCustomValues with identical
assertions. Resolving in favour of our side would have left the same
assertions duplicated across two files, so the deletion is accepted here
and only the cycle test is kept.

Verified on Zulu JDK 8: 71 tests, 0 failures. That is 69 from the PR head,
plus 3 from TimeoutTest.kt, minus the 1 relocated test. The net diff
against the base branch is the KSM-1270 change alone.
mgallego-keeper added a commit that referenced this pull request Aug 19, 2026
…-531-java-proxy

Resolves the three conflicts against the base commits that landed after the
rebase (#1117, #1119, #1120):

- SecretsManager.kt: keep the proxy-aware uploadFile call and private helper,
  which are supersets of base's timeout threading (proxyUrl,
  allowUnverifiedCertificate, connectTimeoutMillis, readTimeoutMillis all
  carried). Give proxyUrl a null default in the full postFunction form so
  TimeoutTest's postFunction(url, tk, payload, true, readTimeoutMillis = X)
  call binds; the explicit 4-arg overload is kept for the published Java
  descriptor.
- SecretsManagerExceptions.kt: keep base's @jvmoverloads cause constructor and
  KDoc, and restore the serialVersionUID pin (5401507264959279624) so
  exceptions round-trip with jars built from released 16.6.6/17.2.0/17.3.0.
  Without the pin the computed SUID changes to 1054703023149159532 and
  cross-version deserialization throws InvalidClassException.
- README.md: take base's 17.4.0 Breaking Changes block, corrected for this
  merge: KeeperRecord gained one constructor parameter (isEditable) and
  SecretsManagerOptions gained three (connectTimeoutMillis, readTimeoutMillis,
  proxyUrl). All eight base changelog entries and the KSM-531 entry survive.

Merged tree verified on JDK 8: 95 tests, 0 failures; the released 4-arg
postFunction descriptor and the pinned SUID are present in the built jar.
mgallego-keeper added a commit that referenced this pull request Aug 28, 2026
test.js.yml triggered only on pull_request into master, so every JS core fix
that goes to a release branch first, which is all of them, merged with no test
signal. The only checks on those PRs are the Socket Security scans, and a green
tick there says nothing about whether the SDK still passes.

Add release/sdk/javascript/core/** to the pull_request branch filter. The
workflow already lists itself under paths, so this change gates itself.

Deliberately not adding a push trigger on release/**: that is the duplicate-run
pattern KSM-1302 tracks in test.ruby.yml and the four JavaScript KMS workflows,
where the pull_request run has already tested the same commit.

Follows PR #1119, which made the same change to test.java.yml for KSM-1269.
Both are legs of KSM-1284, which tracks the remaining SDK core workflows.
stas-schaller pushed a commit that referenced this pull request Aug 28, 2026
test.js.yml triggered only on pull_request into master, so every JS core fix
that goes to a release branch first, which is all of them, merged with no test
signal. The only checks on those PRs are the Socket Security scans, and a green
tick there says nothing about whether the SDK still passes.

Add release/sdk/javascript/core/** to the pull_request branch filter. The
workflow already lists itself under paths, so this change gates itself.

Deliberately not adding a push trigger on release/**: that is the duplicate-run
pattern KSM-1302 tracks in test.ruby.yml and the four JavaScript KMS workflows,
where the pull_request run has already tested the same commit.

Follows PR #1119, which made the same change to test.java.yml for KSM-1269.
Both are legs of KSM-1284, which tracks the remaining SDK core workflows.
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.

2 participants