Question

Dites que vous développez du code devant être compilé et exécuté sur plusieurs hôtes (par exemple, Linux et Windows), comment le feriez-vous de la manière la plus efficace possible, étant donné que:

  • Vous avez un accès complet au matériel de chaque hôte que vous compilez (dans mon cas, un hôte Linux et un hôte Windows debout sur mon bureau)
  • Construire sur un lecteur réseau est trop coûteux
  • Aucun engagement dans un référentiel central ne devrait être requis - supposons qu'il existe un moteur de configuration qui essaie de créer dès que tout est vérifié dans

" Efficace " signifie que le cycle compilation-édition-exécution est aussi bref et simple que possible.

Était-ce utile?

La solution

La plupart des serveurs de compilation mentionnés dans les autres réponses extraient vos modifications d'un système de contrôle de version. Étant donné que votre "Aucun engagement dans un référentiel central devrait être requis", nous vous conseillons d'essayer Jetbrains TeamCity serveur CI.

Il existe des plugins pour Visual Studio et Eclipse et vous permet de demander un & génération privée " ;, envoyer vos modifications directement au serveur de compilation. Pour chaque projet, vous pouvez définir un certain nombre de configurations de construction avec différentes exigences (le système d'exploitation est l'un des besoins possibles). Si les builds réussissent, le plugin vous invitera à valider vos modifications.

La version gratuite prend en charge 3 agents et vous pouvez en acheter davantage si nécessaire.

Il semblerait que Pulse dispose également de la même fonctionnalité , mais je n'ai aucune expérience de première main avec elle.

Autres conseils

La meilleure chose que je puisse recommander est un projet multi-plateforme génial appelé "BuildBot".

BuildBot peut automatiquement provoquer une construction sur chaque plate-forme prise en charge, chaque fois que vous enregistrez une nouvelle révision dans votre système de contrôle de source. Construisez-le sur OSX, Linux (Ubuntu), Linux (Debian), Linux (Redhat), Vista, Windows XP, etc., et envoyez des courriels ou ce que vous préférez en cas d'échec de la construction.

Dans le cadre du processus de construction, vous pouvez publier des fichiers binaires si les tests réussissent. Utile pour les constructions «nocturnes» ou «à la pointe du progrès».

Voici quelques URL:

Nous constatons que Hudson est un excellent serveur de CI qui peut effectuer des constructions à partir du contrôle de code source si nécessaire. Comme il est écrit en Java, il peut être exécuté sur la plate-forme cible de votre choix et, comme l'interface est basée sur le Web, vous pouvez le contrôler où que vous soyez. Il existe des plugins pour faire la plupart des choses que vous voulez faire et le meilleur de tout est gratuit!

Choisissez une machine comme boîte de développement.

Configurez l’autre pour qu’il se mette à jour automatiquement à partir de votre contrôle de source (toutes les heures, tous les jours ou peu importe). Tout échec de construction / test doit vous envoyer une sorte de message d’avertissement. (email, im, peu importe). Votre boîte non-dev est toujours en train de construire localement car elle possède sa propre copie de l’arbre.

Avant de faire une vraie version, vous voulez toujours faire des tests humains, bien sûr. Mais cela garde la vie saine le reste du temps.

Utilisez http://ccache.samba.org pour accélérer les compilations dans les cas où seuls quelques fichiers ont été modifiés. dans un projet plus grand,

et lorsque des modifications importantes ont été apportées, exploitez http://fr.opensuse.org/Icecream simultanément pour la compilation distribuée partagée.

Cela devrait probablement accélérer votre cycle de compilation-édition de manière significative.

Puisque vous utilisez CI, je suppose que vous avez déjà configuré correctement un processus de construction. Ce que nous faisons, c'est que nous utilisons Windows Box en tant que machines de développement et que CI est exécuté sous Solaris. Cela garantit que le code est bien compilé sur plusieurs plates-formes. Le code est en Java et nous n'utilisons aucune bibliothèque native, il est donc parfaitement garanti que le code fonctionnera. Nous utilisons Bamboo au travail - c’est génial mais pas gratuit :-)

Pour mes projets privés, j'utilise Continuum, mais le Husdon a l'air soigné (je vais essayer) - merci Peter.

Construire une configuration simple pour une telle tâche est très simple.
Je suggérerai Cygwin d'être utilisé sur la plate-forme Windows. De cette façon, vous pouvez écrire des logiciels / scripts entièrement portables pour les plates-formes Linux et Windows. Vous ne savez pas à quelle étape du projet vous êtes, mais si vous commencez seulement, je vous suggérerai d'utiliser make pour construire votre logiciel. Vous pouvez utiliser cron pour programmer la fréquence de votre cercle de contrôle / construction. Vous pouvez même envoyer un courrier électronique avec un journal de construction s'il est endommagé.
Il existe un certain nombre de tests de construction quotidiens prêts à la fois commerciaux et à code source ouvert que vous pouvez rechercher sur Google ou quelqu'un peut ajouter des suggestions ici.
Nous utilisons des outils maison pour cette tâche, donc je ne peux rien suggérer de prêt.

Ok, j’ai manqué le point que vous ne voulez pas utiliser le système de contrôle de source (ce qui est étrange, mais vous êtes le patron :)). Dans ce cas, il suffit de remplacer la vérification par rsync, tout le reste restant similaire.

Une des options serait Cascade , ce qui vous permet de tester vos modifications sur toutes vos plateformes avant au lieu d’après, commettez, par "checkpointing". les sur le serveur.

Un mot: La croisière (pas de régulateur de vitesse) est très agréable.

Vous pouvez obtenir deux agents gratuitement et un agent par plate-forme. Cela prend littéralement quelques minutes pour installer sur mac et pc, et ce n’est pas si mal sur linux.

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