Integration continue “L'intégration continue est un ensemble de pratiques utilisées en génie logiciel consistant à vérifier à chaque modification de code source que le résultat des modifications ne produit pas de régression dans l'application développée.” (Wikipedia) Tuesday, 10 September, 13
Les besoins de TSC S’assurer que l’application compile sur un environnement “neutre” (“ça marche chez moi :(”) Faciliter l’accès aux builds de développement pour les testeurs et les clients Tuesday, 10 September, 13
Jenkins Lance les tests, build, deploie Opensource (MIT) Des millions de plugins dont un pour Xcode Gestion de “slave” Des bugs rigolos Tuesday, 10 September, 13
Jenkins Xcodebuild Fonctionne (c’est déjà ça) Quelques bugs (espaces dans les arguments...) Abstrait trop le processus... ... et en même temps pas assez (wat?) Tuesday, 10 September, 13
TSC Store Hébergement des builds de démo pour les clients Liste de toutes les applications pour les testeurs et les commerciaux Pas de testflight & co chez TSC : 100% homemade Tuesday, 10 September, 13
Oui, mais Pas de gestion du versionning des builds Timeout SSH Maintenance laborieuse j’étais un peu nul en bash mes collègues ne font pas de PHP Interface douteuse (Raw twitter bootstrap) iOS only Tuesday, 10 September, 13
Nouveaux besoins Se débarasser de Jenkins Xcodebuild Comment gérer le stockage et le versionning des builds ? Quelle technologie pour l’upload ? Stockage des applications Android Tuesday, 10 September, 13
Upload et stockage : nexus “Sonatype Nexus sets the standard for repository management providing development teams with the ability to proxy remote repositories and share software artifacts.” (http://www.sonatype.org/nexus/) Tuesday, 10 September, 13
Cherry on top : ant & maven because xcodebuild wasn’t verbose enough ant : formatter le script de build dans un format facile à comprendre et à maintenir maven : upload sur le nexus (mvn deploy:deploy-file) Tuesday, 10 September, 13
TSCStore v2 Application Spring MVC communiquant avec le Nexus via une API Supporte du coup plusieurs versions et plusieurs plateformes Accès protégé par notre LDAP + ACL Tuesday, 10 September, 13
Besoin bonus : qualité Besoin de surveiller la “qualité” du code Plugin sonar pour Objective-c très limité Utilisation de OCLint Tuesday, 10 September, 13
OCLint OCLint is a static code analysis tool for improving quality and reducing defects by inspecting C, C++ and Objective-C code and looking for potential problems (http://oclint.org/) Tuesday, 10 September, 13
OCLint Simple à installer Pas forcément simple à utiliser si on ne sait pas lire oclint-xcodebuild oclint-json-compilation-database Possibilité d’ajuster certains critères ⾠ Gourmand en mémoire (externals, Pods...) Tuesday, 10 September, 13