2017-01-23 11 views
1

Ich habe 2 jenkins Jobs, der erste Job veröffentlicht eine JAR-Datei in artefactory und fügt dem Artefakt eine Eigenschaft (Commit-ID) hinzu. Der zweite Job ruft immer die neueste Version von jar aus dem Artefakt ab, benötigt aber auch die Eigenschaft, die mit diesem Artefakt verknüpft ist. Wir verwenden Gradle für unsere Builds. Gibt es eine Möglichkeit, es ins Innere zu bringen oder haben wir eine andere Alternative?Wie man Artefakteigenschaften von Artefakten in Gradle-Build-Skripten liest

Edit: Die Jobs sind nicht Teil der Pipeline. Dies bedeutet, dass es sich um unabhängige Jobs handelt und der zweite Job bei einem anderen Repository-Wechsel ausgelöst wird.

Antwort

0

Der erste jenkins-Job löst den zweiten parametrisierten Build aus.

Der zweite Build kann eine von zwei Möglichkeiten mit der Invoke Gradle script oder über die Befehlszeile auslösen. Wenn Sie die Invoke Gradle script Funktion verwenden, dann würden Sie Pass job parameters as Gradle properties überprüfen. Dann werden zwei Parameter für den Build unter der Annahme genannt commitId Sie dies in Ihrem Code wie dieser

if (project.properties.containsKey('commitId')) { 
    println "do something with commitId: ${project.properties.get('commitId')}" 
} 

verweisen könnte, wenn Ihr nur ein Kommandozeilen-Skript verwenden, dann können Sie Eigenschaften passieren wie diese

./gradlew clean build -PcommitId=${commitId}

In beiden Fällen build.gradle ist das gleiche

+0

Danke für Ihre Antwort. Ich habe meiner Antwort eine Bearbeitung hinzugefügt. Meine 2 Jobs sind unabhängige Jobs und ich möchte nicht jedes Mal den zweiten Job auslösen, wenn mein erster Job ausgeführt wird und umgekehrt. – Sujji

0

Sie können die Artifactory client (Java) verwenden, um die Artefakteigenschaften zu erhalten.
Zum Beispiel:

Artifactory artifactory = ArtifactoryClient.create("http://localhost:8081/artifactory", "username", "password"); 
ItemHandle item = artifactory.repository("RepoName").file("path/to/file.jar"); 
List<String> values = item.getPropertyValues("commitId"); 

Weitere Informationen über die Kunden sehen ihre GitHub page.