2016-03-18 9 views
1

В работе jenkins я использую плагин gradle-artifactory для публикации артефакта по определенному пути (который упоминается в build.gradle проекта git) в Artifactory.
Я хотел иметь работу Jenkins через job-dsl. Каким будет код/​​блок job-dsl для конфигурации плагинов gradle-artifactory?
Я попытался использовать класс ArtifactoryGradleConfigurator, но он не сработал.Есть ли jenkins job-dsl block/code для определения конфигурации плагина Gradle-Artifactory?

ответ

1

Плагин 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 - отличный инструмент, который поможет вам в этом.

+0

Спасибо! Я понял, что я пропустил, так как я делаю это в новой коробке для дженкинсов. Я забыл установить плагин gradle. Я знаю, это глупо! Как только я его установил, хорошо узнать имя и URL-адрес артефактов. Но он не смог распознать имена репозиториев, пока я не нажму кнопку «Обновить». Тогда это помогло. https://issues.jenkins-ci.org/browse/JENKINS-26997. – phoenix

0

Хорошая вещь о плагине Jenkins Artifactory для Gradle заключается в том, что все, что она делает, это применение Gradle Artifactory plugin (что, конечно же, весь код - Gradle DSL). Поэтому вместо применения плагина из пользовательского интерфейса Jenkins вы можете применить его непосредственно в Gradle, в коде.