Repository navigation
Add SignPath code signing workflow - #730
Merged
Merged
Conversation
Manually started workflow that builds Release, signs our own binaries through SignPath, packages them, then signs the installer. Starts with the test certificate; release-signing is a dropdown option for later. Built-in plugins stay unsigned: PluginValidator compares them against SHA256 hashes taken at compile time, and signing would change their bytes.
1 of 2 tasks
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.
Summary
Adds a manually started workflow that signs LogExpert through SignPath (SignPath Foundation, free signing for open source), starting with the test certificate.
.github/workflows/signpath_sign.yml: builds Release, uploadsbin/Release, has SignPath sign our own binaries, packages the signed files with Nuke (PackwithRestore Compile Testskipped), then signs the installer in a second request. A dropdown choosestest-signingorrelease-signing.src/docs/CODE_SIGNING.md: how it works, what is and isn't signed, the SignPath and GitHub setup, the artifact configuration XML, and the Foundation's conditions for the release certificate.Not signed, on purpose
PluginValidatorchecks them against SHA256 hashes taken at compile time. Signing changes the bytes, so every built-in plugin would fail verification in Release. This needs a separate change that hashes after signing.unins000.exe: needsSignToolset up in the Inno Setup script. Can be done later.Before it can run
test-signingpolicy, artifact configurationsapp-filesandinitial, CI user as SubmitterSIGNPATH_API_TOKENSIGNPATH_ORGANIZATION_IDandSIGNPATH_PROJECT_SLUGTest plan
test-signingUnknownErroris expected with the test certificate)--skip Restore Compile Test(not verified locally, because Nuke's--helpcrashes in a local terminal)signed-packages-test-signingartifact shows a signature, installs, and the built-in columnizers load