Kontinuierliche Integration (mit iOS- und Android-Projekten) [geschlossen]


10

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.

  1. Dein Gedanke an Jenkins?
  2. Gibt es eine Möglichkeit für CI, zu überprüfen, ob das Projekt den
    Codierungsstandards entspricht (z. B. lose Kopplung usw.)?

3
"Jenkins und Hudson sind die beiden" ... hmm, wissen Sie, dass Jenkins der neue Name für den Hudson ist ?
Mücke

1
Das wusste ich wirklich nicht! Wie gesagt, ich bin wirklich neu bei CI und habe keine Erfahrung. Soooo .. J & H das Gleiche ..
Vermutlich schränkt

Es gibt auch Team City, Cruise Control und andere.
Kyle Hodgson

@gnat: Nun, ich denke Jenkins ist eine Gabelung von Hudson. Ich denke, Hudson ist immer noch da draußen: hudson-ci.org wird von Oracle verwaltet. Jenkins ist eine sehr gute Gabel, die für die meisten Menschen migriert ist. Entschuldigung, wenn ich falsch
liege

Antworten:


9

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

Gibt es eine Möglichkeit für CI, zu überprüfen, ob das Projekt den Codierungsstandards entspricht (z. B. lose Kopplung usw.)?

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.


Ich habe TeamCity ziemlich erfolgreich als CI-Server für iOS verwendet. Ich würde mir vorstellen, dass es ein Kinderspiel ist, es für Android zu verwenden
Sylvanaar

5

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.


Ist es möglich, TeamCity auf einem Linux-Server zu installieren und dann iOS-Projekte zu bearbeiten?
Paxx

1
TeamCity spielt keine Rolle, es ist der Build Agent. Und für iOS müssen Sie auf einem Mac bereitstellen. Nur es hat die Toolchain. Sie können wahrscheinlich einige Dinge mit GNUStep tun, aber mein Verdacht ist, dass Sie eine ziemlich frustrierende Zeit mit etwas nicht Trivialem haben würden.
Wyatt Barnett

2

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.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.