Configuration d'un Runner GitHub Actions sur Mac Mini (Apple Silicon)
GitHub Actions est une plateforme CI/CD puissante qui vous permet d'automatiser vos workflows de développement logiciel. Bien que GitHub propose des runners hébergés, les runners auto-hébergés offrent un contrôle et une personnalisation accrus pour votre configuration CI/CD. Ce tutoriel vous guide dans la configuration, la mise en place et la connexion d'un runner auto-hébergé sur un Mac mini pour exécuter des pipelines macOS.
Prérequis
Avant de commencer, assurez-vous d'avoir :
- Un Mac mini (inscrivez-vous sur Macfleet)
- Un dépôt GitHub avec des droits d'administrateur
- Un gestionnaire de paquets installé (de préférence Homebrew)
- Git installé sur votre système
Étape 1 : Créer un compte utilisateur dédié
D'abord, créez un compte utilisateur dédié pour le runner GitHub Actions :
# Créer le compte utilisateur 'gh-runner'
sudo dscl . -create /Users/gh-runner
sudo dscl . -create /Users/gh-runner UserShell /bin/bash
sudo dscl . -create /Users/gh-runner RealName "GitHub runner"
sudo dscl . -create /Users/gh-runner UniqueID "1001"
sudo dscl . -create /Users/gh-runner PrimaryGroupID 20
sudo dscl . -create /Users/gh-runner NFSHomeDirectory /Users/gh-runner
# Définir le mot de passe pour l'utilisateur
sudo dscl . -passwd /Users/gh-runner votre_mot_de_passe
# Ajouter 'gh-runner' au groupe 'admin'
sudo dscl . -append /Groups/admin GroupMembership gh-runner
Basculez vers le nouveau compte utilisateur :
su gh-runner
Étape 2 : Installer les logiciels requis
Installez Git et Rosetta 2 (si vous utilisez Apple Silicon) :
# Installer Git s'il n'est pas déjà installé
brew install git
# Installer Rosetta 2 pour les Mac Apple Silicon
softwareupdate --install-rosetta
Étape 3 : Configurer le Runner GitHub Actions
- Allez sur votre dépôt GitHub
- Naviguez vers Settings > Actions > Runners
- Cliquez sur "New self-hosted runner" (
https://github.com/<nom_utilisateur>/<dépôt>/settings/actions/runners/new
) - Sélectionnez macOS comme image de runner et ARM64 comme architecture
- Suivez les commandes fournies pour télécharger et configurer le runner
Créez un fichier .env
dans le répertoire _work
du runner :
# Fichier _work/.env
ImageOS=macos15
XCODE_15_DEVELOPER_DIR=/Applications/Xcode.app/Contents/Developer
- Exécutez le script run.sh dans votre répertoire de runner pour terminer la configuration.
- Vérifiez que le runner est actif et écoute les tâches dans le terminal et vérifiez les paramètres du dépôt GitHub pour l'association du runner et le statut Idle.
Étape 4 : Configurer Sudoers (Optionnel)
Si vos actions nécessitent des privilèges root, configurez le fichier sudoers :
sudo visudo
Ajoutez la ligne suivante :
gh-runner ALL=(ALL) NOPASSWD: ALL
Étape 5 : Utiliser le Runner dans les Workflows
Configurez votre workflow GitHub Actions pour utiliser le runner auto-hébergé :
name: Workflow exemple
on:
workflow_dispatch:
jobs:
build:
runs-on: [self-hosted, macOS, ARM64]
steps:
- name: Installer NodeJS
run: brew install node
Le runner est authentifié sur votre dépôt et étiqueté avec self-hosted
, macOS
, et ARM64
. Utilisez-le dans vos workflows en spécifiant ces étiquettes dans le champ runs-on
:
runs-on: [self-hosted, macOS, ARM64]
Bonnes Pratiques
- Maintenez votre logiciel de runner à jour
- Surveillez régulièrement les logs du runner pour détecter les problèmes
- Utilisez des étiquettes spécifiques pour différents types de runners
- Implémentez des mesures de sécurité appropriées
- Considérez l'utilisation de plusieurs runners pour l'équilibrage de charge
Dépannage
Problèmes courants et solutions :
-
Runner ne se connecte pas :
- Vérifiez la connectivité réseau
- Vérifiez la validité du token GitHub
- Assurez-vous des permissions appropriées
-
Échecs de build :
- Vérifiez l'installation de Xcode
- Vérifiez les dépendances requises
- Examinez les logs du workflow
-
Problèmes de permissions :
- Vérifiez les permissions utilisateur
- Vérifiez la configuration sudoers
- Examinez les permissions du système de fichiers
Conclusion
Vous avez maintenant un runner GitHub Actions auto-hébergé configuré sur votre Mac mini. Cette configuration vous donne plus de contrôle sur votre environnement CI/CD et vous permet d'exécuter efficacement des workflows spécifiques à macOS.
N'oubliez pas de maintenir régulièrement votre runner et de le tenir à jour avec les derniers correctifs de sécurité et versions de logiciels.