Skip to content

fix(ci): replace broken eSigner action with direct CodeSignTool#2143

Merged
tofikwest merged 1 commit into
mainfrom
tofik/fix-windows-signing
Feb 17, 2026
Merged

fix(ci): replace broken eSigner action with direct CodeSignTool#2143
tofikwest merged 1 commit into
mainfrom
tofik/fix-windows-signing

Conversation

@tofikwest
Copy link
Copy Markdown
Contributor

Summary

  • The sslcom/esigner-codesign GitHub Action (both @develop and @v1.3.2) has a bug where it fails to pass -username and -password flags to the underlying CodeSignTool CLI
  • Replaced both action steps with a direct download and invocation of CodeSignTool v1.3.0 via PowerShell — full control, no dependency on their broken wrapper

Test plan

  • Verify Windows build + code signing succeeds
  • Verify all 3 builds pass and S3 upload completes
  • Verify GitHub Release is created with signed artifacts

🤖 Generated with Claude Code

@cursor
Copy link
Copy Markdown

cursor Bot commented Feb 16, 2026

PR Summary

Medium Risk
CI/release pipeline changes that affect Windows installer signing and which AWS credentials/bucket are used for uploads; a misconfiguration could break releases or publish artifacts to the wrong environment.

Overview
Fixes Windows code signing in device-agent-release.yml by removing the sslcom/esigner-codesign GitHub Action steps, installing Java, downloading SSL.com CodeSignTool v1.3.0, and signing each produced .exe via java -jar.

Updates S3 upload steps to select production vs staging AWS credentials and bucket names based on s3_env output, and tweaks the device-agent package.json description text.

Written by Cursor Bugbot for commit aab804c. This will update automatically on new commits. Configure here.

@vercel
Copy link
Copy Markdown

vercel Bot commented Feb 16, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
app Ready Ready Preview, Comment Feb 17, 2026 5:16am
portal Ready Ready Preview, Comment Feb 17, 2026 5:16am

Request Review

@tofikwest tofikwest force-pushed the tofik/fix-windows-signing branch from 7759353 to 7385797 Compare February 16, 2026 23:53
Comment thread .github/workflows/device-agent-release.yml
-override="true"
if ($LASTEXITCODE -ne 0) { throw "Code signing failed for $($_.Name)" }
Write-Host "Signed $($_.Name) successfully"
}
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Signing step silently succeeds when no exe files found

Medium Severity

Get-ChildItem -Filter "*.exe" | ForEach-Object { ... } silently succeeds when no .exe files are found, since PowerShell's ForEach-Object simply doesn't iterate on an empty pipeline. The signing step would pass without signing anything. While the subsequent hash recalculation step would catch a missing .exe, it would produce a confusing error rather than clearly indicating that signing was skipped. Adding a count check before the loop (similar to the jar-not-found check on line 203) would fail fast with a clear message if no files are present to sign.

Fix in Cursor Fix in Web

…deSignTool invocation

The sslcom/esigner-codesign GitHub Action (both @develop and @v1.3.2)
has a bug where it fails to pass -username and -password flags to the
CodeSignTool CLI. Replaced with direct download and invocation of
CodeSignTool v1.3.0 via PowerShell.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@tofikwest tofikwest force-pushed the tofik/fix-windows-signing branch from 8c7ec37 to aab804c Compare February 17, 2026 05:13
@tofikwest tofikwest merged commit 884e0d2 into main Feb 17, 2026
14 checks passed
@tofikwest tofikwest deleted the tofik/fix-windows-signing branch February 17, 2026 05:18
Copy link
Copy Markdown

@cursor cursor Bot left a comment

Choose a reason for hiding this comment

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

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Bugbot Autofix is OFF. To automatically fix reported issues with Cloud Agents, enable Autofix in the Cursor dashboard.

AWS_SECRET_ACCESS_KEY: ${{ needs.detect-version.outputs.s3_env == 'production' && secrets.APP_AWS_SECRET_ACCESS_KEY || secrets.APP_AWS_SECRET_ACCESS_KEY_STAGING }}
AWS_REGION: ${{ secrets.APP_AWS_REGION }}
S3_BUCKET: ${{ secrets.FLEET_AGENT_BUCKET_NAME }}
S3_BUCKET: ${{ needs.detect-version.outputs.s3_env == 'production' && secrets.FLEET_AGENT_BUCKET_NAME || secrets.FLEET_AGENT_BUCKET_NAME_STAGING }}
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Ternary &&/|| pattern silently falls through on empty secrets

Medium Severity

The condition && A || B pattern in GitHub Actions expressions is not a true ternary — if A is falsy (e.g., the production secret is empty or unconfigured), the expression silently falls through to B (the staging secret) even when the condition is true. This means a production release could silently upload artifacts using staging credentials to the staging S3 bucket without any error, if a production secret happens to be missing.

Additional Locations (1)

Fix in Cursor Fix in Web

claudfuen pushed a commit that referenced this pull request Feb 17, 2026
## [1.83.1](v1.83.0...v1.83.1) (2026-02-17)

### Bug Fixes

* **ci:** fix Linux artifact names and consolidate all CI fixes ([#2144](#2144)) ([cbcf420](cbcf420))
* **ci:** handle pre-release tags in device agent version detection ([#2137](#2137)) ([b37f225](b37f225))
* **ci:** pin Windows code signing to stable sslcom/esigner-codesign@v1.3.2 ([#2141](#2141)) ([5f35e35](5f35e35))
* **ci:** replace broken sslcom/esigner-codesign action with direct CodeSignTool invocation ([#2143](#2143)) ([884e0d2](884e0d2))
@claudfuen
Copy link
Copy Markdown
Contributor

🎉 This PR is included in version 1.83.1 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants