Jenkins Artifactory Plugin - PullRequest
       13

Jenkins Artifactory Plugin

0 голосов
/ 14 мая 2018

Может ли Jenkins Artifactory plugin запустить Docker-in-Docker?Я хотел бы использовать этот плагин в тандеме с плагином Jenkins Kubernetes в сборке конвейера, представленной ниже.

В примере конвейера создается Pod, который сначала использует контейнер git для клонирования заданногоproject-examples хранилище, а затем использует maven контейнер для сборки проекта.

Я подозреваю, что столкнулся с этой проблемой и просто хотел перепроверить, все ли еще так.При запуске плагин Artifactory ищет ресурсы, например MAVEN_HOME, в модуле Pod вместо контейнера maven.Не удается найти ресурсы, плагин не работает.

def label = "worker-${UUID.randomUUID().toString()}"

podTemplate(label: label, containers: [
  containerTemplate(name: 'maven', image: 'maven:3.3.9-jdk-8-alpine', ttyEnabled: true, command: 'cat'),
  containerTemplate(name: 'git', image: 'alpine/git', command: 'cat', ttyEnabled: true)
]) {
  node(label) {

container('maven') {
    def server
    def buildInfo
    def rtMaven


    stage ('Clone') {
        git url: 'https://github.com/jfrogdev/project-examples.git'
    }

    stage ('Test a Maven project') {           
            server = Artifactory.server 'private-artifactory'
            rtMaven = Artifactory.newMavenBuild()
            rtMaven.tool = 'maven'
            rtMaven.run pom: 'maven-example/pom.xml', goals: 'clean build', buildInfo: buildInfo
            buildInfo = Artifactory.newBuildInfo()
    }
}

1 Ответ

0 голосов
/ 02 июля 2018

У меня была та же проблема, и я пробовал различные варианты настройки соединения с установкой maven.

Окончательная конфигурация, которая, кажется, работает при выборе установки maven, которую я имею в моем докереИзображение выглядит следующим образом:

stage("build") {
   def server=Artifactory.server('My art')
   def rtMaven=Artifactory.newMavenBuild()
   rtMaven.resolver server: server, releaseRepo: 'libs-release', snapshotRepo: 'libs-snapshot'
   rtMaven.deployer server: server, releaseRepo: 'libs-release-local', snapshotRepo: 'libs-snapshot-local'
   env.MAVEN_HOME="/usr/share/maven"
   def buildInfo = rtMaven.run pom: 'sub-dir/pom.xml', goals: 'clean install'
   server.publishBuildInfo buildInfo         
}

Использование env.MAVEN_HOME вместо того, чтобы полагаться на конфигурацию инструмента, похоже, работает.Помните, чтобы разместить его до rtMave.run .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...