Question

J'essaie de configurer un bot Xcode avec OSX Server. Après avoir configuré le référentiel GIT et créer un bot, je suis d'exécuter intégrer. Il échoue car le référentiel est uniquement vérifié partiellement. Plus précisément: des 6 sous-modules configurés, seuls 3 sont initialisés et vérifiés.

didi@mac:/Library/Server/Xcode/Data/BotRuns/Cache/c5fda8f4-4d25-4d25-c18a-eb0b16a06692/source$ git submodule status
+c6e8420aec4147641fb1ca12d9f1d31bdd804e77 libs/asi-http-request (v1.7-320-gc6e8420)
-ae64a38766b42f236bb94f0e661cddb829f9ac43 libs/kraken
-7da02b323636bbaa0bbbf5b4eb229fcc07b1e14a libs/route-me
 152f9ee5576e710705a49032253d7d5af5366f9c libs/routing (152f9ee)
 347aaf74fe0c6388785095efdbf6397851514b7f libs/rtlabel (1.0-32-g347aaf7)
-562cf6b1c879f03546f5184e012cea15c4f159db libs/skmaps

(- signifie non initialisé)

En regardant le journal Bot, il semble simplement ignorer les sous-modules manquants dans la partie Initialize sous-module:

...
Checking connectivity... done
Submodule 'libs/asi-http-request' (https://github.com/BikeCityGuide/asi-http-request.git) registered for path 'libs/asi-http-request'
Submodule 'libs/routing' (ssh://mac_ci@rooty.bikecityguide.org/var/repos/librouting.git) registered for path 'libs/routing'
Submodule 'libs/rtlabel' (https://github.com/BikeCityGuide/RTLabel.git) registered for path 'libs/rtlabel'
Cloning into 'libs/asi-http-request'...
...

Pas de message d'erreur ici ou ailleurs. Pas de mention unique d'ex. "Kraken" (nom d'une sous-module manquante) n'importe où dans les journaux.

Lorsque vous vérifiez manuellement (clone, sous-module init, mise à jour sous-module), tous les sous-modules sont initialisés.

.gitmodules ressemble à ceci:

$ cat .gitmodules 
[submodule "libs/asi-http-request"]
    path = libs/asi-http-request
    url = https://github.com/BikeCityGuide/asi-http-request.git
[submodule "libs/rtlabel"]
    path = libs/rtlabel
    url = https://github.com/BikeCityGuide/RTLabel.git
[submodule "libs/routing"]
    path = libs/routing
    url = ../librouting.git
[submodule "libs/kraken"]
    path = libs/kraken
    url = ../kraken_ios.git
[submodule "libs/route-me"]
    path = libs/route-me
    url = ../route-me.git
[submodule "libs/skmaps"]
    path = libs/skmaps
    url = ../skmaps.git

Le référentiel de base et les 4 référentiels de sous-module référencés avec une URL relative ont tous besoin d'une authentification SSH. L'utilisateur configuré dans OSX Server a accès à tous. Le journal du bot ne contient aucune trace d'essayer de tirer les sous-modules manquantes.

Je peux résoudre manuellement le référentiel local, mais je voudrais ne plus avoir le même problème avec de nouveaux projets et de nouveaux sous-modules ajoutés.

GIT Version 1.8.4.2

Je suis à court d'idées.

Était-ce utile?

La solution

sur Xcode 6.1.1 et OS X Server 4.0, on dirait qu'ils répètent les sous-modules avec une question de tête détachée, mais il y a encore des bugs.L'un de mon projet a ses sous-modules entièrement ignorés par Xcode Server afin que l'application ne parvienne à construire:

$ git submodule
 8a88bc41c9dc0f57c921d82bc4e7b93e1c4cbf7a InAppStore (heads/master)
 e4203f9f61d2546868c1274da5c7a0c56b87a737 Libraries (heads/master)  <--- IGNORED
 01902f255e6c3d90f0db41cb62dd2934098b98dd MixpanelTracker (heads/master)
 e2bee59accd817d50dff881a42c9e9afe307226f XLFacility (1.4.1-5-ge2bee59)

Le correctif pour moi était d'ajouter un déclencheur de script de pré-intégration comme tel:

cd "$XCS_SOURCE_DIR/{YOUR_APP_REPO_NAME_WITHOUT_DOT_GIT_SUFFIX}"
git submodule update --init --recursive

À ce stade, les choses construisaient bien que des avertissements non fatals ont été des avertissements non fatals sur la caisse n'étant pas propre ou quelque chose comme ça.Ils sont partis lorsque j'ai changé la configuration du bot pour avoir "nettoyage" réglé sur "Toujours".

Autres conseils

dans le serveur Xcode 9, les sous-modules ne sont pas initialisés si aucun des fichiers des sous-modules n'est référencé par l'un des projets Xcode dans l'espace de travail.

Cela peut arriver, par exemple, lorsque vous incluez un fichier d'en-tête d'une sous-module qui ne fait pas partie de votre code et que vous l'avez ajouté aux "chemins de recherche en-têtes" (C / C ++) au lieu de l'ajouter au projet.

Une solution de contournement possible consiste à ajouter au moins un fichier à partir du sous-module au projet Xcode.Il peut même être un fichier genévoodiceCode. Ceci est plus facile que de vérifier les sous-modules à l'aide d'un script personnalisé car il s'appuie sur Xcode Server pour stocker vos informations d'identification GIT.

est-ce que je comprends son bug. J'ai eu les mêmes problèmes et j'ai constaté qu'il existe un problème avec des sous-modules détachés. Voir le prochain article qui montrent comment résoudre ce problème (n'aide pas sur le référentiel public) http://ikennd.ac/blog/2013/10 / XCODE-BOTS-PROBLÈMES COMMUNIQUES - ET ENTRAÎNEMENTS /

J'espère que cela vous aide.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top