Skip to content

Migrate CI to dnceng with API Scan, signing, and BAR publishing - #4803

Open
mattleibow wants to merge 110 commits into
mainfrom
dev/dnceng-pipelines
Open

Migrate CI to dnceng with API Scan, signing, and BAR publishing#4803
mattleibow wants to merge 110 commits into
mainfrom
dev/dnceng-pipelines

Conversation

@mattleibow

@mattleibow mattleibow commented Aug 17, 2026

Copy link
Copy Markdown
Contributor

Description

Migrate SkiaSharp CI from the legacy DevDiv chain to two repository-owned dnceng/internal pipelines:

  • Build (1642): Prepare → Native → Package → signing, with independent API Scan and BAR registration/validation stage templates.
  • Tests (1630): consumes the exact Build run identity and runs managed/platform/sample tests.

Public CI (345) remains one unsigned Native+Package+Tests build and excludes the internal signing/compliance/publishing block.

Security remains fail-closed: CodeQL, AntiMalware, CredScan, PoliCheck, ARMory, ESLint, PSScriptAnalyzer, secret scanning, BinSkim, Component Governance, TSA, PostAnalysis, Note-level API Scan enforcement, and default 1ES network-isolation enforcement.

JavaScript uses explicit NoSignJS package/path policy, byte-identical payload verification, and the signed NuGet as the supported distribution boundary.

Package versions follow Arcade identity. OfficialBuildId is yyyyMMdd.revision; prerelease packages use Arcade short-date.revision. PREVIEW_LABEL=stable on an internal release/* branch produces exact packages with DotNetFinalVersionKind=release; Arcade V3 marks them stable for isolated feeds.

Signing trust is branch-driven: main/release use real signing; other branches test-sign unless forceRealSigning. Forced signing does not register a BAR unless registerInBar is also selected. API Scan runs only for scheduled main builds or explicit runApiScan. BAR validation is independent of API Scan and CI does not promote a channel automatically.

Signing, API Scan, and BAR publishing are direct stage templates so future jobs can be added within each stage. The Build root has one shared stage-composer entry.

The repository, native containers, workloads, and Arcade use stable .NET SDK 10.0.400. The WinUI C++/WinRT projection deliberately remains on SDK 10.0.108, installed side-by-side, because VS MSBuild 17.x cannot load SDK 10.0.2xx+. NuGet.org publication and release-skill migration remain out of scope.

Azure counterpart: dnceng PR 63954.

Related issues

N/A.

Required skia PR

None.

Areas affected

  • Managed API (binding/)
  • Native / C API (externals/skia/src/c, include/c)
  • Generated P/Invoke bindings
  • Native dependency or Skia update
  • Views & integrations
  • Rendering output / visual behavior
  • Performance
  • Tests
  • Build, packaging, or CI
  • Documentation or samples

Changes

None — CI-only; no public API, C API, native source, or product behavior change.

Testing

  • Canonical tip: d80b0ec394cbdaf79172f0d82623e4ed847370a8 on GitHub and dnceng.
  • Generated eng/common is byte-identical to Arcade BAR 327135 (11.0.0-beta.26414.2).
  • Test-sign Build 3050801 succeeded.
  • Real-sign/API builds 3050803 and 3050903 passed ESRP signing, payload fidelity, trusted-signature validation, API Scan, and manifest generation.
  • Identity, prerelease staging, signing, cache coverage, JSON/YAML syntax, Arcade bootstrap, workload-set, and stage-template checks pass locally.
  • Public run 1558142 proved both failure modes: Linux/WASM containers still had SDK 10.0.108, while WinUI required 10.0.108 but only 10.0.400 was installed. Containers now use 10.0.400; WinUI installs 10.0.108 alongside it, with regression coverage for both contracts.
  • All GitHub review threads were evaluated, fixed, answered, and resolved.
  • Replacement PR/public runs for the corrected tip are pending.

Actual remaining gates:

  1. Pass replacement internal PR and public CI runs under default network-isolation enforcement.
  2. If Enforce reports blocked endpoints, run one manual feature-branch Audit build and request only those exact endpoints. If Enforce passes, skip Audit.
  3. Remove the temporary auditNetworkIsolation parameter and pass replacement PR/public checks on that final configuration.
  4. Pass one final Enforce Build 1642 on the exact tip with real signing, API Scan, BAR registration, and Arcade validation.
  5. Pass the automatically connected Tests 1630 run for that exact Build.
  6. Exercise the exact-stable release/* package path, or explicitly defer/remove that behavior before merge; it currently has unit/local manifest evidence only.
  7. Obtain human review.

Permanent Maestro channels, General Testing promotion, 1ES default-branch baselines, definition 1641 retirement, the pre-existing Component Governance alert, and release-skill migration are follow-up operations, not merge gates for this pipeline PR.

Checklist

  • Tests added or updated
  • Changes above lists all public API and behavioral changes (none — CI-only)
  • New/changed public API? N/A
  • Native change? N/A

mattleibow and others added 30 commits June 26, 2026 15:43
…Core1ESPool-Internal pools, networkIsolationPolicy Permissive (submodules), drop DevDiv yaml-templates, chain skiasharp-native->skiasharp-package->skiasharp-tests, drop develop trigger; signing/APIScan deferred
…ull anonymously from MCR); restore full native stage (all platforms)
…pen googlesource; only hosted macOS agents reach it, isolated pool needs netiso DL exception)
Use the standard Permissive, CFSClean, CFSClean2 network isolation policy for the internal native and package pipelines, and enable native CI pushes from the working branch.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Do not require the devdiv-only native_msvc artifact in dnceng/internal, where signing and API Scan remain deferred. Remove the redundant package schedule so packages and tests run only from their upstream completion triggers.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Run the MSVC native matrix, merged native_msvc artifact, and split-package consumer in dnceng/internal as well as devdiv. Restore the package midnight schedule so nightly package and test coverage remains available.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Artifact merger and managed package jobs do not build native externals, so avoid recursively cloning depot_tools and other submodules on network-isolated internal agents. Native jobs retain recursive checkout.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Keep recursive native submodules disabled in managed package jobs, but initialize the docs submodule explicitly so normal NuGet packages continue to include XML API documentation.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Disk-space probes are diagnostics, but a transient PowerShell startup failure currently aborts the job before tests run. Retry these probes while preserving failure after repeated attempts.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Bring the internal pipeline branch up to f8c0133 after completing the green Native, Package, and Tests validation.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Queue the tests pipeline explicitly from successful feature-branch package builds until definition 1630 can evaluate the updated resource name from internal main. Pass the current commit and package run as pipeline resources so one Native run flows through all three pipelines.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Always build, merge, and re-upload the MSVC native artifacts as part of the pipeline contract. Limit the hosted-agent diagnostic retry to the exact post-checkout probe that previously flaked.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Collect current-run NuGet, symbol, and MSVC artifacts; generate the existing SkiaSharp surrogate configuration; authenticate through the dotnet-apiscan WIF connection; and run APIScan with retained logs and PostAnalysis.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Add API Scan HTML/SARIF reporting, TSA bug upload, raw log publication, and warning-level enforcement. Map unsupported Windows ARM64 images to equivalent x64 surrogates so all shipped binaries remain covered without suppressing findings.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 0719f2c0-b8f5-4d8c-8a35-37b2057c418a
Preserve the old Xamarin template policy by explicitly selecting APIScan release mode instead of inheriting the prerelease task default.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 0719f2c0-b8f5-4d8c-8a35-37b2057c418a
Restore the registered SkiaSharp software version used by the old release scan and fail hard when APIScan itself cannot execute.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 0719f2c0-b8f5-4d8c-8a35-37b2057c418a
Keep TSA reporting active while making Armory, BinSkim, CredScan, ESLint, PoliCheck, and PSScriptAnalyzer fail closed. Run CodeQL on the migration branch, and restore API Scan Note-level all-tool reporting, TSA upload, and enforcement parity with DevDiv.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 0719f2c0-b8f5-4d8c-8a35-37b2057c418a
Add an opt-in, test-only signing stage that copies the existing NuGet artifact and invokes the matching Arcade SignTool without rebuilding products. Preserve the artifact-carried SignList policy, validate recursive payload fidelity, and document ESRP/API Scan onboarding boundaries.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Move internal roots to the v1 Official template and the public CI root to the v1 Unofficial template, thread 1ES container handling through tests, and remove the local fake wrapper. The public definition must be recreated in dnceng/internal before cutover because dnceng-public cannot resolve the 1ES template repository.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Sync eng/common from the exact Arcade SDK source commit, add dependency-flow metadata and a signing-only project graph, and move general build tooling to the supported .NET 10.0.302 SDK. Preserve the WinUI 10.0.108 compatibility band by installing it side-by-side only for WinUI jobs.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Keep the existing SDK and workload set pin across the repository and native build containers while adopting Arcade. The SDK upgrade remains a separate compatibility change.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Stage already-built shipping packages in Arcade's standard layout, use the templates-official MicroBuild job wrapper and eng/common signing command, validate nested signatures, and retain a fail-closed exact payload policy in eng/Signing.props. Remove the isolated SignTool bootstrap and legacy SignList translation.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
MicroBuild test certificates are intentionally untrusted by NuGet verification. Keep test-sign validation on SignTool's post-sign checks and payload fidelity, and run Arcade SignCheck plus NuGet trust validation only for ESRP real signing.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
The automation-owned Arcade tree and signing-only policy do not contribute to native or managed cache outputs, so exclude them from repository cache coverage validation.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Treat eng as a global build dependency, associate signing scripts with the signing job, and remove the cache switch from the internal complete pipeline. Only the public mono-SkiaSharp root can enable build caching.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Allow the package definition to test-sign an existing successful package build without rebuilding native or managed products. Verify the source definition, repository, result, and real-sign branch trust before downloading artifacts.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
The generated Dawn JavaScript and Python files do not support 3PartySHA2 Authenticode signing. Keep them explicitly unsigned and enforce byte-for-byte preservation through payload verification.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot AI added 4 commits August 18, 2026 14:58
Make the package root own signing, API Scan, and BAR publication directly; exclude all PR forms from signing/publishing and remove signing-specific parameters from the shared stage aggregator.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 0719f2c0-b8f5-4d8c-8a35-37b2057c418a
Arcade 11's shared bootstrap uses the .NET 11-only 'dotnet package download' command, but SkiaSharp intentionally retains SDK 10.0.108. Restore an exact PackageDownload through a temporary project instead so signing, BAR registration, and Arcade validation can bootstrap on the supported SDK while preserving the dotnet-eng fallback.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 0719f2c0-b8f5-4d8c-8a35-37b2057c418a
Adopt Arcade's NoSignJS policy for browser and Emscripten source files. Keep every JavaScript basename and package path explicit, fail if a skipped file changes or becomes signed, and retain author-signed NuGets as the supported distribution boundary without adding detached catalog artifacts.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 0719f2c0-b8f5-4d8c-8a35-37b2057c418a
Keep both Arcade bootstrap selection and WASM containers on the validated .NET 10.0.108 SDK after rebasing onto the squashed Arcade onboarding commit from main.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 0719f2c0-b8f5-4d8c-8a35-37b2057c418a
@mattleibow
mattleibow force-pushed the dev/dnceng-pipelines branch from 08fa356 to 9dd8812 Compare August 18, 2026 12:59
Copilot AI added 13 commits August 18, 2026 16:31
Restore Arcade Publish.proj dependencies before manifest generation and register only the signed prerelease package view. This keeps stable-looking build artifacts internal while producing a valid V3 BAR manifest and symbol payloads for preview promotion.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 0719f2c0-b8f5-4d8c-8a35-37b2057c418a
Use Arcade's official and short-date build identities across GitHub, Azure Repos, and downstream resource runs. Pack one prerelease NuGet family, validate package identities from nuspecs, and register only the signed Preview view with the same OfficialBuildId used by manifest generation.

Restore eng/common from the pinned Arcade build and use a stable .NET 10.0.301 tool CLI for generated package download while keeping SkiaSharp builds on SDK 10.0.108.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 0719f2c0-b8f5-4d8c-8a35-37b2057c418a
Reapply the combined Native and Package pipeline on top of the latest Arcade publishing and CI changes.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Keep the combined Package pipeline on its own Arcade-derived build number while making Package identity inheritance an explicit Tests-only behavior.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Use complete, build, and test pipeline types; remove the obsolete Native root, Package split path, and separate identity toggle.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Use the existing PREVIEW_LABEL chain to select one package family: normal labels remain uniquely versioned prereleases, while stable produces exact packages with DotNetFinalVersionKind=release. Restrict stable generation to manual Native and real-signed, API-scanned Package runs, separate Preview and Shipping manifest inputs, and stop CI before channel promotion so Tests can gate a manual Darc promotion.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 0719f2c0-b8f5-4d8c-8a35-37b2057c418a
Remove the redundant split/separate boolean and derive test-stage dependencies from the existing build pipeline type.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Adapt exact stable and prerelease BAR publishing to the combined Native and Package build while keeping Tests downstream and channel promotion manual.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Move signing, nightly/ad-hoc API Scan, BAR registration, and Arcade validation into the shared stage composer, with BAR-specific stages isolated in a publish template. Remove mirrored Package variables and return bootstrapper/merger checkouts to the repository's recursive-submodule convention.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 0719f2c0-b8f5-4d8c-8a35-37b2057c418a
Make signing, API Scan, and BAR publishing stage-level templates so each can grow additional jobs without changing the pipeline root. Keep PREVIEW_LABEL source-controlled, run API Scan on scheduled main or explicit requests, and remove redundant Package variables and checkout customization.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 0719f2c0-b8f5-4d8c-8a35-37b2057c418a
Signing and API Scan jobs now live directly in their stage templates.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 0719f2c0-b8f5-4d8c-8a35-37b2057c418a
Gate signing, API Scan, and BAR publishing first by internal project, then by build pipeline type, leaving only stage-specific conditions at the innermost level.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 0719f2c0-b8f5-4d8c-8a35-37b2057c418a
Move SkiaSharp and Arcade to stable .NET SDK/workload 10.0.400, remove isolated tool SDK paths, and keep signing, compliance scanning, and BAR registration as independently conditioned stage templates. Separate forced signing from BAR registration and keep API Scan manual or scheduled-main only.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 0719f2c0-b8f5-4d8c-8a35-37b2057c418a

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Migrates SkiaSharp’s CI from the legacy DevDiv chain to repository-owned dnceng/internal pipelines, adding first-class stage templates for signing, API Scan, and BAR publish/validation while keeping public CI unsigned and excluding internal compliance/publishing.

Changes:

  • Introduces dedicated stage templates for internal signing (signing), API Scan (api_scan), and BAR publishing/validation (publish_build_assets + post-build validation), composed via a single shared stages template.
  • Adds PowerShell tooling + tests for (a) deterministic build identity/version derivation and (b) signed-NuGet payload fidelity verification aligned with eng/Signing.props policy.
  • Updates SDK/tooling baseline to .NET SDK 10.0.400 and adjusts packaging/version-suffix behavior for exact-release vs prerelease builds.

Reviewed changes

Copilot reviewed 38 out of 38 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
scripts/infra/signing/verify-signed-packages.ps1 New verifier to compare unsigned vs signed NuGet payloads and enforce signing policy expectations.
scripts/infra/signing/tests/Signing.Tests.ps1 New local regression tests for signing policy classification, exclusions, and payload fidelity checks.
scripts/infra/signing/README.md Documentation for signing stage architecture, policy, artifact flow, and local checks.
scripts/infra/signing/NuGetPayload.psm1 New module to inventory nested NuGet/zip payloads and derive signing policy assignments.
scripts/infra/shared/shared.cake Updates version-suffix computation (Arcade final version kind) and removes feature-preview suffix logic.
scripts/infra/security/APIScanSurrogates.in.xml Expands surrogate mappings to cover additional ARM64 scenarios and WinUI surrogate binaries.
scripts/infra/package/tests/StagePrereleasePackages.Tests.ps1 New tests validating prerelease package selection/staging rules for BAR preview publishing.
scripts/infra/package/stage-prerelease-packages.ps1 New script to stage only allowed prerelease packages (rejects exact stable and unsupported labels).
scripts/infra/package/SignList.xml Removes legacy signing input list (superseded by Arcade signing policy in eng/Signing.props).
scripts/infra/package/nuget.cake Ensures a single coherent package family per build and forwards VersionSuffix consistently.
scripts/infra/native/wasm/docker/Dockerfile Adjusts dotnet-install usage for the WASM build container and pins default SDK version.
scripts/infra/native/shared/tests/SetBuildVariables.Tests.ps1 New tests for build identity normalization (PR/main/release/resource-trigger) and pipeline wiring invariants.
scripts/infra/native/shared/set-build-variables.ps1 Rewrites build identity logic around Arcade OfficialBuildId + normalized PR/branch/commit handling.
scripts/infra/caching/repo-deps.json Updates caching dependency coverage and adds a signing job cache scope.
scripts/azure-templates-variables.yml Moves BUILD_NUMBER derivation to runtime and adds Arcade OfficialBuildId + final version kind variables.
scripts/azure-templates-stages.yml Refactors stage composition for build/test/complete roles and adds internal-only signing/API scan/BAR stages.
scripts/azure-templates-stages-test.yml Updates split-pipeline logic to use buildPipelineType instead of isSplitPipeline.
scripts/azure-templates-stages-signing.yml New internal signing stage using Arcade official job template + payload verification + manifest generation.
scripts/azure-templates-stages-publish.yml New BAR registration + validation stages (Arcade V3 publishing).
scripts/azure-templates-stages-prepare.yml Adds pipeline-time execution of the new identity + prerelease staging tests and cache config validation.
scripts/azure-templates-stages-package.yml Removes split-pipeline native reupload/signing blocks; forwards --dotNetFinalVersionKind and stages preview artifacts via script.
scripts/azure-templates-stages-native-windows.yml Makes Win32 MSVC native builds unconditional (no longer gated by legacy DevDiv project checks).
scripts/azure-templates-stages-native-merge.yml Makes MSVC native artifact merge unconditional.
scripts/azure-templates-stages-native-linux.yml Minor cleanup (trailing whitespace removal).
scripts/azure-templates-stages-apiscan.yml New standalone API Scan stage that consumes pipeline artifacts and runs APIScan/TSA/PostAnalysis.
scripts/azure-template-fake-1es.yml Improves public-template adapter comment and refactors job property expansion for templateContext outputs.
scripts/azure-pipelines-tests.yml Repoints tests pipeline resource to the new package pipeline and fixes host pool OS metadata.
scripts/azure-pipelines-package.yml Converts to dnceng 1ES official template with enforced SDL breaks, network isolation, and new stage composition parameters.
scripts/azure-pipelines-native.yml Removes legacy native-only pipeline definition (replaced by new build pipeline).
scripts/azure-pipelines-complete-internal.yml Removes legacy internal complete pipeline (replaced by new build/test split plus public complete).
global.json Bumps repo SDK/tooling to .NET SDK 10.0.400.
eng/Signing.props New Arcade signing policy source of truth (explicit basenames, NoSignJS enabled).
eng/SignCheckExclusionsFile.txt New SignCheck DO-NOT-SIGN exclusions matching JS payload policy.
eng/Publishing.props New Arcade publishing policy separating preview vs exact-release package views.
documentation/dev/versioning.md Updates versioning guidance to Arcade identity and exact-release sentinel behavior.
documentation/dev/updating-dotnet-version.md Updates SDK bump checklist to include tools.dotnet parity requirement.
documentation/dev/releasing.md Updates release documentation for BAR/Arcade V3 flow and new pipeline IDs/feeds.
documentation/dev/building-samples.md Updates sample build/version examples to Arcade-derived short-date.revision build number.

💡 Add a code-review agent skill for context-aware, tailored reviews. Learn more in the docs.

Comment thread scripts/infra/package/stage-prerelease-packages.ps1
Comment thread scripts/infra/caching/repo-deps.json
Comment thread scripts/azure-templates-stages-apiscan.yml Outdated
Comment thread global.json
Copilot AI added 2 commits August 18, 2026 22:35
Align the release and sample guidance with the combined Build and Tests topology, manual BAR promotion, conditional API Scan, and the deferred exact-stable release automation. Remove the obsolete DevDiv badge and keep SDK roll-forward inside the 10.0.4xx feature band.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 0719f2c0-b8f5-4d8c-8a35-37b2057c418a
Keep temporary BAR validation and onboarding details out of repository documentation. Document only the final SkiaSharp channel, feed, combined Build and Tests chain, and protected NuGet publication flow.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 0719f2c0-b8f5-4d8c-8a35-37b2057c418a

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 39 out of 39 changed files in this pull request and generated 1 comment.

Suppressed comments (3)

scripts/azure-pipelines-package.yml:118

  • This strict-isolation configuration still includes the Permissive policy, which the PR description itself lists as a remaining gate to remove. That leaves the migrated build/signing path with broader network access than the stated fail-closed posture; complete the endpoint audit and remove this policy before merging.
      networkIsolationPolicy: Permissive, CFSClean, CFSClean2

documentation/dev/releasing.md:187

  • This command still invokes a status script that is hard-coded to the legacy DevDiv chain and feed (.agents/skills/release-status/scripts/pipeline-status.py:18-45, IDs 26493/10789/15756). It cannot report the new dnceng Build 1642, Tests 1630, or BAR identity promised here, so the documented release-status workflow is broken until the script and skill metadata are migrated.
```bash
python3 .agents/skills/release-status/scripts/pipeline-status.py release/{version}
**documentation/dev/releasing.md:118**
* The PR says a protected release-by-BAR pipeline is future work, but this table documents it as an available pipeline. The current release-publish tooling still queues legacy DevDiv pipeline 25298 and selects a managed run (`.agents/skills/release-publish/scripts/push-release-packages.py:17-45`), not a BAR ID. Keep this entry marked as future/out of scope or implement and migrate the protected publisher before presenting this as the release procedure.

| NuGet.org Publish | Gathers one exact BAR build and publishes it after protected human approval. |

</details>

Comment thread scripts/infra/native/wasm/docker/Dockerfile Outdated
Copilot AI added 4 commits August 18, 2026 23:04
Use SDK 10.0.400 across every native build environment, enforce the default 1ES network isolation policy, and keep API Scan symbol retrieval on TLS. Add regression coverage for SDK pins and security settings, and address the remaining PR review findings.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 0719f2c0-b8f5-4d8c-8a35-37b2057c418a
Keep the C++/WinRT projection on the .NET 10.0.1xx band required by VS MSBuild 17.x while installing SDK 10.0.108 side-by-side in each WinUI native job. Continue using 10.0.400 for the repository, Arcade, workloads, and native containers.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 0719f2c0-b8f5-4d8c-8a35-37b2057c418a
Extract API Scan package preparation from YAML into a tested script. Validate every configured surrogate and target mapping against representative Win32, HarfBuzz, NanoServer, and WinUI symbol package layouts, and make the temporary network Audit condition readable.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 0719f2c0-b8f5-4d8c-8a35-37b2057c418a
Make native Docker SDK validation portable to Windows checkouts and cover CRLF line endings explicitly.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 0719f2c0-b8f5-4d8c-8a35-37b2057c418a
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: No status

Development

Successfully merging this pull request may close these issues.

3 participants