nvda
4a8bbf87 - github CI: actually sign files in scons source so that scons launcher doesn't do it, causing uploaded symbols to mismatch (#20129)

Commit
117 days ago
github CI: actually sign files in scons source so that scons launcher doesn't do it, causing uploaded symbols to mismatch (#20129) Fixes #20033 Replaces pr #20084 Summary of the issue: The debug symbols archived from builds of NvDA do not match the actual files in the final NVDA launcher, if files are required to be signed. This is due to the fact that the API signing key was never set in the CI environment when building NVDA with scons source, although it was present when running scons launcher. NVDA would be initially built without signed files, and these files would be collected for the symbols, but then as the launcher was being created, the files would be retroactively signed. Also if trying to run CI instructing SCons to use multiple cores to speed up builds, some of the files may have been signed after the launcher was created, thus leaving them as the old unsigned copies. Signing with signpath takes a very long time, and can add up to 10 minutes for a build when using a single core. Thus signing properly in scons source would address the incorrect symbols and allow for building using multiple cores. Description of user facing changes: Description of developer facing changes: Description of development approach: Set the API signing token in the environment for the set scons args step in the Build NVDA job. this mirrors what is already done for the Create Launcher job. In the Create Launcher job, Split the powershell commands to install signpath out of the Create launcher step and into its own Install Signpath step. Add an Install Signpath step to the Build NVDA job, mirroring the step in the Create launcher job. In the Create launcher job, split out the building of the NVDA controller client from the Create Launcher step into its own Create NVDA controller client step. Remove the sconsCores variable from the scons launcher command in the Create Launcher step, meaning that scons launcher will always run with only one core, no matter what sconsCores is set to. It is very important that scons launcher never run with multiple cores, as if it ever has any dependencies, they must be build before the NSIS launcher builds. change the sconsCores variable to be --all-cores meaning that scons source, scons user_docs, scons client etc (but not scons launcher) will now run using all available cores). The biggest advantage here is signing files in scons source which dramatically decreases time as files can be signed in parallel to further source building.
Parents
Loading