Skip to content

[infra] Remove Apple certificate and provisioning profile steps from tests#4320

Merged
mattleibow merged 1 commit into
mainfrom
dev/remove-apple-provisioning-steps
Jul 6, 2026
Merged

[infra] Remove Apple certificate and provisioning profile steps from tests#4320
mattleibow merged 1 commit into
mainfrom
dev/remove-apple-provisioning-steps

Conversation

@mattleibow

Copy link
Copy Markdown
Contributor

Description

The iOS, Mac Catalyst, and macOS samples pipeline jobs installed Apple signing certificates and provisioning profiles from secure files before building via the azure-templates-steps-provisioning-profiles.yml template. This template ran:

  • InstallAppleCertificate@2 (iOS + Mac .p12 certs)
  • InstallAppleProvisioningProfile@1 (iOS, Mac, tvOS profiles)

These jobs only run simulator/local builds (ios-simulator-64, maccatalyst, and samples), which do not require code signing. Requiring the secure files blocks running the test pipeline on a new pipeline instance that does not have them provisioned.

Changes

  • Removed the scripts/azure-templates-steps-provisioning-profiles.yml template (its only usages).
  • Removed the three preBuildSteps references to it in scripts/azure-templates-stages-test.yml:
    • tests_ios_macos (iOS tests)
    • tests_maccatalyst_macos (Mac Catalyst tests)
    • samples_macos (macOS samples build)

Unrelated preBuildSteps (GTK install, Android emulator) were left untouched. preBuildSteps defaults to [] in the bootstrapper template and is only emitted when non-empty, so removing the key is safe. YAML validated OK.

…tests

The iOS, Mac Catalyst, and macOS samples pipeline jobs installed Apple
signing certificates and provisioning profiles from secure files before
building. These jobs only run simulator/local builds (ios-simulator-64,
maccatalyst, and samples), which do not require code signing.

Requiring the secure files prevents running the test pipeline on a new
pipeline instance that does not have them provisioned. Remove the
provisioning-profiles template and its three references so these jobs can
run without the Apple secure files.

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

github-actions Bot commented Jul 2, 2026

Copy link
Copy Markdown
Contributor

📦 Try the packages from this PR

Warning

Do not run these scripts without first reviewing the code in this PR.

Step 1 — Download the packages

bash / macOS / Linux:

curl -fsSL https://raw.githubusercontent.com/mono/SkiaSharp/main/scripts/get-skiasharp-pr.sh | bash -s -- 4320

PowerShell / Windows:

iex "& { $(irm https://raw.githubusercontent.com/mono/SkiaSharp/main/scripts/get-skiasharp-pr.ps1) } 4320"

Step 2 — Add the local NuGet source

dotnet nuget add source ~/.skiasharp/hives/pr-4320/packages --name skiasharp-pr-4320
More options
Option Description
--successful-only / -SuccessfulOnly Only use successful builds
--force / -Force Overwrite previously downloaded packages
--list / -List List available artifacts without downloading
--build-id ID / -BuildId ID Download from a specific build

Or download manually from Azure Pipelines — look for the nuget artifact on the build for this PR.

Remove the source when you're done:

dotnet nuget remove source skiasharp-pr-4320

@github-actions

github-actions Bot commented Jul 2, 2026

Copy link
Copy Markdown
Contributor

📖 Documentation Preview

The documentation for this PR has been deployed and is available at:

🔗 View Staging Site
🔗 View Staging Docs
🔗 View Staging Gallery (Blazor)
🔗 View Staging Gallery (Uno Platform)
🔗 View Staging SkiaFiddle

This preview will be updated automatically when you push new commits to this PR.


This comment is automatically updated by the documentation staging workflow.

@mattleibow
mattleibow merged commit 81613c0 into main Jul 6, 2026
86 of 87 checks passed
@mattleibow
mattleibow deleted the dev/remove-apple-provisioning-steps branch July 6, 2026 17:41
@mattleibow mattleibow added this to the 4.151.0-preview.2 milestone Jul 22, 2026
ramezgerges added a commit to ramezgerges/SkiaSharp that referenced this pull request Jul 22, 2026
… stages

The iOS/Mac Catalyst visual-regression test jobs and the Samples Linux job
inherited `preBuildSteps: /scripts/azure-templates-steps-provisioning-profiles.yml`
from an earlier visual-regression wiring commit. Main removed that template
in mono#4320 ([infra] Remove Apple certificate and provisioning profile steps
from tests), so after this branch rebased onto main the Azure Pipelines
validator failed instantly on every push:

    /scripts/azure-templates-jobs-bootstrapper.yml: Could not find
    /scripts/azure-templates-steps-provisioning-profiles.yml in repository
    self hosted on https://github.com/ using commit <sha>. GitHub reported
    the error, "Not Found"

Drop the three now-dangling template references (and the empty
preBuildSteps: keys they were the only member of). The visual-regression
steps were already re-modelled around postBuildSteps that harvest goldens,
which is what still needs to run — no other change required.
mattleibow added a commit that referenced this pull request Jul 22, 2026
…e provisioning) (#4522)

[infra] Backport CI fixes to release/4.150.x (#4522)

Context: https://dev.azure.com/dnceng-public/public/_build?definitionId=345
Cherry-picks: #4310, #4320

The new public `mono-SkiaSharp` Azure DevOps pipeline (dnceng-public,
definition 345) failed on `release/4.150.x` at YAML compile time — the build
died in 0s with no timeline before any job ran:

    The pipeline is not valid. Job native_linux_arm64_linux: Step Docker1 input
    containerRegistry references service connection skiasharp-docker which could
    not be found. ... Job native_linux_x86_linux: Step Docker1 ... skiasharp-docker

`main` had already dropped that stale dependency, but `release/4.150.x` was cut
before those fixes, so every run on the branch was a hard compile failure. This
backports the two infra commits needed to make the branch build under the new
pipeline. No product code is touched — only pipeline templates (30 deletions).

Remove obsolete skiasharp-docker registry auth (#4310)

  The native bootstrapper only builds a local image from the checked-in
  Dockerfile and runs it; the private-registry login was obsolete. Removing the
  1ES `authenticatedContainerRegistries` entry and the classic `Docker@2 login`
  task drops the reference to the `skiasharp-docker` service connection, which
  does not exist in the dnceng-public project. This is the change that lets the
  pipeline compile.

Remove Apple certificate and provisioning profile steps from tests (#4320)

  With the compile blocker gone, the iOS/macOS/tvOS test jobs would then fail at
  runtime: `InstallAppleCertificate`/`InstallAppleProvisioningProfile` load
  secure files (`SkiaSharp iOS Certificate.p12`, etc.) that are not present in
  the new public project. Dropping those steps (and the now-unused
  provisioning-profiles template) keeps the test stage runnable.

Verified: after both cherry-picks, PR #4522 triggered build 20260722.23, which
gets past YAML validation and expands all 12 stages (instead of failing
instantly at compile). m151 milestone changes (#4294) were deliberately
excluded — 4.150.x stays on m150.

Co-authored-by: Matthew Leibowitz <mattleibow@live.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

1 participant