Shashikant86.iOS-Dev
Provisionnement Ansible pour le développement iOS et l'intégration continue
Ce rôle peut être utilisé pour mettre en place un service d'intégration continue iOS sur macOS. Ce rôle peut également être utilisé pour configurer un environnement de développement local pour les développeurs iOS. Il contient tous les outils nécessaires pour les développeurs iOS, tels que Xcode, Swift Fastlane, Carthage, Cocoapods et de nombreux packages Homebrew. Cependant, vous avez un contrôle complet pour configurer votre propre environnement avec des variables. L'installation de Xcode nécessite un fichier XIP pré-téléchargé, mais l'installation des simulateurs et des outils en ligne de commande a été automatisée par ce rôle. Ce rôle a été entièrement testé pour
- macOS Sierra
- Xcode 8.0.2
- Xcode 8.3 beta xip
Cela devrait fonctionner à partir de Xcode 8, car le format xip
est pris en charge depuis Xcode 8.
Conditions
Installer Ansible avec pip Ansible est une bibliothèque Python, donc nous pouvons l'installer avec pip
$ easy_install pip $ pip install ansible
Exigences pour la configuration de Xcode
Il existe plusieurs manières pour que ce rôle installe Xcode, vous pouvez choisir celle qui vous convient le mieux :
- Xcode XIP/DMG dans le répertoire
files
du playbook
Vous devez placer un fichier dmg
ou xip
dans le répertoire files/
de votre playbook pour que ce rôle puisse le récupérer et le transférer. Vous devez définir la variable configure_xcode_playbook_files
sur yes
pour activer ce mode. Il y a plusieurs variables que nous pouvons utiliser pour cette méthode. Nous pouvons utiliser xcode_major_version
pour spécifier la version exacte de Xcode que nous utilisons et xcode_src
pour le nom du fichier DMG/XIP de Xcode à copier sur d'autres machines. L'exemple ressemblera à ceci :
configure_xcode_playbook_files: yes
xcode_major_version: 8.2
xcode_src: Xcode_8.2.xip
Cela nous permet d'installer une version spécifique (ce qui est bon pour la stabilité de CI) et évite que le rôle gère l'authentification avec le portail développeur Apple.
- Télécharger Xcode depuis l'Apple App Store en utilisant MAS CLI
Cette méthode nécessite votre identifiant et votre mot de passe Apple Developer à définir dans le fichier de configuration/variables. Cela téléchargera Xcode depuis l'Apple Store de macOS, ce qui prend beaucoup de temps. Les variables que nous pouvons définir sont les suivantes, vous pouvez y mettre votre app_id et vos identifiants !!
use_mac_store: yes
mas_email: ""
mas_password: ""
mas_installed_apps:
- { id: 497799835, name: "Xcode (8.1)" }
mas_upgrade_all_apps: no
Vous pouvez choisir l'une des méthodes ci-dessus pour installer Xcode, mais il est recommandé d'utiliser la première méthode "Xcode XIP/DMG dans le répertoire files
du playbook".
Contenu de ce rôle :
Ce rôle inclut les packages logiciels suivants pour provisionner un serveur d'intégration continue iOS.
- Installation de Xcode
- Swiftenv : Gestionnaire de version pour Swift
- Outils de gestion des dépendances iOS comme Carthage, Cocoapods et Swift Package Manager.
- Outils de livraison continue iOS, c'est-à-dire les outils Fastlane
- Défauts macOS : Contrôle des paramètres par défaut et des mises à jour logicielles
- Homebrew : Gestionnaire de paquets pour macOS
- Packages Homebrew comme git, carthage, swiftlint, mas, cmake, RVM, curl, wget, etc.
- Packages Homebrew Cask
- RVM et versions personnalisées de Ruby
- Gems pré-installés comme bundler, Fastlane, Cocoapods, Xcpretty
- Xcode 8
- Installer les outils en ligne de commande pour Xcode
- Installer le simulateur Xcode (9.2 mais vous pouvez le changer à tout moment)
Vous pouvez personnaliser votre propre playbook pour remplacer les valeurs par défaut et créer votre propre playbook.
Variables du rôle :
Ce rôle contient de nombreuses variables qui peuvent être utilisées pour configurer votre propre playbook. Veuillez consulter defaults/main.yml
pour la liste de toutes les variables. Vous pouvez remplacer les variables de defaults/main.yml
pour configurer le vôtre. Les variables principales sont :
Variables liées à Xcode
configure_xcode_documents_dir
Vous pouvez ignorer la configuration de Xcode en définissant cela surno
, alors il n'installera pas Xcode, les outils en ligne de commande Xcode et les simulateurs. Vous pouvez activer l'installation de Xcode en plaçant le fichier XIP de Xcode dans le répertoire~/Documents/
et en définissant la variable suryes
.configure_xcode_playbook_files
Vous pouvez mettre Xcode XIP/DMG dans le répertoirefiles
du playbook et utiliser les variables mentionnées ci-dessous pour installer Xcode
configure_xcode_playbook_files: yes
xcode_major_version: 8.2
xcode_src: Xcode_8.2.xip
- Xcode utilisant le Mac App Store et MAS CLI Vous pouvez obtenir Xcode depuis le Mac App Store, mais cela nécessite vos identifiants de développeur Apple, alors soyez prudent ! Les variables à définir sont :
use_mac_store: yes
mas_email: ""
mas_password: ""
mas_installed_apps:
- { id: 497799835, name: "Xcode (8.1)" }
mas_upgrade_all_apps: no
Variables de gestion personnalisée des versions de Swift et Ruby
configure_custom_swift
Xcode 8 est livré avec Swift par défaut, mais nous pouvons utiliser une autre version de l'outil Swift. Vous pouvez le définir suryes
et vous avez besoin de configurerswift_version_custom
avec la valeur de la version Swift que vous souhaitez, par exemple3.0.1
.configure_ruby_rvm
macOS fournit Ruby par défaut2.0.0
, mais il est difficile de gérer les Rubygems avec le Ruby système. Nous pouvons utiliser un outil de gestion des versions comme RVM en définissant la variableconfigure_ruby_rvm
suryes
et en définissant la valeurruby-version
sur la version Ruby souhaitée, par exemple2.4.0
.
Variables liées aux défauts macOS et aux mises à jour logicielles
Vous pouvez activer OU désactiver les paramètres par défaut de macOS en mettant des commandes dans les variables macos_sleep_options
, macos_animation_options
et macos_software_autoupdates
, par exemple :
macos_sleep_options:
- systemsetup -setsleep Never
- systemsetup -setharddisksleep Never
Variables liées à Homebrew
Vous pouvez personnaliser le chemin d'installation de Homebrew avec homebrew_install_path
et la liste des packages avec homebrew_installed_packages
et les applications Homebrew Cask avec homebrew_cask_apps
. Vous pouvez également lister les taps Homebrew avec les variables homebrew_taps
.
Comment utiliser ce rôle :
Imaginez que vous avez un Mac fraîchement installé avec macOS. Vous pouvez configurer tout votre environnement de développement iOS en créant un playbook pour ce rôle. Vous pouvez configurer les variables selon vos besoins.
En supposant que vous ayez installé Ansible, nous pouvons télécharger le rôle en exécutant la commande :
$ ansible-galaxy install Shashikant86.iOS-Dev
Maintenant que nous devons créer notre propre playbook pour ce rôle en définissant les variables, nous pouvons utiliser le fichier defaults/main.tml
ici. L'exemple de playbook ressemble à ceci :
Exemple de playbook
Nous pouvons créer un playbook.yml
comme ceci :
---
- hosts: localhost
connection: local
remote_user: root
vars:
configure_xcode: no
configure_custom_swift: yes
configure_macos_defaults: no
configure_ruby_rvm: yes
homebrew_upgrade_all_packages: no
use_mac_store: no
xcode_src: Xcode_8.2.1.xip
ruby_version: 2.4.0
rubygems_packages_to_install:
- bundler
- xcpretty
swift_version_custom: 3.0.1
homebrew_installed_packages:
- autoconf
- bash-completion
- git
- carthage
- gpg
- boost
- cmake
- ssh-copy-id
- openssl
- wget
- curl
- argon/mas/mas
- kylef/formulae/swiftenv
homebrew_taps:
- homebrew/core
- caskroom/cask
- homebrew/binary
- homebrew/dupes
- homebrew/versions
homebrew_cask_apps:
- java
roles:
- Shashikant86.iOS-Dev
Veuillez consulter le playbook/config à l'intérieur du répertoire tests
comme exemple.
Vous pouvez créer config.yml
et l'appeler depuis le fichier playbook si vous souhaitez garder les variables en dehors du fichier playbook.
Configurer l'intégration continue avec Travis
Nous pouvons tester ce rôle sur TravisCI en désactivant la configuration de Xcode, car TravisCI a ses propres images Xcode. Nous pouvons tester toutes les autres choses sur TravisCI. Vous pouvez voir la configuration TravisCI dans le fichier .travis.yml
et le playbook/config dans le répertoire tests
. Vous pouvez voir la sortie de TravisCI ici.
Dépendances
Aucune
Licence
MIT
Informations sur l'auteur
Shashikant Jagtap
Fully automated and customised macOS setup for iOS development & CI
ansible-galaxy install Shashikant86.iOS-Dev