ci(app): electron builder Windows signing workaround#18479
Merged
y3rsh merged 6 commits intochore_release-8.5.0from Jun 2, 2025
Merged
ci(app): electron builder Windows signing workaround#18479y3rsh merged 6 commits intochore_release-8.5.0from
y3rsh merged 6 commits intochore_release-8.5.0from
Conversation
mjhuff
approved these changes
Jun 2, 2025
Contributor
mjhuff
left a comment
There was a problem hiding this comment.
Makes sense to me. Hopefully it's smooth sailing ⛵
This was referenced Jun 30, 2025
sfoster1
added a commit
that referenced
this pull request
Jul 1, 2025
This reverts #18450 and #18479 to revert to digicert signing for our windows builds. The digicert certificate has the Common Name "Opentrons Labworks Inc." and the ATS cert has the common name "OPENTRONS LABWORKS INC.". These were both determined automatically by the CA from our identity submissions, as is apparently required in the code signing cert baseline requirements. Why are they different? A mystery for the ages. In either case, electron-updater requires that _if_ you specify a `publisherName` in your `app-update.yml` (which we do specifically on windows, since it is generated from our electron-builder config and on windows we set it because nsis packager wants it for doing signing in the first place) _then_ the autoupdate package that will be installed must have a CSC CN exactly matching an entry in `publisherName` or the update will fail. Therefore updates in between <=8.4.1 and >=8.5.0 would fail if we switched to ATS. Instead, we'll switch back to digicert for now; we'll build the new CN into our publisher names; and then whenever we're confident enough people are on >=8.5.0 and therefore have the new publisher names, we'll switch over again (we can't switch immediately because we don't do incremental updates, just full overwrites, so the intermediate update state would go away). This is upsetting. ## Testing - [x] the signing has to work again, which is never guaranteed given the shonky state of dco integration - [x] we should make sure we can update from 8.4.1 to this by making sure the CN of the digital signature on the build from this pr is exactly `Opentrons Labworks Inc.` (and updating to it in the resulting alpha) - [x] we should make sure we can update from this to something signed with the new cert (by mucking around with the latest-alpha or something? or just checking that the app-update.yml in the app's install directory has both names) Supercedes #18785 for build branch name reasons.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Overview
There’s an issue in Electron Builder/TrustedSigning that causes an error when installing the required tooling for code signing. Windows signing fails. I don't know how the build I did against edge PR ever even worked.
electron-userland/electron-builder#9076
@y3rsh is ok with this pain using a beta and does not want to fall back to using DigiCert. BUT it will require diligence.
Solution
The work around comes from
electron-userland/electron-builder#9076 (comment)
TrustedSigningat the specific version Electron Builder wantsTest Plan and Hands on Testing
Review requests
I considered directly trying to install the dependencies... but I think it seems best to leave that to
TrustedSigning. So the invoke is necessary.