Jenkins Artifactory 插件

杜松子酒

Jenkins Artifactory 插件可以运行 docker-in-docker 吗?我想在下面提供的管道构建中将此插件与 Jenkins Kubernetes 插件一起使用

示例管道创建了一个 Pod,它首先使用一个git容器来克隆给定的project-examples存储库,然后使用一个maven容器来构建项目。

我怀疑我遇到了这个问题,只是想仔细检查一下是否仍然如此。执行时,Artifactory 插件会在 Pod 而不是maven容器中搜索资源,例如 MAVEN_HOME 无法找到插件失败的资源。

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()
    }
}
tlund56

我遇到了同样的问题,并在配置与 maven 安装的连接方面尝试了各种变体。

似乎在获取我在 docker 映像中的 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之前

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章