Im Job jenkins benutze ich das Plugin gradle-artefactory, um das Artefakt in Artifactory auf einen bestimmten Pfad (der in build.gradle des Git-Projekts erwähnt wird) zu veröffentlichen.
Ich wollte meine Jenkins Jobs durch Job-dsl haben. Was wäre der job-dsl code/block für die Konfiguration von gradelfactory-plugins?
Ich habe versucht, ArtifactoryGradleConfigurator
Klasse zu verwenden, aber es hat nicht funktioniert.Gibt es einen jenkins job-dsl-Block/Code zum Definieren der Gradle-Artefactory-Plugin-Konfiguration?
Gibt es einen jenkins job-dsl-Block/Code zum Definieren der Gradle-Artefactory-Plugin-Konfiguration?
Antwort
Das Artefakt-Plugin wurde noch nicht vom Job dsl unterstützt. Was Sie tun müssen, ist die Erstellung der entsprechenden XML-Konfiguration über die configure block. Hier ist ein Beispiel für Sie, wo Sie anfangen können:
job('artifactory-config') {
configure {
it/buildWrappers/'org.jfrog.hudson.gradle.ArtifactoryGradleConfigurator' {
deployMaven 'false'
deployIvy 'false'
deployBuildInfo 'true'
includeEnvVars 'false'
deployerCredentialsConfig {
credentialsId 'foobar'
overridingCredentials 'false'
}
}
}
}
Die tatsächliche Konfiguration, die Sie tun müssen, ist ein bisschen umfangreicher. Schauen Sie sich einfach die config.xml Ihres Jobs an, dort finden Sie das XML-Tag für ArtifactoryGradleConfigurator
. Es wird wie folgt aussehen:
<project>
<buildWrappers>
<org.jfrog.hudson.gradle.ArtifactoryGradleConfigurator">
<deployMaven>false</deployMaven>
<deployIvy>false</deployIvy>
<deployBuildInfo>true</deployBuildInfo>
<includeEnvVars>false</includeEnvVars>
<deployerCredentialsConfig>
<credentials>
<username></username>
<password></password>
</credentials>
<credentialsId></credentialsId>
<overridingCredentials>false</overridingCredentials>
</deployerCredentialsConfig>
<resolverCredentialsConfig>
<credentials>
<username></username>
<password></password>
</credentials>
<credentialsId></credentialsId>
<overridingCredentials>false</overridingCredentials>
</resolverCredentialsConfig>
</org.jfrog.hudson.gradle.ArtifactoryGradleConfigurator>
</buildWrappers>
</project>
Eine wichtige Sache für Sie zu wissen ist, brauchen Sie nicht den ganzen Block zu konfigurieren. Wenn Sie jedoch ein wichtiges XML-Tag verpassen, wird der Job generiert, die Konfiguration wird jedoch nicht in der Benutzeroberfläche angezeigt. Versuchen Sie einfach, das XML 1: 1 zu generieren. Die Jenkins Job DSL Playground ist ein nettes Werkzeug, um Ihnen dabei zu helfen.
Schöne Sache über das Jenkins Artifactory-Plugin für Gradle ist, dass alles, was es tut Gradle Artifactory plugin anwenden (das ist natürlich, alle Code - Gradle DSL). Anstatt also das Plugin von der Jenkins-Benutzeroberfläche aus anzuwenden, können Sie es direkt in Gradle im Code anwenden.
Danke! Ich habe herausgefunden, was ich vermisst habe, da ich dies auf der neuen Jenkins Box mache. Ich vergesse, das Gradle Plugin zu installieren. Ich weiß, das ist dumm! Sobald ich es installiert habe, ist es gut, Artefaktnamen und URL zu erkennen. Es war jedoch nicht möglich, Repository-Namen zu erkennen, bis ich auf die Schaltfläche zum Aktualisieren klicke. Dann hat diese Sache geholfen. https://issues.jenkins-ci.org/browse/JENKINS-26997. – phoenix