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?
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.
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:
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.
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.
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.
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: