-
Notifications
You must be signed in to change notification settings - Fork 178
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
build: Sign windows builds via remote key storage #15718
build: Sign windows builds via remote key storage #15718
Conversation
Integrates code signing with a key stored in digicert one to app build workflows. There are a couple caveats: - You can do this locally if you have a windows machine and if you have the right accounts and permissions. Read: you basically can't do this locally - Digicert for some reason charges per signature. We sign a lot of stuff. Therefore, we are only going to produce signed windows builds for releases and if a dev really needs to by pushing a branch that has "as-release" in it (in the same way we only do app builds if you push a branch that has app-build in it - so building and signing both windows apps would require a branch that has app-build-both-as-release in it) - This just doesn't work at all with electron-builder, and they don't seem to want to change things to fix it; specifically, you can only configure e-b to pass along a key link and a password, and you basically can't do that anymore. So we have to have a (thankfully simple) custom sign script. Closes RDEVOPS-128
6ff6c2c
to
d764028
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is great, thank you!
- I successfully installed the signed Windows build without issues!
- Just left one comment on timestamp server rate-limiting.
forceCodeSigning: WINDOWS_SIGN, | ||
rfc3161TimeStampServer: 'http://timestamp.digicert.com', | ||
sign: 'scripts/windows-custom-sign.js', | ||
signDlls: true, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do we need to take into account timestamp server rate-limiting, per this comment?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
digicert's timestamp server is rate limited to 100 request/5s and 1000 request/5min which I don't think we would hit unless doing about 8 windows builds at the same time (we sign ~60 files), which should be very rare.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
All makes sense to me. Thanks for taking care of it.
https://builds.opentrons.com/app/Opentrons-v7.3.1-win-b45460-RDEVOPS-128-fix-windows-signing-app-build-both-as-release.exe
Has the new certificate.
Integrates code signing with a key stored in digicert one to app build workflows. There are a couple caveats: - You can do this locally if you have a windows machine and if you have the right accounts and permissions. Read: you basically can't do this locally - Digicert for some reason charges per signature. We sign a lot of stuff. Therefore, we are only going to produce signed windows builds for releases and if a dev really needs to by pushing a branch that has "as-release" in it (in the same way we only do app builds if you push a branch that has app-build in it - so building and signing both windows apps would require a branch that has app-build-both-as-release in it) - This just doesn't work at all with electron-builder, and they don't seem to want to change things to fix it; specifically, you can only configure e-b to pass along a key link and a password, and you basically can't do that anymore. So we have to have a (thankfully simple) custom sign script. Closes RDEVOPS-128 ## to leave draft - [x] this produces a signed installer that passes smartscreen - [x] this only does that on branches with the right kinds of names
## `cherry-pick` 246efcb Must update `chore_release-7.4.0` so that windows builds work and we may test an update. To understand the changes see #15718 Co-authored-by: Seth Foster <[email protected]>
Integrates code signing with a key stored in digicert one to app build workflows.
There are a couple caveats:
Closes RDEVOPS-128
to leave draft