doc-locale/fr-fr/ci/runners/hosted_runners/macos.md
{{< details >}}
{{< /details >}}
Les runners hébergés sur macOS fournissent un environnement macOS à la demande, entièrement intégré avec GitLab CI/CD. Vous pouvez utiliser ces runners pour compiler, tester et déployer des applications pour l'écosystème Apple (macOS, iOS, watchOS, tvOS). Notre section Mobile DevOps fournit des fonctionnalités, de la documentation et des conseils sur la compilation et le déploiement d'applications mobiles pour iOS.
Les runners hébergés sur macOS sont en version bêta et disponibles pour les programmes open source et les clients disposant des plans Premium et Ultimate. La disponibilité générale des runners hébergés sur macOS est proposée dans l'epic 8267.
Consultez la liste des problèmes connus et des contraintes d'utilisation qui affectent les runners hébergés sur macOS avant de les utiliser.
GitLab propose le type de machine suivant pour les runners hébergés sur macOS. Pour compiler pour une cible x86-64, vous pouvez utiliser Rosetta 2 pour émuler un environnement Intel x86-64.
| Tag du runner | vCPU | Mémoire | Stockage |
|---|---|---|---|
saas-macos-medium-m1 | 4 | 8 Go | 50 Go |
saas-macos-large-m2pro | 6 | 16 Go | 50 Go |
Contrairement à nos runners hébergés sur Linux, où vous pouvez exécuter n'importe quelle image Docker, GitLab fournit un ensemble d'images VM pour macOS.
Vous pouvez exécuter votre compilation dans l'une des images suivantes, que vous spécifiez dans votre fichier .gitlab-ci.yml. Chaque image exécute une version spécifique de macOS et de Xcode.
| Image VM | Statut | |
|---|---|---|
macos-14-xcode-15 | deprecated | Logiciels préinstallés |
macos-15-xcode-16 | GA | Logiciels préinstallés |
macos-26-xcode-26 | GA | Logiciels préinstallés |
Si aucune image n'est spécifiée, le runner macOS utilise macos-15-xcode-16.
Les images et les composants installés sont mis à jour à chaque release GitLab, afin de maintenir les logiciels préinstallés à jour. GitLab prend généralement en charge plusieurs versions de logiciels préinstallés. Pour plus d'informations, consultez la liste complète des logiciels préinstallés.
Les versions majeures et mineures de macOS et de Xcode sont disponibles dans le jalon suivant la release Apple.
Une nouvelle image de version majeure est d'abord disponible en version bêta, et devient généralement disponible avec la release de la première version mineure. Étant donné que seules deux images généralement disponibles sont prises en charge à la fois, l'image la plus ancienne est dépréciée et sera supprimée après trois mois conformément au cycle de vie des images prises en charge.
Lorsqu'une nouvelle version majeure est généralement disponible, elle devient l'image par défaut pour tous les jobs macOS.
.gitlab-ci.yml {#example-gitlab-ciyml-file}L'exemple de fichier .gitlab-ci.yml suivant montre comment commencer à utiliser les runners hébergés sur macOS :
.macos_saas_runners:
tags:
- saas-macos-medium-m1
image: macos-14-xcode-15
before_script:
- echo "started by ${GITLAB_USER_NAME} / @${GITLAB_USER_LOGIN}"
build:
extends:
- .macos_saas_runners
stage: build
script:
- echo "running scripts in the build job"
test:
extends:
- .macos_saas_runners
stage: test
script:
- echo "running scripts in the test job"
Avant de pouvoir intégrer GitLab aux services Apple, installer sur un appareil ou déployer sur l'Apple App Store, vous devez signer le code de votre application.
Chaque image VM de runner sur macOS inclut fastlane, une solution open source visant à simplifier le déploiement d'applications mobiles.
Pour savoir comment configurer la signature de code pour votre application, consultez les instructions dans la documentation Mobile DevOps.
Sujets connexes :
Par défaut, Homebrew vérifie les mises à jour au début de chaque opération. Homebrew suit un cycle de release qui peut être plus fréquent que le cycle de release des images macOS de GitLab. Cette différence de cycles de release peut entraîner des délais supplémentaires pour les étapes qui appellent brew pendant que Homebrew effectue ses mises à jour.
Pour réduire le temps de compilation lié aux mises à jour involontaires de Homebrew, définissez la variable HOMEBREW_NO_AUTO_UPDATE dans .gitlab-ci.yml :
variables:
HOMEBREW_NO_AUTO_UPDATE: 1
Si vous utilisez CocoaPods dans un projet, vous devriez envisager les optimisations suivantes pour améliorer les performances de CI.
CocoaPods CDN
Vous pouvez utiliser l'accès au réseau de distribution de contenu (CDN) pour télécharger des packages depuis le CDN au lieu de devoir cloner l'intégralité d'un dépôt de projet. L'accès CDN est disponible dans CocoaPods 1.8 ou version ultérieure et est pris en charge par tous les runners GitLab hébergés sur macOS.
Pour activer l'accès CDN, assurez-vous que votre Podfile commence par :
source 'https://cdn.cocoapods.org/'
Use GitLab caching
Utilisez la mise en cache dans les packages CocoaPods dans GitLab pour n'exécuter pod install que lorsque les pods changent, ce qui peut améliorer les performances de compilation.
Pour configurer la mise en cache pour votre projet :
Ajoutez la configuration cache à votre fichier .gitlab-ci.yml :
cache:
key:
files:
- Podfile.lock
paths:
- Pods
Ajoutez le plugin cocoapods-check à votre projet.
Mettez à jour le script du job pour vérifier les dépendances installées avant d'appeler pod install :
bundle exec pod check || bundle exec pod install
Include pods in source control
Vous pouvez également inclure le répertoire des pods dans le contrôle de code source. Cela élimine la nécessité d'installer des pods dans le cadre du job CI, mais augmente la taille globale du dépôt de votre projet.
gitlab n'est pas accessible publiquement. Vous devez créer un trousseau à la place.testmanagerd, ne sont pas prises en charge.