Cette semaine, vérifiez d’abord l’heure de chaque échec et l’étiquette runs-on réellement utilisée ; si le job correspond à une période de Brownout macOS-14 annoncée, basculez les tâches concernées vers une image déjà validée pour votre projet. Ne modifiez pas le code applicatif avant d’avoir écarté le routage vers l’ancien Runner. Pour une publication critique dont le remplacement n’a pas été testé, utilisez uniquement une voie Mac de secours que votre équipe a déjà acceptée. GitHub prévoit le retrait de macOS-14 le 2 novembre 2026 : la migration doit donc être achevée avant cette date (annonce officielle de GitHub).
Cet article s’adresse aux administrateurs IT qui doivent identifier les workflows encore routés vers macOS-14.
Il concerne aussi les ingénieurs de publication qui cherchent à départager un problème d’étiquette, d’image et de projet.
Les responsables de capacité Mac y trouveront des critères pour choisir une solution de secours sans supposer qu’elle est opérationnelle avant son essai réel.
SECTION 01 Vérifiez d’abord si le journal d’échec correspond au Brownout annoncé
Un échec pendant une période de Brownout ne prouve pas, à lui seul, que le Brownout en est la cause. Commencez par relever l’horodatage du job, le dépôt, le workflow, la branche, le commit et l’étiquette du Runner. Comparez ensuite l’heure avec les périodes publiées par GitHub. L’annonce officielle contient les créneaux exacts ; consultez-la directement plutôt que de les recopier depuis un ancien ticket ou de les inférer à partir d’un seul incident (calendrier du Brownout macOS-14).
Cette vérification permet d’éviter deux diagnostics coûteux. D’une part, une panne de dépendance, une erreur de signature ou une régression du code peut survenir au même moment sans être causée par le retrait. D’autre part, un job peut continuer à échouer après la modification du fichier que vous aviez repéré, parce que le workflow exécuté en utilise un autre, une branche différente ou une configuration réutilisée.
| Indice observé | Vérification à effectuer | Décision provisoire |
|---|---|---|
| Le job a échoué pendant un créneau officiel et son étiquette est macOS-14 | Confirmez l’étiquette réellement attribuée dans le journal et comparez l’heure à l’annonce | Traitez le Brownout comme une cause plausible, puis testez l’image de remplacement |
| Le job échoue hors du créneau ou ne porte pas l’étiquette macOS-14 | Examinez les étapes en erreur, le commit et les dépendances | N’attribuez pas l’incident au Brownout sans autre preuve |
| Seuls certains workflows sont touchés | Comparez leurs fichiers de configuration, leurs branches et leurs réutilisations | Réparez d’abord le chemin affecté, sans changer tous les workflows |
| Le job est en attente ou ne démarre pas | Vérifiez la configuration, l’étiquette et l’état du Runner dans les journaux disponibles | Distinguez un problème d’acheminement d’un échec de compilation |
Pour chaque incident, conservez le lien vers l’exécution et notez ce qui est observé, ce qui est seulement suspecté et ce qui a été testé. Cette séparation compte en situation d’astreinte : elle empêche qu’une hypothèse de Brownout déclenche une modification du projet qui ne corrige pas la panne réelle.
À retenir : une correspondance horaire est un indice, pas une preuve suffisante. Il faut aussi confirmer que le job a effectivement été routé vers un Runner macOS-14.
SECTION 02 Le workflow peut encore pointer vers une étiquette macOS-14
Les jobs macOS de GitHub Actions sont sélectionnés à partir des valeurs de runs-on. Il faut donc vérifier le workflow exécuté, pas uniquement le fichier qui semble le plus évident. L’annonce concerne les étiquettes macos-14, macos-14-large et macos-14-xlarge ; comparez ces valeurs à la configuration réellement consommée par le job (annonce de retrait et étiquettes concernées). La documentation GitHub décrit le choix du Runner à partir des étiquettes (guide officiel de sélection d’un Runner).
Procédez dans cet ordre :
- Ouvrez le journal de l’exécution en échec et repérez le nom du workflow, le job concerné, la branche et l’étiquette affichée.
- Recherchez les occurrences des trois étiquettes macOS-14 dans les fichiers de workflows, les modèles générés et les scripts qui construisent ces fichiers.
- Contrôlez les workflows appelés depuis d’autres workflows. Une modification dans le fichier appelant ne change pas nécessairement la configuration de
runs-ondéfinie dans le workflow réutilisé ; vérifiez les responsabilités décrites dans la documentation sur la réutilisation des configurations de workflow. - Confirmez que la modification est présente sur la branche qui a lancé le job et qu’elle n’a pas été écrasée par une génération ou une fusion ultérieure.
- Après le changement, relancez une exécution identifiable et vérifiez son journal. Le fait d’avoir enregistré un nouveau fichier ne prouve pas que le job utilise la nouvelle étiquette.
Si votre équipe utilise un workflow réutilisable, le contrôle doit couvrir à la fois l’appelant et le workflow appelé : les paramètres transmis, les valeurs par défaut et les conditions d’exécution peuvent maintenir un ancien chemin actif. Gardez une trace du fichier modifié et du job de vérification ; en cas de retour arrière, vous pourrez distinguer la restauration de l’ancienne configuration d’une nouvelle tentative sur un Runner différent.
Évitez aussi de remplacer globalement une étiquette avant d’avoir identifié les tâches qui en dépendent. Une validation de demande de fusion, un test sur simulateur et une publication signée n’ont pas la même tolérance à une variation d’environnement. Le premier objectif est de rétablir le flux réellement bloqué, non de transformer en urgence tous les workflows d’un dépôt.
SECTION 03 Un changement d’étiquette ne suffit pas à valider l’environnement
Un Runner de remplacement peut démarrer correctement et échouer ensuite parce que son environnement n’est pas identique à celui attendu par le projet. Le nom de l’étiquette ne constitue pas une validation de compatibilité. Comparez au minimum la version de macOS, Xcode, les SDK, les outils installés, l’architecture visée, les dépendances et les contraintes de signature.
GitHub annonce des étiquettes de remplacement ; le choix entre macos-15 et macos-26 doit néanmoins être fondé sur les besoins de votre chaîne et les résultats de ses essais, pas sur une préférence générale pour l’image la plus récente. Les fichiers d’image publiés permettent d’examiner les logiciels recensés pour macOS-15 arm64 et macOS-26 arm64. Ces listes décrivent les composants de l’image ; elles ne certifient pas que votre projet est compatible.
| Dimension à comparer | Pourquoi elle peut casser le job | Preuve à conserver |
|---|---|---|
| macOS et architecture | Le comportement d’un outil ou d’une dépendance peut varier selon le système ou l’architecture | Valeurs observées sur l’ancien et le nouveau Runner |
| Xcode et SDK | Une version différente peut modifier la compilation, les avertissements, les tests ou l’archivage | Version utilisée par le workflow et résultat de compilation |
| Dépendances et outils installés | Un outil absent, déplacé ou mis à jour peut interrompre une étape | Journaux de résolution et versions réellement utilisées |
| Signature et export | Les certificats, profils et paramètres doivent rester accessibles au job | Résultat d’archivage, de signature et de vérification de l’artefact |
| Tests et artefact livré | Une compilation réussie ne garantit pas qu’un paquet peut être distribué | Résultats des tests requis et contrôle du produit final |
Prenez un commit connu et exécutez-le sur l’ancien chemin lorsqu’il reste disponible, puis sur l’image candidate. Comparez les étapes dans le même ordre et évitez de modifier en parallèle le code, les dépendances et le Runner : sinon, vous ne saurez pas quelle différence a corrigé ou introduit la panne. Un écart de résultat doit être ramené à une étape précise, par exemple la résolution des dépendances, la compilation, le test, l’archivage ou l’export.
Pour les projets qui dépendent d’un Xcode précis, confirmez que l’image retenue contient la version et les SDK nécessaires au workflow. Pour les tâches de conception, d’audio ou de vidéo intégrées à une chaîne Apple, ajoutez également un essai sur les outils et formats réellement utilisés ; une image qui compile une application ne prouve pas qu’elle répond aux contraintes de ces tâches. Consultez les listes d’image comme inventaire, puis validez le résultat avec votre propre exécution.
Point de contrôle : ne considérez pas la migration comme terminée au premier job vert. Pour une publication, la preuve utile comprend aussi les tests attendus, l’archive, la signature et l’artefact que l’équipe doit effectivement distribuer.
SECTION 04 Rétablissez les travaux selon leur risque de publication
Classez les échecs selon leur effet sur la livraison plutôt que selon le nombre de jobs rouges. Une validation de demande de fusion peut être importante pour le flux de développement ; une étape de signature ou de publication bloquée peut, elle, empêcher une livraison déjà planifiée. La priorité dépend de vos engagements internes et de la possibilité de contourner temporairement la tâche sans perdre une preuve de contrôle.
Commencez par isoler la chaîne de publication minimale : compilation, tests obligatoires, archivage, signature et contrôle de l’artefact. Réactivez d’abord le chemin qui permet de produire un résultat vérifiable pour la version prioritaire. Traitez séparément les tests exploratoires ou les validations différables, et ne leur attribuez pas automatiquement la même urgence que la signature de la version destinée à la distribution.
Une fois le chemin critique identifié, désignez la personne qui peut approuver une dérogation et celle qui peut effectuer le retour arrière. Documentez l’étiquette temporaire, le commit testé, les contrôles non exécutés et la condition de reprise. Sans ces éléments, un contournement réalisé pendant l’incident risque de devenir une configuration permanente dont personne ne connaît les limites.
Si seule une partie du pipeline échoue, limitez la modification à cette partie. Une bascule générale des étiquettes peut faire apparaître simultanément des incompatibilités qui n’étaient pas à l’origine de l’incident et compliquer le retour à un état connu. Laissez les tâches non critiques dans un périmètre contrôlé jusqu’à ce qu’elles aient passé leurs propres essais ; n’interprétez pas leur absence de plainte comme une validation.
SECTION 05 Une voie de secours n’est acceptable qu’après validation
Une voie de secours n’est utile que si elle a déjà démontré qu’elle peut exécuter le travail attendu. Vérifiez que l’équipe sait qui détient les accès, où résident les secrets, comment les artefacts sont transférés et quelles traces seront conservées. Un Mac disponible mais jamais testé avec votre workflow n’est pas une continuité garantie.
| Option | Contrôle de l’environnement | Limite à examiner | Quand la retenir |
|---|---|---|---|
| Runner macOS hébergé, étiquette de remplacement | L’image est gérée par le service ; vous sélectionnez une étiquette de Runner | Les logiciels et versions disponibles doivent correspondre au projet | Lorsque le workflow a passé les validations requises sur l’image choisie |
| Runner auto-hébergé sur un Mac déjà administré | Votre équipe contrôle la configuration de la machine et le Runner | L’exploitation, les mises à jour, les accès et l’isolation relèvent de votre équipe | Lorsque cette capacité est configurée, sécurisée et testée avant l’incident |
| Mac distant utilisé comme capacité de secours | Peut fournir un environnement Mac distinct du poste de développement | L’intégration au Runner, les secrets, les artefacts et l’audit doivent être vérifiés | Lorsque le chemin d’exécution a été monté et accepté par l’équipe |
| Attente d’une correction du workflow ou du projet | Évite une bascule non testée | Ne rétablit pas à elle seule une publication bloquée | Lorsque les preuves indiquent une régression du projet plutôt qu’un problème de Runner |
La documentation GitHub sur les Runners auto-hébergés aide à cadrer les responsabilités de cette option. La documentation générale des Runners hébergés et de leurs environnements permet, elle, de vérifier le modèle de fonctionnement et les informations d’environnement. Ni l’une ni l’autre ne remplace votre validation des secrets, des droits, des journaux et du transfert d’artefacts.
Pour une exécution de secours, vérifiez notamment que le code provient de la bonne branche, que les secrets de publication ne sont pas copiés dans des espaces non approuvés et que l’artefact est remis au système de distribution prévu. Définissez aussi qui peut déclencher le job, qui peut consulter les journaux et comment l’environnement sera nettoyé après l’exécution. Si l’un de ces contrôles n’est pas défini, limitez le secours à une tâche qui ne manipule pas de données ou de secrets sensibles.
Le recours à un Mac distant loué peut être étudié lorsque vous avez besoin d’une capacité Mac temporaire sans acheter immédiatement une machine pour chaque personne ou chaque besoin de test. Les modalités réelles, l’accès et le coût doivent être vérifiés avant de l’intégrer à une procédure d’urgence. Vous pouvez examiner les offres de Mac à distance de VPSNIX et leur page de tarifs, puis déterminer si le mode d’accès et la configuration correspondent à votre propre méthode d’exécution. Ne supposez pas qu’un service distant est déjà un Runner prêt à l’emploi : cette intégration reste à valider par votre équipe.
SECTION 06 Autorisez le retrait après une exécution représentative
GitHub a fixé au 2 novembre 2026 le retrait des étiquettes macOS-14, macOS-14-large et macOS-14-xlarge, et son annonce indique les étiquettes de remplacement (date et étiquettes confirmées par GitHub). La date officielle ne garantit pas que chaque workflow aura été migré sans incident ; elle impose de préparer et d’achever votre propre transition avant que l’ancien Runner ne soit retiré.
Avant de fermer le dossier, exigez une exécution sur le workflow utilisé en production, avec un commit représentatif et les contrôles correspondant à la tâche. Pour un job de publication, consignez le résultat de la compilation, des tests nécessaires, de l’archivage, de la signature et de la vérification de l’artefact. Si une étape n’a pas été exécutée, notez-le explicitement au lieu de déclarer le chemin conforme sur la seule base d’un job de compilation vert.
Votre décision de capacité peut ensuite se faire entre un Runner hébergé validé, un Mac auto-hébergé déjà administré ou un modèle hybride. Retenez l’option hébergée lorsque l’image et ses composants répondent aux exigences testées. Maintenez une voie Mac séparée si vous avez besoin de maîtriser l’environnement ou de disposer d’un chemin de publication distinct, à condition de pouvoir en assurer les accès, l’entretien et la traçabilité. Si aucune voie de secours n’a passé le workflow réel, réduisez le périmètre de la migration et faites de l’essai manquant une condition explicite de mise en production.
Pour chaque workflow, archivez l’étiquette cible, le commit de référence, les résultats obtenus, les problèmes non résolus, la condition de retour arrière et le nom du responsable qui autorise la bascule. Reprenez ce contrôle si GitHub modifie son annonce ou si un nouveau créneau de Brownout approche ; l’annonce officielle et la documentation des Runner restent les références à consulter, tandis que la compatibilité demeure une question à trancher par vos propres exécutions. Dernière mise à jour : 15 octobre 2026 ; dates et étiquettes vérifiées dans l’annonce officielle de retrait de GitHub.
SECTION 07 Questions fréquentes
Comment déterminer si un échec est lié au Brownout ?
Comparez l’heure de l’échec aux périodes publiées par GitHub, puis examinez l’étiquette du Runner dans le journal du job. Une panne survenue hors de la fenêtre annoncée ou sur un autre Runner ne doit pas être attribuée d’office au Brownout. Vérifiez également le commit et l’étape exacte qui échoue afin de ne pas confondre un problème de projet avec un problème d’image.
Jusqu’à quand le Runner macOS-14 reste-t-il utilisable ?
GitHub a annoncé le retrait de macOS-14 et de ses variantes large et xlarge pour le 2 novembre 2026. Les périodes de Brownout sont indiquées séparément dans l’annonce officielle et peuvent précéder cette échéance. Consultez les horaires publiés au moment de l’incident : ne les extrapolez pas d’un ancien journal ou d’un échec observé dans un autre dépôt.
Quelle image choisir entre macOS-15 et macOS-26 ?
Choisissez selon les contraintes vérifiées de votre projet, notamment Xcode, les SDK, les outils et l’architecture nécessaires. Les inventaires publics des images aident à comparer les composants, mais ne valident pas une chaîne de publication particulière. Exécutez le même commit sur l’image candidate et conservez les résultats des tests, de l’archivage, de la signature et de l’export avant d’autoriser la bascule.
Comment confirmer que la publication iOS fonctionne après la migration ?
Testez le workflow de publication réel sur un commit de référence. Vérifiez séparément la compilation, les tests requis, l’archivage, la signature et l’artefact final ; confirmez également l’accès contrôlé aux secrets et le fonctionnement du retour arrière. Une compilation réussie ne suffit pas à démontrer qu’un binaire peut être signé et distribué dans les conditions de votre équipe.
SECTION 08 Préparer une solution de secours sans confondre disponibilité et validation
Un Runner hébergé peut limiter le contrôle que vous exercez sur l’image exacte et ses changements ; une machine interne demande, de son côté, une gestion continue des accès, des mises à jour et de la capacité. Ces limites deviennent visibles lorsque le même job doit être exécuté dans un environnement précisément maîtrisé ou lorsque la publication ne peut pas attendre la résolution d’un problème de configuration. Une location de Mac distant via VPSNIX peut alors constituer une option à évaluer pour une capacité temporaire, sous réserve de vérifier l’accès, l’intégration au workflow et les contrôles de sécurité avant de lui confier une publication. Si vous avez besoin d’un environnement stable sous votre contrôle permanent ou d’une capacité soutenue, comparez aussi le coût et la charge d’exploitation d’un Mac acheté ou administré en interne. Pour examiner les modalités avant un essai, consultez le centre d’aide de VPSNIX ; la décision finale doit reposer sur une exécution de votre chaîne réelle, pas sur la seule disponibilité d’une machine.
SECTION 09 FAQ
Comment distinguer un échec du Brownout d’une panne de compilation ordinaire ?
Comparez l’heure de l’échec aux périodes de Brownout annoncées par GitHub, puis vérifiez dans le journal du job l’étiquette de Runner réellement sélectionnée. Si l’échec ne concerne pas un job macOS-14 ou survient hors de la fenêtre annoncée, ne l’attribuez pas automatiquement au retrait. Examinez aussi le commit, les dépendances et les étapes qui échouent afin de séparer un problème d’image d’une régression du projet.
Jusqu’à quand le Runner macOS-14 de GitHub Actions reste-t-il disponible ?
L’annonce officielle de GitHub fixe le retrait de macOS-14, macOS-14-large et macOS-14-xlarge au 2 novembre 2026. Les périodes de Brownout sont distinctes de cette date de retrait : elles peuvent provoquer des échecs avant la suppression définitive. Vérifiez les horaires exacts dans l’annonce officielle, car ils ne doivent pas être déduits d’un échec isolé ni d’un ancien journal de workflow.
Faut-il migrer les builds vers macOS-15 ou macOS-26 ?
Ne choisissez pas une image uniquement parce qu’elle constitue une étiquette de remplacement. Comparez les versions de macOS, Xcode, SDK, outils et architectures dont votre projet a réellement besoin, puis lancez le même commit sur l’image candidate. macOS-15 peut convenir si ses composants couvrent vos contraintes ; macOS-26 ne doit être retenu que si votre chaîne et vos dépendances ont été validées sur cette image.
Comment valider la publication iOS après le changement de Runner ?
Faites passer un commit de référence dans le workflow réel, pas seulement dans une compilation locale. Vérifiez séparément la compilation, les tests requis, l’archivage, la signature, l’export et l’intégrité de l’artefact final. Confirmez aussi que les secrets sont accessibles selon les règles du dépôt et que le chemin de retour arrière fonctionne. Conservez les journaux et les résultats de comparaison comme preuve de mise en production.