-
Notifications
You must be signed in to change notification settings - Fork 10.4k
Re-enable signing validation #13899
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
Re-enable signing validation #13899
Conversation
We'll see how https://dev.azure.com/dnceng/internal/_build/results?buildId=349950 goes… |
@joeloff that internal build didn't validate correct, same 98 unsigned files reported. Please have a look at this PR and https://dev.azure.com/dnceng/internal/_build/results?buildId=349950&view=logs&s=3df7d716-4c9c-5c26-9f45-11f62216640d&j=b11b921d-8982-5bb3-754b-b114d42fd804 and let me know what's going on. Much appreciated. |
According to the logs the 98 files are excluded. Arcade is flagging it as an error All files are signed. Wonder if it might be returning a non-zero result. |
@dougbu, I think I know what the problem is. The external cabinet files for the MSIS are not in the nupkg: Could not find file 'C:\Users\VssAdministrator\AppData\Local\Temp\SignCheck\x4o2pvoj.sh1\sfx_x64.cab'. |
@joeloff we haven't had to include those files in the .nupkg before. I suspect the verification infrastructure in Arcade is different from what we were doing before. In any case, I seem to recall we did something to at least archive those files not that long ago. Which .nupkg should they be in? That is, what's the fix? |
The nupkgs you're pushing to VS contain the MSI and CAB file. However, the folder to where the SignCheck tool is being pointed only has the MSI and not the CAB file. The sign validation binlog will have the information, but I haven't been able to locate that file yet. |
According to the build step: D:\a\1\s\artifacts\log\Debug\SigningValidation.binlog I thought it might be in the Windows_logs artifact, but don't see it there. |
Unfortunately, the post-build stages don't seem to create any new artifacts. @riarenas and @JohnTortugo is attempting to validate signing locally after downloading the artifacts the only workaround? |
And, @joeloff I thought you were able to reproduce problems locally? If not, can you try the validation using one of the offending .nupkg files from that build? |
You should be able to repro this locally. The artifacts that SignCheck run upon should be the same ones that you download from the Artifacts link in the UI. |
The issue I found is with the exclusion itself. If you don't specify any wildcards, the exclusion is used literally. If you look at the blob artifacts, you'll see that the MSI without the cab is published. This is likely what's being used. If the CAB is present next to the MSI you don't see the error. The exclusions work as I pointed out earlier. The problem is that whichever folder or file pattern is assed to sign check points to a location that has an MSI and not the external CAB. That will cause the failures because the MSI lists all the files inside it, but their not in the MSI and the CAB they're supposed to be in is missing from the location. I'll try and give you a call sometime |
So I found the issue. The problem is with how archives are processed. When the MSI is encountered prior to the external cab, extracting the MSI content would file. We first need to extract the archive and then verify its contents. The current implementation extract and immediately verifies each file. We also need to account for duplicate cabs in different folders inside zips/nupkgs/vsix files. @dougbu, touching Arcade would propagate through all the 3.0 branches I think. Is there a way to keep the step active, but ignore the error and continue? That way we can still visually inspect the results. |
0bb0201
to
e03a57c
Compare
e03a57c
to
32d939c
Compare
No longer blocked. Signing worked in https://dev.azure.com/dnceng/internal/_build/results?buildId=386178 Will not merge until 3.0.2. |
32d939c
to
0e31e6d
Compare
- #13864 - update exclusions to get them working
0e31e6d
to
fbacdf2
Compare
- also switch VS.Redist.* packages to use license expressions
fbacdf2
to
6394a4d
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.
Seems fine.
Test official build corresponding to this PR is https://dev.azure.com/dnceng/internal/_build/results?buildId=418214&view=results. That was successful i.e. it didn't hit current issues with icon files nor previous issues with .msi and .cab files. Thanks @joeloff❕ |
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.
So we have to manually update the Arcade SDK version? I thought it flowed through the DARC process like other repos do
Kind-of and sort-of but not sufficiently. In particular, the Arcade SDK contains one or two versions files that are not updated automatically. |
Summary
This PR re-enables signing validation for official builds of this repo. We unfortunately had to disable such validation in the 3.0 GA release due to problems in the validation tool. Those problems have been resolved.
Change is larger than changing one parameter to the post-build stages because
Customer Impact
Increased confidence in the quality of our release and increased ability to be sure packages come from Microsoft
Regression?
No
Testing
See https://dev.azure.com/dnceng/internal/_build/results?buildId=418214&view=results trial build
Risk
Low. Signing validation appears to be quite deterministic and has passed in the build above.