Jenkins und Android Build

8

Ich versuche den Android-Build-Prozess mit Jenkins zu automatisieren

Ich verwende die folgende Website, um dies zu erreichen Link zur Website

Ich kann es erfolgreich auf meinem eigenen Rechner erstellen. Anfangs habe ich einen Fehler bekommen, der besagt, dass die Datei build.xml nicht gefunden wurde (Build benötigt diese Datei). Also führe ich "android update project" aus. So erzeugt es automatisch alle notwendigen Dateien für ant.

Jetzt beginnt mein Problem, als ich versucht habe, meinen Repo auf den Remote-Server zu hosten und von einem anderen Rechner aus zu bauen. Der Fehler, den es gibt, ist der sdk.dir ist nicht korrekt. Wenn ich den Projektordner analysierte, gibt es eine Datei namens local.properties, die den SDK-Pfad meiner ersten Maschine enthält, der für andere Maschinen falsch ist. Also füge ich diese Datei zu Gitignore hinzu. Jetzt, da diese Datei nicht verfolgt wird, schlägt der Build fehl.

Gibt es also eine Möglichkeit, automatisch die Dateien zu generieren, die für ant benötigt werden, nachdem jenkins das Projekt aus dem Remote-Repository geklont hat?

    
Hashim MH 12.02.2013, 11:12
quelle

6 Antworten

3

Auf der Website, auf die Sie verlinken, wird genau erklärt, wie sdk.dir konfiguriert wird:

  

Konfigurieren der Umgebung

     

Wenn jenkins Ihr Projekt mit Ant erstellt, muss es wissen, wo Sie es haben   Android SDK-Ordner ist. Klicken Sie dazu auf dem Ant-Ziel auf Erweitert   Build-Schritt, den Sie gerade konfiguriert haben, und fügen Sie die folgende Variable hinzu   Eigenschaftenfeld sdk.dir = / opt / android-sdk-linux /

     

Vergessen Sie nicht, den Wert der Variablen durch den richtigen zu ersetzen   Speicherort, an dem das Android SDK auf dem Build-Server installiert ist.

     

Die Jobkonfiguration ist abgeschlossen. Klicken Sie auf Speichern. Zeit, um deinen Build zu testen.

    
etienne 12.02.2013 11:17
quelle
2

Wir bauen auch Android-Apps mit Jenkins und müssen auch die local.properties bearbeiten.

In meinem Fall habe ich die Datei mit dem Pfad zum SDK vom Jenkins-Build selbst aktualisiert. Kurz bevor der Build gestartet wird.

Sie können einen einfachen sed-Befehl unter Linux verwenden oder den Inhalt in Windows echotieren (Inhalte überschreiben).

Beispielfluss:

  1. SCM - Erhalte Quellen
  2. Bearbeiten Sie die local.properties (wie zuvor vorgeschlagen)
  3. Run ant build

Hinweis - Wenn Sie "Invoke Ant" verwenden, sollten Sie einen Schritt "Shell ausführen" hinzufügen, bevor Sie mit der Bearbeitung der local.properties beginnen.

Ich hoffe, das hilft.

    
Eldad AK 12.02.2013 11:17
quelle
1

Ja.

Wenn Sie das Android Emulator Plugin für Jenkins installieren, können Sie das " Erstelle Android-Build-Dateien "Build Schritt zu Ihrem Job.

Dadurch werden Android-App-, Test- oder Bibliotheksprojekte in Ihrem Jenkins-Arbeitsbereich automatisch erkannt und die Dateien build.xml und local.properties je nach Bedarf hinzugefügt / aktualisiert.

Wenn Sie den Buildschritt Ant verwenden und die Datei build.xml bereits in Ihrem Repository gespeichert haben, können Sie die Notwendigkeit, eine Datei local.properties zu erstellen, ignorieren, indem Sie in der erweiterten Ant die Eigenschaft sdk.dir selbst angeben Optionen.

    
Christopher Orr 12.02.2013 11:17
quelle
1

Sie können ant-Eigenschaften in jenkins konfigurieren. Sie können also alle Eigenschaften Ihres local.properties über die jenkins-Jobkonfiguration angeben.

Natürlich müssen Sie den Android SDK auf dem Jenkins Build Server installieren.

Bitte lesen Sie dies für Informationen zur Einstellung von ant Eigenschaften mit Jenkins.

Es ist keine gute Methode, die local.properties unter die Quellcodeverwaltung zu stellen, da mehrere Entwickler und CI für diese Eigenschaften unterschiedliche Werte haben.

    
ben75 12.02.2013 11:18
quelle
0

Sie können die Datei local.properties im jenkins-Arbeitsbereich auf den korrekten sdk-Pfad

bearbeiten     
Febin P 12.02.2013 11:17
quelle
0

Ich denke, Sie möchten den Build-Schritt "Create Android build files" zu Ihrer Konfiguration hinzufügen. Platziere es vor dem Ameisenbau. Dies ruft die android update project und android update lib-project auf. Stellen Sie sicher, dass Sie auf Ihre Bibliotheksabhängigkeiten in der project.properties mit relativen Pfaden verwiesen haben. So:

%Vor%

    
No3x 23.03.2014 19:47
quelle

Tags und Links