build-packages template: disable sign-macos-packages for nightly - #70295
Merged
Merged
Conversation
Change templates/build-packages.yml.jinja line 38 from hardcoded
`sign-macos-packages: true` to the same per-environment conditional
that sign-windows-packages and the others already use:
sign-macos-packages: <% if gh_environment == 'nightly' -%> false
<%- else -%> ${{ inputs.sign-macos-packages }}
<%- endif %>
Nightly builds no longer submit macOS packages to Apple's notary
service. Rationale:
1. Public salt-nightlies today has `sign-macos-packages: true` in
the rendered nightly.yml but the MAC_SIGN_APP_SPEC_PWD /
APPLE_TEAM_ID / APPLE_ACCT secrets are empty at runtime, so the
notarize step already effectively no-ops there. Setting the
flag to false makes the workflow file match the effective
behaviour instead of silently hiding it behind empty secrets.
2. Salt-priv (private security fork) inherits the same generated
nightly.yml via forward-merge. Its Apple secrets ARE populated,
which means the notarize step actually calls Apple's API. Any
time those creds go stale (as they did today -- 2023-era app-
specific password) the entire macOS build path fails, and by
extension the whole nightly pipeline. Turning off signing for
nightlies decouples nightly stability from Apple creds rotation.
3. Full releases still sign+notarize -- release.yml has its own
path with dedicated sign-* inputs, and the release-context
branch of the jinja conditional uses ${{ inputs.sign-macos-
packages }} so callers can (and do) opt in.
Regenerated .github/workflows/nightly.yml and staging.yml via the
Generate GitHub Workflow Templates pre-commit hook.
* nightly.yml: sign-macos-packages: true -> false (2 call sites)
* staging.yml: sign-macos-packages: true -> ${{ inputs.sign-macos-
packages }} (non-nightly branch; staging inputs preserve the
prior configurability)
This branch was successfully deployed
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.
Change templates/build-packages.yml.jinja line 38 from hardcoded
sign-macos-packages: trueto the same per-environment conditional that sign-windows-packages and the others already use:Nightly builds no longer submit macOS packages to Apple's notary service. Rationale:
Public salt-nightlies today has
sign-macos-packages: truein the rendered nightly.yml but the MAC_SIGN_APP_SPEC_PWD / APPLE_TEAM_ID / APPLE_ACCT secrets are empty at runtime, so the notarize step already effectively no-ops there. Setting the flag to false makes the workflow file match the effective behaviour instead of silently hiding it behind empty secrets.Salt-priv (private security fork) inherits the same generated nightly.yml via forward-merge. Its Apple secrets ARE populated, which means the notarize step actually calls Apple's API. Any time those creds go stale (as they did today -- 2023-era app- specific password) the entire macOS build path fails, and by extension the whole nightly pipeline. Turning off signing for nightlies decouples nightly stability from Apple creds rotation.
Full releases still sign+notarize -- release.yml has its own path with dedicated sign-* inputs, and the release-context branch of the jinja conditional uses ${{ inputs.sign-macos- packages }} so callers can (and do) opt in.
Regenerated .github/workflows/nightly.yml and staging.yml via the Generate GitHub Workflow Templates pre-commit hook.