You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
All fifteen iOS workflows sit at the repository root after #728, #741 and #754,
but only ios-pr.yml triggers. The other fourteen are held on workflow_dispatch with their real triggers commented out in place, so restoring
one is a readable diff rather than a rewrite.
They were held back because they need things this repository does not have yet.
Secrets
The pull request checks needed four, all now set. The rest need roughly nineteen
more, all present on the source repository:
ASC_KEY_ID and ASC_ISSUER_ID are already set. Four names are referenced but
exist nowhere: FASTLANE_RW_PAT, MELD_BASIC_AUTH_TOKEN, SENTRY_DSN and WEB_PAGE_SAFETY_DISTRIBUTION_LINK. Two of those are not build-blocking.
GOOGLE_SERVICE_INFO_SAFETY_BASE64 is a separate Firebase app for the .safety
bundle identifier, so it cannot be derived from the others.
Branch filters that name another repository's model
Several carry branches: [develop] or branches: [main] from the source
repository's branching model. develop does not exist here, so restoring those
verbatim gives filters that never match. Each needs a decision rather than a
restore.
A decision before any of it
Turning these on here means this repository starts distributing builds, cutting
release branches and pushing tags, while the source repository may still be
doing the same. Running both is worse than running neither. So the order matters:
the source repository stops, then these start. That is the same cutover #687 and #726 describe.
Steps
Decide which of the fourteen should run here at all, and which retire
Provision the secrets for the ones that stay
Replace the branch filters with this repository's model
Restore triggers, one workflow at a time rather than in a batch
Confirm the source repository has stopped running the equivalent
Depends on:#672 for the secrets, and the cutover in #687.
Cutover: Thursday 17 September
Everything below must be reversed on the day. Each is a deliberate hold, not an
oversight, and each is a small edit rather than a rewrite.
Restore the pull_request triggers commented out in ios-pr's siblings: ios-firebase-debug-distribution, ios-release-branch-lifecycle, ios-release-distribution
Restore the schedule triggers commented out in ios-collect-prs-summary, ios-nightly-prepare, ios-nightly-simulator-release, ios-update-signing-data
Remove the six if: false guards added in ci(ios): hold every iOS workflow that can reach Apple until the cutover #787, from ios-safetynet-distribution, ios-testflight-distribution, ios-update-signing-data, ios-register-device, ios-release-prepare
and ios-nightly-prepare, restoring the conditions preserved in the
comments beside the TestFlight and register-device ones. ios-nightly-distribution and ios-release-distribution are not
guarded and need no change
uploads to the .safety record, nothing else stopped it
cutover
ios-testflight-distribution
if: false on distribute_testflight
uploads to the production record
cutover
ios-update-signing-data
if: false on update_signing_data
match with readonly: false over the production identifiers
cutover
ios-register-device
if: false on register_device
registers devices at App Store Connect
cutover
ios-release-prepare
if: false on prepare
drives the release distribution chain past the bot check
cutover
ios-nightly-prepare
if: false on prepare
drives the nightly distribution chain past the bot check
cutover
Not held, and deliberately so:
ios-nightly-distribution and ios-release-distribution call ios-build-distribute.yml, which already fails a hand-started run with an
explicit security error. Holding them too would replace a loud failure with a
skipped job, and a skipped job reports the run as successful.
ios-firebase-debug-distribution stays dispatchable. It is ad-hoc signed,
distributes to a tester group, and never touches App Store Connect.
Each held trigger or condition is preserved verbatim in a comment beside it, so
restoring is not a reconstruction.
All fifteen iOS workflows sit at the repository root after #728, #741 and #754,
but only
ios-pr.ymltriggers. The other fourteen are held onworkflow_dispatchwith their real triggers commented out in place, so restoringone is a readable diff rather than a rewrite.
They were held back because they need things this repository does not have yet.
Secrets
The pull request checks needed four, all now set. The rest need roughly nineteen
more, all present on the source repository:
ASC_KEY_ID,ASC_ISSUER_ID,ASC_KEY_BASE64FIREBASE_APP_ID,CREDENTIAL_FILE_CONTENT,GOOGLE_SERVICE_INFO_RELEASE_BASE64,GOOGLE_SERVICE_INFO_SAFETY_BASE64SCW_ACCESS_KEY,SCW_SECRET_KEYTESTFLIGHT_DISTRIBUTION_LINK,TESTFLIGHT_SAFETY_DISTRIBUTION_LINK,WEB_PAGE_DISTRIBUTION_LINKALLURE_TOKEN,SENTRY_AUTH_TOKENNOTIFICATION_BOT_TOKEN,NOTIFICATION_BOT_URL,CI_MATRIX_ROOM_IDSASC_KEY_IDandASC_ISSUER_IDare already set. Four names are referenced butexist nowhere:
FASTLANE_RW_PAT,MELD_BASIC_AUTH_TOKEN,SENTRY_DSNandWEB_PAGE_SAFETY_DISTRIBUTION_LINK. Two of those are not build-blocking.GOOGLE_SERVICE_INFO_SAFETY_BASE64is a separate Firebase app for the.safetybundle identifier, so it cannot be derived from the others.
Branch filters that name another repository's model
Several carry
branches: [develop]orbranches: [main]from the sourcerepository's branching model.
developdoes not exist here, so restoring thoseverbatim gives filters that never match. Each needs a decision rather than a
restore.
A decision before any of it
Turning these on here means this repository starts distributing builds, cutting
release branches and pushing tags, while the source repository may still be
doing the same. Running both is worse than running neither. So the order matters:
the source repository stops, then these start. That is the same cutover #687 and
#726 describe.
Steps
Depends on: #672 for the secrets, and the cutover in #687.
Cutover: Thursday 17 September
Everything below must be reversed on the day. Each is a deliberate hold, not an
oversight, and each is a small edit rather than a rewrite.
pull_requesttriggers commented out inios-pr's siblings:ios-firebase-debug-distribution,ios-release-branch-lifecycle,ios-release-distributionscheduletriggers commented out inios-collect-prs-summary,ios-nightly-prepare,ios-nightly-simulator-release,ios-update-signing-dataif: falseguards added in ci(ios): hold every iOS workflow that can reach Apple until the cutover #787, fromios-safetynet-distribution,ios-testflight-distribution,ios-update-signing-data,ios-register-device,ios-release-prepareand
ios-nightly-prepare, restoring the conditions preserved in thecomments beside the TestFlight and register-device ones.
ios-nightly-distributionandios-release-distributionare notguarded and need no change
before this point: they are what currently breaks the prepare chain
The original trigger configuration is preserved in place as comments throughout,
so none of this needs reconstructing from memory.
What is currently held, and how
Two mechanisms, because two different constraints. Nothing else in the repository
records this, so it lives here.
ios-firebase-debug-distributionpull_requestcommented out inon:ios-release-branch-lifecyclepull_requestcommented out inon:ios-release-distributionpull_requestcommented out inon:ios-collect-prs-summaryschedulecommented out inon:ios-nightly-prepareschedulecommented out inon:ios-nightly-simulator-releaseschedulecommented out inon:ios-update-signing-dataschedulecommented out inon:ios-safetynet-distributionif: falseonbuild_safetynet.safetyrecord, nothing else stopped itios-testflight-distributionif: falseondistribute_testflightios-update-signing-dataif: falseonupdate_signing_datamatchwithreadonly: falseover the production identifiersios-register-deviceif: falseonregister_deviceios-release-prepareif: falseonprepareios-nightly-prepareif: falseonprepareNot held, and deliberately so:
ios-nightly-distributionandios-release-distributioncallios-build-distribute.yml, which already fails a hand-started run with anexplicit security error. Holding them too would replace a loud failure with a
skipped job, and a skipped job reports the run as successful.
ios-firebase-debug-distributionstays dispatchable. It is ad-hoc signed,distributes to a tester group, and never touches App Store Connect.
Each held trigger or condition is preserved verbatim in a comment beside it, so
restoring is not a reconstruction.