Ich versuche, einige positive Änderungen in meinem Unternehmen vorzunehmen, und eine der Änderungen ist die Implementierung einer kontinuierlichen Integration. Wir machen mobile Entwicklung (iOS / Android), daher brauche ich ein CI, das beide Arten von Projekten unterstützt. Wie Sie sehen, weiß ich nicht viel über CI, aber ich habe ein bisschen gegoogelt und ich denke, dass Jenkins und Hudson die beiden beliebtesten sind.
Ich habe zweiteilige Fragen.
- Dein Gedanke an Jenkins?
- Gibt es eine Möglichkeit für CI, zu überprüfen, ob das Projekt den
Codierungsstandards entspricht (z. B. lose Kopplung usw.)?
Antworten:
Zunächst möchten Sie vielleicht TeamCity als eine weitere Option für Ihren Server betrachten.
Meiner Ansicht nach (obwohl ich mit Jenkins etwas weniger Erfahrung als mit TeamCity habe) sind beide ausgezeichnete und sehr leistungsfähige Tools - ich würde mich in einer Umgebung freuen, in der beide verwendet werden.
Ok, um zum Fleisch des Problems zu kommen, dh
Auf der grundlegendsten Ebene führt ein CI-Server lediglich ein Skript aus und interpretiert und präsentiert dann die Ergebnisse der Ausführung dieses Skripts. Wenn Sie es also skripten können, kann Ihr CI-Server es wahrscheinlich ausführen und wenn Sie die Ausgabe entsprechend formatieren können Der CI-Server kann das Ergebnis wahrscheinlich interpretieren und darüber berichten.
Natürlich sind die großen Build-Server bereits in der Lage, mit vielen gängigen Tools zu kommunizieren / diese zu integrieren. Es stellt sich also die Frage, mit welchen Tools Sie Ihre Codierungsstandards überprüfen und ob dies in den CI-Server Ihrer Wahl integriert ist.
Ja, der CI-Server bringt in Bezug auf die Automatisierung viel mehr ins Spiel, als nur ein Skript sinnlos auszuführen - aber letztendlich ist es das, was er tut.
Um ganz klar zu sein: Ich weiß, dass ein Build-Server mehr als nur Skripte ausführt. Es ist die Automatisierung des Prozesses (und insbesondere die Integration in (D) VCS), die einen Mehrwert bietet - aber bei der Beantwortung der Frage, was ich brauche a build server "frage die antwort ist" ein server und ein script "alles andere fließt von dort ab.
quelle
Ich stimme der TeamCity-Empfehlung zu - es ist ein großartiges Produkt. Ich kann nicht mit Android sprechen, da ich dort keine Sitzplatzzeit habe, aber ich habe dank zweier Artikel ( 1 2 ) erfolgreich iOS-Projekte in CI ausgeführt .
Die schwierigsten Teile hatten wirklich damit zu tun, dass der Mac den automatisierten Build mit dem richtigen Schlüsselbund ausführte, sodass Sie eine signierte App erstellen konnten, die Sie auf einem iDevice anstelle einer Nur-Emulator-Option bereitstellen konnten.
quelle
Ich habe den Build-Server und die Skripte unseres Unternehmens eingerichtet, bevor ich Jenkins verwende, wo wir iOS-Apps entwickeln. Wie viele sagten, ist der CI-Server ziemlich einfach und ich mag Jenkins, weil er frei / Open Source ist und viele Plugins wie das Veröffentlichen von Berichterstattungsberichten oder die Github-Integration enthält.
quelle