一尘不染

在詹金斯管道脚本中获取gradle变量

jenkins

我正在尝试使用groovy构建脚本将构建管道迁移到“ Pipeline插件”。

我的管道通常是:

  1. 测试(等级)
  2. IntegrationTest(等级)
  3. 构建(渐变)
  4. 发布(人工工厂)

我想在我的jenkins构建脚本中使用gradle变量,例如version /
group等,以发布到工件中的正确文件夹。过去,人工插件会为我解决。如何做到这一点?

对于单个gradle项目,我使用如下代码:

node('master')
{
    def version = 1.0
    def gitUrl = 'some.git'
    def projectRoot = ""
    def group = "dashboard/frontend/"
    def artifactName = "dashboard_ui"
    def artifactRepo = "ext-release-local"

    stage "git"

    git branch: 'develop', poll: true, url: "${gitUrl}"

    dir(projectRoot)
    {

        sh 'chmod +x gradlew'
        stage "test"
        sh './gradlew clean test'

        stage "build"
        sh './gradlew build createPom'

        stage "artifact"
        def server = Artifactory.server('artifactory_dev01')
        def uploadSpec = """{
          "files": [
            {
              "pattern": "build/**.jar",
              "target": "${artifactRepo}/$group/${artifactName}/${version}/${artifactName}-${version}.jar"
            },
            {
              "pattern": "pom.xml",
              "target": "${artifactRepo}/$group/${artifactName}/${version}/${artifactName}.pom"
            }
         ]
        }"""
        def buildInfo1 = server.upload spec: uploadSpec
        server.publishBuildInfo buildInfo1
    }
}

阅读 234

收藏
2020-07-25

共1个答案

一尘不染

我认为您实际上有两种方法可以解决此问题:

1.从sh脚本获取版本/组

找到一种从gradle构建工具获取Gradle版本的方法(例如gradle getVersion(),但我不熟悉Gradle),然后使用Shell脚本获取此版本。如果Gradle命令获取的版本是gradle getVersion(),则可以在管道中执行以下操作:

def projectVersion = sh script: "gradle getVersion()", returnStdout: true
def projectGroup= sh script: "gradle getGroup()", returnStdout: true

然后将您的$projectVersion$projectGroup变量注入当前的管道中。

2.配置您的Gradle构建脚本以发布到Artifactory

这是相反的方法,我个人更喜欢:不给Artifactory您所有的Gradle项目信息,而是给Gradle您的Artifactory设置并使用Gradle目标轻松发布到Artifactory。

JFrog在“使用Gradle”部分中提供了有关此解决方案的出色文档。基本上,您将遵循以下步骤:

  1. 从Artifactory生成兼容的Gradle构建脚本,Gradle Build Script Generator并将其包含在项目构建脚本中
  2. 使用Gradle目标gradle artifactoryPublish可以简单地将当前工件发布到Artifactory
2020-07-25