Skip to content

ci: pin Marketplace ZIP Signer to 0.1.43#88

Merged
lukaszlenart merged 1 commit into
mainfrom
ci/pin-zipsigner-version
Jun 11, 2026
Merged

ci: pin Marketplace ZIP Signer to 0.1.43#88
lukaszlenart merged 1 commit into
mainfrom
ci/pin-zipsigner-version

Conversation

@lukaszlenart

Copy link
Copy Markdown
Member

Problem

The Nightly release job (and by extension the release workflow) intermittently fails at :signPlugin:

Execution failed for task ':signPlugin'.
> No Marketplace ZIP Signer executable found.
  Please ensure the `zipSigner()` entry is present in the project dependencies section
  or `intellijPlatform.signing.cliPath` extension property

This is misleading — zipSigner() is already declared and defaultRepositories() is configured. The build config is unchanged since the last successful publish (v261.19027-nightly.3, 2026-05-20).

Root cause

zipSigner() was declared without a version, so the signer is resolved as "latest". The gradle/actions/setup-gradle cache is restored from prior runs — including non-signing build.yml runs that never download marketplace-zip-signer. When the nightly restores such a cache, Gradle ends up with stale metadata and an empty signing configuration, producing the "no executable found" error. Re-running the job (which re-resolves) works around it, but the flake recurs.

Verified locally: the exact same config + marketplace-zip-signer:0.1.43 resolves and runs fine even on a cold, --refresh-dependencies download — confirming the failure is environment/cache-specific, not a config bug.

Fix

Pin the signer version so the dependency is always deterministically resolvable:

zipSigner("0.1.43")

0.1.43 is the version that "latest" currently resolves to, so this is behavior-preserving while removing the cache-dependent flake.

Testing

  • signPlugin with the pinned version resolves and runs the signer (fails only on an intentionally-invalid test cert, not "no executable found").
  • CHANGELOG updated under Unreleased.

🤖 Generated with Claude Code

The nightly/release workflows intermittently fail at signPlugin with
"No Marketplace ZIP Signer executable found" even though zipSigner() is
declared. With no version pinned, a stale Gradle cache restored by
gradle/actions (e.g. saved by a non-signing build.yml run) can leave the
signing configuration empty. Pinning the version makes the signer
dependency deterministically resolvable.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown

🔌 Plugin artifact ready for testing!

Download from Actions artifacts

Artifact: struts2-261.19027.1

@lukaszlenart lukaszlenart enabled auto-merge (squash) June 11, 2026 05:14
@lukaszlenart lukaszlenart merged commit 2849715 into main Jun 11, 2026
5 checks passed
@lukaszlenart lukaszlenart deleted the ci/pin-zipsigner-version branch June 11, 2026 05:18
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.

1 participant