В работе jenkins я использую плагин gradle-artifactory для публикации артефакта по определенному пути (который упоминается в build.gradle проекта git) в Artifactory.
Я хотел иметь работу Jenkins через job-dsl. Каким будет код/блок job-dsl для конфигурации плагинов gradle-artifactory?
Я попытался использовать класс ArtifactoryGradleConfigurator
, но он не сработал.Есть ли jenkins job-dsl block/code для определения конфигурации плагина Gradle-Artifactory?
ответ
Плагин artifactory еще не поддерживается службой dsl. Что вам нужно сделать, так это создать соответствующую конфигурацию XML через configure block. Вот вам пример, где вы можете начать:
job('artifactory-config') {
configure {
it/buildWrappers/'org.jfrog.hudson.gradle.ArtifactoryGradleConfigurator' {
deployMaven 'false'
deployIvy 'false'
deployBuildInfo 'true'
includeEnvVars 'false'
deployerCredentialsConfig {
credentialsId 'foobar'
overridingCredentials 'false'
}
}
}
}
Фактическая конфигурация, которую вам нужно сделать, является более обширной. Просто посмотрите на config.xml вашей работы, там вы найдете тег XML для ArtifactoryGradleConfigurator
. Он будет выглядеть следующим образом:
<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>
Одна важная вещь для вас, чтобы знать, вам не нужно настроить весь блок. Но когда вы пропустите какой-либо важный тег XML, задание будет создано, но вы не увидите конфигурацию в пользовательском интерфейсе. Просто попробуйте получить XML, который будет создан 1: 1. Jenkins Job DSL Playground - отличный инструмент, который поможет вам в этом.
Хорошая вещь о плагине Jenkins Artifactory для Gradle заключается в том, что все, что она делает, это применение Gradle Artifactory plugin (что, конечно же, весь код - Gradle DSL). Поэтому вместо применения плагина из пользовательского интерфейса Jenkins вы можете применить его непосредственно в Gradle, в коде.
Спасибо! Я понял, что я пропустил, так как я делаю это в новой коробке для дженкинсов. Я забыл установить плагин gradle. Я знаю, это глупо! Как только я его установил, хорошо узнать имя и URL-адрес артефактов. Но он не смог распознать имена репозиториев, пока я не нажму кнопку «Обновить». Тогда это помогло. https://issues.jenkins-ci.org/browse/JENKINS-26997. – phoenix