Skip to content

fix(ci): skip windows signing without secrets#3186

Merged
lidel merged 1 commit into
mainfrom
fix/ci-skip-signing-without-secrets
Jul 17, 2026
Merged

fix(ci): skip windows signing without secrets#3186
lidel merged 1 commit into
mainfrom
fix/ci-skip-signing-without-secrets

Conversation

@lidel

@lidel lidel commented Jul 16, 2026

Copy link
Copy Markdown
Member

Problem

Since 10 June, every Dependabot PR's Windows build hangs for 40 minutes and then gets cancelled.

The build tries to sign the .exe, but Dependabot PRs cannot read our signing secrets. The credentials arrive empty, so the Azure signing tool opens a browser and waits for someone to log in. Nobody can log in on a CI runner. It used to fail fast instead, until electron-builder 26.15.2 dropped the check that caught this (electron-userland/electron-builder#9687).

We already skip signing when secrets are missing, but that step only looks for forks, and Dependabot branches live in this repo.

Fix

  • Check whether the Azure credential is really there, instead of guessing from the trigger type. One path covers forks, Dependabot, and anything else without secrets.
  • If it is missing, drop the signing config so Windows still builds and uploads the .exe.

Signing on main is unchanged, and macOS already handled this on its own. These PR binaries are unsigned: fine for testing, not for shipping.

@lidel
lidel force-pushed the fix/ci-skip-signing-without-secrets branch from cdbe24e to 13ac46a Compare July 16, 2026 23:45
The fork guard never fired for Dependabot PRs, so Windows builds tried
to sign with empty Azure credentials and hung until the 40 minute job
timeout. Gate on whether the credential is present instead of matching
on trigger type, which covers forks, Dependabot, and any future
secret-less trigger on one path.

Dependabot pushes its branches into the repo, so head.repo.fork is
false, yet its runs only get the Dependabot secrets store and
secrets.AZURE_* expand to empty strings. electron-builder 26.15.2
dropped the preflight that used to fail fast on this
(electron-userland/electron-builder#9687), so Invoke-TrustedSigning
falls through DefaultAzureCredential to an interactive browser login
the runner can never answer.

The probe step exists because steps[*].if cannot read the secrets
context. Scoping the secret to that step keeps it out of every other
step in the job.
@lidel
lidel force-pushed the fix/ci-skip-signing-without-secrets branch from 13ac46a to bae2e61 Compare July 17, 2026 02:54
@lidel
lidel marked this pull request as ready for review July 17, 2026 10:01
@lidel
lidel merged commit 5cd1123 into main Jul 17, 2026
9 checks passed
@lidel
lidel deleted the fix/ci-skip-signing-without-secrets branch July 17, 2026 10:01
@lidel

lidel commented Jul 17, 2026

Copy link
Copy Markdown
Member Author

Will test in #3177

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