Skip to content

Conversation

@SparkSnail
Copy link
Contributor

@SparkSnail SparkSnail commented Jan 21, 2026

Summary

  • Linux: Consolidate 4 validation tasks into 2 tasks (Package Installation and Load, Create and Run Test)
  • Windows: Split 1 monolithic validation task into 2 matching tasks
  • Signature validation: Add structured summary table output for both platforms showing file name, status, and signer with totals

Test

  • Run the release pipeline and verify ValidateLinux stage completes successfully
  • Run the release pipeline and verify ValidateWindows stage completes successfully
  • Verify signature validation summary table is displayed correctly in logs

SparkSnail and others added 9 commits January 19, 2026 16:06
- Use .NET ZipFile API instead of Compress-Archive to ensure forward-slash
  paths in NuGet packages (fixes #1213)
- Add sourceAnalysisPool config for SDL analysis on Windows
- Add ValidateLinux stage to verify packages work on Linux

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Instead of just checking ZIP entry paths, now validates packages by:
- Creating a test .NET console project
- Installing Microsoft.Spark package via dotnet add package
- Building and running the project to verify DLLs load correctly

This tests the real-world scenario that was failing on Linux/Mac.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Verify NuGet package signatures using dotnet nuget verify
- Validate Authenticode signatures on DLLs inside packages
- Validate Authenticode signatures on Worker executables
- Display detailed signature info (subject, issuer, thumbprint, validity)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Install osslsigncode for Authenticode verification on Linux
- Display certificate details: Subject, Issuer, Serial, Valid From/To
- Check timestamp information
- Verify signatures on DLLs in NuGet packages
- Verify signatures on Worker executables in tar.gz archives

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Load System.IO.Compression assembly before System.IO.Compression.FileSystem
to ensure ZipArchiveMode enum is available.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Strip leading whitespace from heredoc/here-string content that was
being included due to YAML indentation:
- Linux: Pipe heredoc through sed to remove leading spaces
- Windows: Use regex replacement to strip leading spaces

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Use local nuget.config file instead of global dotnet nuget add source
to properly configure the LocalPackages source path. The global source
was not being found during package restore.

- Linux: Use printf to create nuget.config with proper XML structure
- Windows: Build nuget.config string with concatenation to avoid
  YAML here-string issues

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Linux: Consolidate 4 validation tasks into 2 (Package Installation and Load, Create and Run Test)
- Windows: Split 1 monolithic task into 2 matching tasks
- Add structured summary table for signature validation output on both platforms
- Display file name, status, and signer in formatted table with totals

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@SparkSnail SparkSnail changed the title Pipeline debug Split validation tasks and improve signature output formatting Jan 21, 2026
@SparkSnail SparkSnail changed the title Split validation tasks and improve signature output formatting Fix Linux package path issue and add validation tasks in pipeline Jan 21, 2026
@SparkSnail
Copy link
Contributor Author

/AzurePipelines run

@azure-pipelines
Copy link

Azure Pipelines successfully started running 1 pipeline(s).

The previous verification used exit code which fails on trust chain issues.
Now checks for signature presence (certificate info) rather than full
trust verification, since ESRP-signed packages may fail trust verification
on Linux agents that don't have Microsoft's root certificate trusted.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants