Dans la syntaxe de GitHub Actions, un travail peut cibler les trois étiquettes self-hosted, macOS et ARM64 pour sélectionner un runner correspondant ; la documentation sur la sélection des runners décrit le rôle de runs-on.

Besoin : votre projet doit construire ou tester sous macOS, mais l’environnement disponible ne suffit pas. Action rapide : déployez un runner auto-hébergé seulement si votre équipe peut administrer sa machine ; validez d’abord l’inscription, l’exécution et le nettoyage dans un dépôt isolé, sans lui confier les demandes de fusion non fiables.

Ce guide s’adresse aux étudiants et chercheurs qui développent une application macOS et veulent intégrer leurs validations à GitHub Actions. Il concerne aussi les développeurs de laboratoire qui dépendent d’outils personnalisés, ainsi que les responsables informatiques qui doivent définir l’accès, les secrets et la maintenance. Si un runner hébergé répond déjà au besoin, vous pouvez éviter le travail opérationnel d’un environnement auto-hébergé.

Évaluer le besoin avant de préparer la machine

Un runner macOS auto-hébergé est pertinent lorsque le projet exige un environnement macOS, des outils installés par votre équipe ou une machine maintenue disponible pour les tâches prévues. Il ne devient pas automatiquement préférable parce que votre laboratoire possède un Mac ou parce que l’exécution à distance semble commode. La responsabilité de garder l’hôte à jour, de limiter son accès et de nettoyer son état reste à votre équipe.

Commencez par décrire le travail réel plutôt que par installer l’application du runner. Notez les commandes indispensables, les dépendances, les données utilisées et les fichiers produits. Pour un outil de recherche audio ou vidéo, par exemple, vérifiez que les codecs, les périphériques requis et les étapes d’export sont disponibles dans l’environnement de test ; un simple test de compilation ne prouvera pas que le rendu ou l’analyse est correct.

Vérifiez également si le besoin porte sur macOS lui-même ou sur une dépendance qui pourrait être testée autrement. Si vos tâches sont déjà compatibles avec un runner hébergé, migrer vers une machine à administrer ajoute une responsabilité sans garantir un résultat plus reproductible. À l’inverse, si votre chaîne dépend de logiciels macOS ou d’outils propres au laboratoire, un hôte dédié peut fournir un environnement maîtrisé, sous réserve que son accès soit convenablement limité.

<
OptionQuand elle convientLimites à prendre en compteAppréciation opérationnelle
Runner hébergé par GitHubLes outils et l’environnement proposés suffisent aux validations du projetVous avez moins de maîtrise sur la configuration persistante de l’hôteFavorable si la tâche est compatible et ne demande pas votre environnement particulier
Mac de laboratoireL’équipe peut contrôler physiquement la machine et en assurer l’entretienConcurrence d’usage, état partagé, mises à jour et nettoyage à organiserFavorable si un responsable et une procédure de remise en état sont définis
Mac distant auto-hébergéLe projet a besoin d’un environnement macOS administré par l’équipe, accessible à distanceRéseau, secrets, accès au dépôt et maintenance de l’hôte deviennent votre chargeConditionnel : à retenir après un essai isolé concluant
Cette appréciation est un outil de décision, pas une mesure de performances ni une garantie de conformité. La documentation de GitHub décrit le runner comme une application exécutée sur une machine qui communique avec GitHub Actions ; elle ne certifie pas que cette machine respecte les règles de sécurité propres à votre établissement. Consultez [la référence officielle des runners auto-hébergés](https://docs.github.com/en/actions/reference/runners/self-hosted-runners), puis demandez séparément l’accord de votre laboratoire ou de votre service informatique si les données ou les règles internes l’exigent.

Un Mac distant peut-il exécuter un flux macOS de GitHub Actions ? Oui, si le runner est correctement installé sur cet hôte, peut communiquer avec GitHub Actions et reçoit un travail correspondant à ses étiquettes. La connexion à distance ou l’accès par terminal ne remplace pas ces conditions : c’est l’application runner sur la machine qui reçoit et exécute les tâches.

Délimiter le dépôt, les flux et les permissions

Avant l’inscription, choisissez un dépôt de test ou une copie de projet que vous pouvez restaurer. Préparez un flux minimal, sans données sensibles ni clés de production, puis vérifiez quels événements peuvent le déclencher. Cette séparation permet de corriger les erreurs de configuration sans exposer les fichiers du laboratoire ni les secrets utilisés par les tâches réelles.

Inventoriez les éléments que le flux pourrait lire ou modifier : secrets du dépôt, jetons, répertoires de travail, caches, fichiers temporaires et autres données présentes sur l’hôte. La distinction entre « le travail est autorisé par GitHub » et « le travail est acceptable sur cette machine » est essentielle : un flux valide peut tout de même avoir un accès trop large.

Pour commencer, attribuez le runner au périmètre le plus restreint qui permet de tester le projet. Les options d’accès et d’affectation dépendent de la manière dont vous gérez les runners ; la documentation sur la gestion de leur accès vous aide à vérifier les niveaux disponibles. Ne confondez pas cette configuration technique avec l’approbation institutionnelle : une autorisation donnée dans un dépôt ne démontre pas que l’hébergement de données de recherche est approuvé.

**Point de sécurité :** ne dirigez pas vers un hôte auto-hébergé un flux qui exécute du code non fiable sans avoir conçu et vérifié une isolation adaptée. GitHub avertit que des flux malveillants peuvent laisser des effets persistants sur un environnement auto-hébergé ; consultez ses [recommandations de sécurité pour GitHub Actions](https://docs.github.com/en/actions/reference/security/secure-use) avant d’élargir l’accès.

**Un runner auto-hébergé peut-il exécuter une demande de fusion provenant d’un fork ?** Ne l’autorisez pas par défaut. Une contribution externe peut contenir du code qui s’exécutera sur la machine ; si vous ne pouvez pas empêcher ce code d’accéder aux secrets, aux fichiers locaux ou à des tâches ultérieures, désactivez cette voie pour le runner et choisissez une validation isolée.

Décidez aussi où les identifiants seront stockés et à quelles étapes ils seront accessibles. Le jeton fourni par le flux peut être configuré avec des permissions limitées ; les instructions officielles sur l’authentification par GITHUB_TOKEN sont une référence pour examiner ce réglage. N’intégrez pas de secret directement dans un script ou dans un fichier de configuration du projet. Pour les tests initiaux, omettez les secrets si le scénario n’en a pas besoin.

Première étape : inscrire le runner sur le Mac

Une fois le périmètre défini, confirmez que le système et l’architecture de la machine sont pris en charge, que l’accès réseau permet la communication nécessaire et que vous avez l’autorisation d’installer et de maintenir le logiciel. La disponibilité d’une session distante n’établit pas ces points à elle seule. Suivez la procédure officielle d’ajout d’un runner, qui précise la configuration à effectuer sur la machine et dans le dépôt ou l’organisation : ajouter un runner auto-hébergé.

Pendant l’inscription, consignez le nom attribué au runner et les étiquettes que vous choisissez. Ces étiquettes servent à faire correspondre le travail à la machine ; elles ne constituent pas une frontière de sécurité. Si un flux sélectionne une étiquette trop largement partagée, il peut être dirigé vers un hôte qui ne correspond pas au niveau de confiance attendu. Gardez une correspondance explicite entre le dépôt de test, les flux autorisés et la destination voulue.

Comment ajouter un runner GitHub Actions à un hôte macOS ? Sélectionnez d’abord le dépôt ou le périmètre d’administration approprié, puis suivez les instructions d’ajout affichées par GitHub pour télécharger et configurer l’application sur l’hôte. Utilisez les paramètres générés pour cette inscription, choisissez un nom et des étiquettes reconnaissables, puis vérifiez dans l’interface que le runner apparaît disponible avant de lui attribuer un travail.

Lorsque l’inscription est terminée, ne passez pas immédiatement aux flux habituels de l’équipe. Faites d’abord une revue croisée des permissions : qui peut modifier le flux, qui peut déclencher son exécution, quels fichiers l’hôte peut lire et quels secrets sont accessibles. Cette revue doit inclure les personnes qui maintiennent le dépôt et, si nécessaire, l’équipe responsable de l’infrastructure.

Deuxième étape : préparer le lancement et le retour en service

Un runner qui démarre uniquement dans une session de terminal peut disparaître du service lorsque cette session se ferme ou après un redémarrage. Si le projet exige que l’hôte soit disponible de manière suivie, définissez une procédure de démarrage et de contrôle, puis vérifiez-la après une interruption planifiée. La configuration du service dépend de macOS : appuyez-vous sur les instructions GitHub pour configurer l’application runner comme service sur macOS.

Documentez le chemin de démarrage, la manière de confirmer que le processus répond et la procédure de retrait du runner. Précisez aussi qui reçoit les alertes et qui peut remettre l’hôte en état. Sans propriétaire identifié, le runner peut rester indisponible après une mise à jour ou, à l’inverse, continuer à accepter des tâches alors que l’équipe pense l’avoir désactivé.

Évitez de laisser des données de projet dans un espace de travail permanent sans raison documentée. Un travail peut échouer après avoir créé des fichiers ou modifié un cache ; la tâche suivante risque alors de réutiliser un état inattendu. Définissez donc ce qui est supprimé à la fin, ce qui doit être conservé pour l’analyse d’un échec et qui contrôle le nettoyage. Pour des données de recherche, ce choix doit respecter les règles du projet et de l’établissement.

**À consigner :** conservez l’identification du responsable, les versions des outils, les étiquettes, les règles d’accès, le résultat du test et le chemin de retrait. Un relevé court facilite le diagnostic et la transmission quand la personne qui a installé le runner n’est plus disponible.

Troisième étape : exécuter un flux minimal et interpréter son résultat

Le premier flux doit accomplir une tâche simple et vérifiable, sans fichier confidentiel ni secret. Faites-lui afficher des informations de diagnostic nécessaires, exécuter une commande de test connue et produire un résultat que vous pouvez examiner. Dans la définition du flux, sélectionnez le runner au moyen de runs-on et de ses étiquettes ; la syntaxe des flux de travail détaille la sélection des runners et les autres éléments de configuration.

Comment vérifier la construction et les tests d’un projet de recherche ? Séparez les preuves au lieu de vous fier au seul indicateur de réussite du flux. Confirmez que le travail a été pris par le runner attendu, que les commandes ont tourné dans l’environnement macOS voulu, que les journaux et les artefacts sont inspectables, puis faites vérifier par une personne compétente les résultats propres au projet.

Cette distinction évite plusieurs conclusions erronées. Un runner visible comme disponible prouve seulement qu’il peut recevoir des tâches ; un flux vert montre que les étapes déclarées se sont terminées selon leurs critères ; un logiciel qui démarre ne démontre pas que toute l’analyse est correcte. Pour une application audio ou vidéo, l’export peut avoir abouti alors que le contenu doit encore être contrôlé. Pour un outil d’analyse, les tests automatisés peuvent passer sans valider la méthode scientifique, les entrées ou l’interprétation des résultats.

Procédez par vérifications séparées :

  • Contrôlez que le flux sélectionne l’hôte et les étiquettes attendus, et non un autre runner.
  • Examinez les journaux pour confirmer les commandes exécutées et repérer les chemins ou dépendances inattendus.
  • Vérifiez que les fichiers produits sont accessibles à la personne chargée de les examiner, sans publier de données confidentielles.
  • Rejouez le test après nettoyage afin de détecter une dépendance accidentelle à des fichiers laissés par une tâche précédente.
  • Faites valider le résultat fonctionnel ou scientifique par le responsable du projet, avec les critères propres à l’application.
Si la tâche utilise GITHUB_TOKEN, vérifiez que ses permissions correspondent réellement aux opérations du flux. Si la commande de test n’a besoin que de lire le dépôt, ne lui accordez pas des droits d’écriture sans nécessité. Enfin, ne stockez pas dans les journaux des données d’identification, des informations personnelles ou des extraits sensibles simplement pour faciliter le dépannage.

Mettre à l’épreuve les limites avant l’ouverture du dépôt

Une fois le chemin d’exécution confirmé, examinez le scénario de menace et le nettoyage de l’hôte. Une machine auto-hébergée peut conserver des fichiers, des dépendances ou des caches entre les travaux ; ne supposez pas que l’environnement revient automatiquement à un état vierge après chaque tâche. Vérifiez les répertoires temporaires, les artefacts téléchargés, les scripts et les accès persistants, puis définissez un effacement ou une réinitialisation compatible avec les besoins du projet.

Testez également les permissions en partant du flux le moins privilégié. Confirmez qu’un événement non prévu ne peut pas lancer de code sur le runner, que les personnes capables de modifier le flux sont autorisées à le faire et que les secrets ne sont pas exposés à une contribution externe. Si vous ne savez pas empêcher un flux non fiable de lire les fichiers de l’hôte ou d’influencer les travaux suivants, ne rattachez pas le runner au dépôt de production.

Cette limite est particulièrement importante avec les demandes de fusion issues d’un fork. Elles peuvent être utiles à la revue de code, mais leur exécution sur une machine persistante n’est pas équivalente à une exécution isolée. Ne cherchez pas à résoudre le problème en masquant simplement les secrets dans le fichier de configuration : du code exécuté sur le runner peut aussi tenter d’inspecter l’environnement ou les fichiers accessibles. Gardez cette catégorie de travail hors du runner tant que l’isolation n’a pas été conçue et vérifiée.

Quand les tests échouent, comparez les journaux du runner, les dépendances, les chemins et les permissions avant de changer simultanément plusieurs paramètres. Notez l’état connu comme fonctionnel, puis une modification à la fois ; vous pourrez ainsi distinguer un problème de réseau, de configuration du flux, d’installation d’outil ou de code du projet.

Entretenir l’environnement et choisir la suite

Après la mise en service, consignez une référence d’environnement : version de macOS, outils installés, version du runner, étiquettes, dépôts autorisés et responsable. La documentation officielle peut évoluer ; avant un changement de système ou de procédure, vérifiez les prérequis et informations actuels sur les runners auto-hébergés. Réexaminez également les autorisations lorsque les responsables, les flux ou les règles du dépôt changent.

Conservez assez d’éléments pour diagnostiquer une panne, sans transformer les journaux en copie permanente de données de recherche. Précisez la durée de conservation applicable, les fichiers qui peuvent être partagés et la personne habilitée à examiner les résultats. Si votre établissement impose une politique de stockage ou de traitement, obtenez son accord avant d’utiliser le runner avec des données concernées ; la configuration GitHub ne remplace pas cette décision.

La solution actuelle doit être évaluée avec la même rigueur que le Mac distant. Un poste Linux ou Windows ne valide pas nécessairement un comportement propre à macOS ; un Mac partagé peut être indisponible au moment voulu ou garder un état laissé par un autre utilisateur ; un runner hébergé peut ne pas contenir vos outils particuliers. Ces limites justifient l’examen d’un hôte macOS dédié, mais ne démontrent ni qu’une location convient à votre charge, ni qu’un service satisfait les règles de votre établissement.

Si votre flux minimal confirme qu’il vous faut une machine macOS accessible de façon suivie, consultez les options Mac à distance de MACGPU et vérifiez avant toute décision les conditions d’accès, le système disponible, la méthode de connexion et les règles applicables à vos données. Vous pouvez aussi examiner les environnements Mac proposés par MACGPU, puis comparer le coût et la charge de gestion avec l’achat d’une machine ou l’usage d’un hôte du laboratoire. Si vous avez besoin d’un accès physique, d’un contrôle local strict ou d’une disponibilité durable sous votre seule administration, un Mac acheté ou géré par votre établissement peut être plus approprié. Pour un besoin temporaire de validation macOS, un environnement distant évite d’acheter du matériel avant d’avoir démontré que le runner, les permissions et le nettoyage répondent réellement aux exigences du projet.