ci: limit macOS signing and notarization to main runs#291
Merged
Conversation
Skip the expensive macOS signing/notarization/stapling steps on pull_request events by gating them on github.event_name. PR builds still compile, package the .app/DMG/CLI and upload (unsigned) artifacts; developers can clear the quarantine attribute if they need to run them. Renames the job-level HAS_SIGNING_SECRETS env to MACOS_SIGNING_ENABLED, which now also requires a non-PR event. Fixes #290 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Contributor
Performance Gate✅ PASSED — no regressions. Threshold: 10.0%, MAD multiplier (k): 3.0, retry-zone mult: 2.0× Scenario summary
exchange-set-openIteration statistics
Spans (sum of all iterations)
Metrics
s101-portray-coldIteration statistics
s101-portray-warmIteration statistics
s101-real-coldIteration statistics
s101-real-warmIteration statistics
s101-render-warmIteration statistics
s102-coverageIteration statistics
s102-coverage-openIteration statistics
Spans (sum of all iterations)
Metrics
s102-coverage-render-largeIteration statistics
s102-real-warmIteration statistics
s111-real-warmIteration statistics
s124-vectorIteration statistics
s201-vectorIteration statistics
Generated by EncDotNet.S100.PerfReport gate command |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
PR pipelines spend a large share of their time signing and notarizing the macOS artifacts. Notarization in particular uploads to Apple's notary service and polls for a result, adding many minutes per run. We don't need signed/notarized macOS bits on PR builds — a developer who needs to run an unsigned PR artifact can clear the
com.apple.quarantineattribute themselves.This change gates the macOS signing/notarization/stapling steps in
.github/workflows/ci.ymlto main CI runs only (pushes tomainandv*tags), skipping them onpull_requestevents.All nine signing-related steps already keyed off a single job-level env var. Rather than touch each
if:, this renamesHAS_SIGNING_SECRETStoMACOS_SIGNING_ENABLEDand folds the event guard into its expression:PR macOS jobs still compile, package the
.app/DMG/CLI, and upload (unsigned) artifacts — those steps are gated only onmatrix.rid == 'osx-arm64', not on signing.Closes #290
Spec alignment
Spec section references cited in code/docs:
N/A
Tests
tests/SkippableFactdotnet test --configuration Releasepasses locallyN/A — CI workflow change only. Validated
ci.ymlparses as YAML and confirmed no stale references to the old env var name remain.Documentation
src/<project>/README.mddocs/if user-facing behaviour changedN/A — no public API or user-facing behaviour change.
Dependencies
Directory.Packages.props(not in the.csproj)gh-advisory-databasesecurity check run for any new dependencyBreaking changes
None. PR builds now produce unsigned macOS artifacts (previously signed only when secrets were available);
mainand tag builds are unchanged.