Skip to content

ci: add Windows code signing and resource generation to release workflows - #128

Merged
samueltuyizere merged 2 commits into
mainfrom
52-windows-defender-blocks-installation-as-malware
Jul 23, 2026
Merged

ci: add Windows code signing and resource generation to release workflows#128
samueltuyizere merged 2 commits into
mainfrom
52-windows-defender-blocks-installation-as-malware

Conversation

@samueltuyizere

Copy link
Copy Markdown
Collaborator

Summary

  • Add Windows version info and application manifest via go-winres (embeds publisher, product name, version, and OS compatibility into the .exe — reduces SmartScreen false positives)
  • Add SignPath code signing integration for Authenticode signatures on Windows binaries
  • Signing is gated on SIGNPATH_API_TOKEN secret — builds still succeed without it

Context

Fixes #52 — Windows Defender was quarantining the binary because it had no embedded metadata, no application manifest, and no digital signature. An unsigned, stripped Go binary that writes to the registry Run key looks suspicious to heuristic
scanners.

…lows

- Add Windows resource file generation (winres.json and winres.xml) for executable metadata
- Generate architecture-specific .syso files (amd64, arm64) using go-winres during CI builds
- Implement Windows binary code signing with certificate and timestamp authority
- Update version information in resource files to match release version
- Add *.syso to .gitignore to exclude generated build artifacts
- Apply Windows signing to both beta and production release workflows
- Enable proper Windows executable branding and authentication for distributed binaries
- Replace local osslsigncode signing with SignPath GitHub Action for secure code signing
- Update beta-release.yml and release.yml workflows with new signing pipeline
- Package Windows binaries (amd64 and arm64) into zip archive for SignPath submission
- Configure SignPath API integration with organization and project credentials
- Add post-signing step to extract and replace binaries from signed artifacts
- Change credential detection from WINDOWS_SIGN_CERT/KEY to SIGNPATH_API_TOKEN
- Improve security by using dedicated code signing service instead of local certificate handling
@samueltuyizere samueltuyizere self-assigned this Jul 23, 2026
@samueltuyizere samueltuyizere linked an issue Jul 23, 2026 that may be closed by this pull request
@samueltuyizere
samueltuyizere merged commit db95751 into main Jul 23, 2026
3 checks passed
@samueltuyizere
samueltuyizere deleted the 52-windows-defender-blocks-installation-as-malware branch July 23, 2026 13:36
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.

Windows Defender blocks installation as malware.

1 participant