TFS 2015 permet de lancer des builds sur des projets qui ne sont pas des solutions Microsoft. Pour cela, il faut un agent de build qui permette de le faire.
Nous allons voir dans cet article, comment installer un agent de build sur un Mac et paramétrer un build vNext sur TFS 2015 OnPremise pour compiler un projet Xcode.
1. Préparation de TFS
On va d’abord créer un pool dédié aux builds sur le Mac. Pour cela, aller sur la page de paramétrage des agents : https://{your_server}:8080/tfs/_admin/_AgentPool
Créer un nouveau pool.
Bien noter le nom de ce pool car il sera utilisé lors de l’installation de l’agent sur le Mac.
Il faut ensuite donner les droits au compte de service qui sera utilisé par l’agent de build sur le Mac.
Pour lui donner le droit de lancer des builds, cliquer sur le pool qui vient d’être créé et aller dans l’onglet Rôles. Cliquer sur « Agent Pool Service Account » puis « Add ». Indiquer le compte de service que l’agent utilisera sur le Mac.
Faire de même avec le rôle « Agent Pool administrators ».
2. Installation des prérequis sur le Mac
Le 1er prérequis est d’avoir un Mac connecté au réseau pour pouvoir contacter le serveur TFS et à internet pour pouvoir télécharger les composants à installer. La connexion à internet ne sera plus nécessaire après cette étape.
Sur le Mac, il faut installer Xcode et OpenSSL.
Voici les commandes pour l’installation de OpenSSL en utilisant HomeBrew :
brew update brew install openssl ln -s /usr/local/opt/openssl/lib/libcrypto.1.0.0.dylib /usr/local/lib/ ln -s /usr/local/opt/openssl/lib/libssl.1.0.0.dylib /usr/local/lib/
3. Installation de l’agent de build sur le Mac
Une fois que les prérequis sont installés, on peut Télécharger l’agent de build pour Mac OS
Lancez les commandes suivantes en mettant le bon chemin et le bon nom de fichier :
~/$ mkdir myagent && cd myagent ~/myagent$ tar xzf ~/Downloads/vsts-agent-osx.10.11-x64-<N°Version>.tar.gz
On peut alors commencer à configurer l’agent de build sur le Mac. Lancez la commande suivante :
./config.sh
Ce script demande :
- L’URL de TFS. Elle doit être de la forme https://{your-server}:8080/tfs
- Le type d’authentification : laisser Defaults si vous ne savez pas.
- Le compte de service. C’est le compte utilisé dans le chapitre 1 et qui a les droits sur le Pool d’agent.
- Le nom du pool d’agents. Il faut reprendre le nom du pool créé dans le chapitre 1.
Pour vérifier que ça fonctionne, lancer la commande :
./run.sh
Si la commande ne ressort pas d’erreur, c’est qu’on est sur la bonne voie. Des logs sont disponibles dans le répertoire « _diag », à consulter en cas d’erreur.
4. Démarrage de l’agent en tant que service
Maintenant qu’on sait que l’agent fonctionne, on peut l’installer en tant que service afin de ne pas être obligé de le lancer manuellement à chaque démarrage du Mac.
./svc.sh install ./svc.sh start
A partir de cette étape, vous devez voir l’agent apparaître dans TFS et il doit être vert.
S’il apparait en rouge, c’est qu’il n’est pas démarré.
5. Autologon de la session du Mac
On peut considérer que l’installation de l’agent est terminé, sauf que si le Mac est redémarré, l’agent ne tournera pas tant qu’aucun utilisateur ne se loggue. Il faut donc forcer le démarrage automatique d’une session.
Pour cela, allez dans les préférences systèmes et cliquer sur Comptes.
Allez dans Options et cliquez sur le cadenas en bas à gauche pour élever les privilèges. Vous aurez alors à saisir le mot de passe administrateur.
Sélectionnez ensuite le compte à ouvrir automatiquement.
Afin d’éviter que toute personne non autorisée n’intervienne sur la machine, on va la verrouiller au démarrage de la session.
Créez un fichier PLIST dans le répertoire ~/Library/LaunchAgents.
Remplissez ce fichier avec le contenu suivant puis redémarrer :
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "https://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>AbandonProcessGroup</key> <true/> <key>Label</key> <string>loginhook</string> <key>ProgramArguments</key> <array> <string>/System/Library/CoreServices/Menu Extras/User.menu/Contents/Resources/CGSession</string> <string>-suspend</string> </array> <key>RunAtLoad</key> <true/> </dict> </plist
6. Création d’un build Xcode
Maintenant que l’agent de build est prêt, on va pouvoir créer un build Xcode et le lancer.
Pour créer un build, allez dans l’onglet « Build » d’un projet. Cliquez sur l’icône « + ».
Vous pouvez alors sélectionner « Xcode » dans la liste de template.
Vous pouvez maintenant paramétrer les étapes de builds.
La première étape, permet de lancer la compilation d’un projet Xcode. Les étapes suivantes servent aux tests et à la publication des fichiers comme sur tout autre Build. On va uniquement s’intéresser à cette 1ère étape.
Sur cette étape Xcode, il faut indiquer le fichier P12 à utiliser et son mot de passe. Pour ne pas mettre le mot de passe en clair dans le champ prévu à cet effet, on va créer une variable.
Pour cela, allez dans l’onglet « Variables » du build et ajoutez une nouvelle variable. Sur celle-ci, cliquez sur le cadenas en bout de ligne qui permet de masquer le mot de passe. Personne ne pourra récupérer le texte saisi dans le champ.
On va par exemple, nommer cette variable P12_PWD.
Ensuite, revenez sur l’étape Xcode Build, et ajoutez la variable dans le champ « P12 Password ». La syntaxe est la suivante : $(P12_PWD)
Une fois que cette étape est complètement paramétrée, vous pouvez lancer le build pour vérifier le bon fonctionnement.
0 commentaires