在jenkins管道脚本中获取gradle变量

我正在尝试使用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
    }
}
Pom12

我认为您实际上有两种不同的方法来解决此问题:

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

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

获取上游环境变量-Jenkins脚本化管道

来自分类Dev

将jenkins管道中设置的变量传递到shell脚本

来自分类Dev

如何从Jenkins管道脚本中的标签获取节点名称

来自分类Dev

在 Jenkins 脚本化管道中,从非管道直接触发的作业中获取结果

来自分类Dev

Jenkins脚本化管道:无法在Shell中打印变量并在Shell中设置变量值

来自分类Dev

从 python 脚本中获取 Jenkins BUILD 环境变量

来自分类Dev

Jenkins管道:如何从vars dir中的Groovy脚本访问自定义全局变量?

来自分类Dev

Shell脚本中的Jenkins管道环境变量创建一个新行

来自分类Dev

jenkins管道脚本中的重复变更日志

来自分类Dev

Jenkins脚本化管道中的等效选择

来自分类Dev

在Jenkins脚本化管道中通过动态键获取env属性

来自分类Dev

可以将Powershell脚本添加到发布管道中,以从密钥库中获取变量

来自分类Dev

将环境变量传递给jenkins管道bash脚本

来自分类Dev

从PHP脚本中获取变量

来自分类Dev

Shell脚本中的输入变量和管道变量冲突

来自分类Dev

带有SVN的jenkins管道脚本中的重复变更日志

来自分类Dev

在Jenkins脚本化管道中编写Yaml文件

来自分类Dev

为什么这个简单的Groovy脚本在Jenkins管道中失败?

来自分类Dev

如何在Jenkins脚本管道中设置PATH环境?

来自分类Dev

在jenkins声明式管道文件中重用groovy脚本

来自分类Dev

如何在UnitTest ++ 1.4中使用jenkins管道脚本

来自分类Dev

jenkins 管道脚本处理子目录中的模块

来自分类Dev

是否可以将变量从 Jenkins 管道作业脚本传播到加载的 jenkinsfile 脚本?

来自分类Dev

Jenkins:管道脚本-呼叫插件

来自分类Dev

Jenkins管道脚本错误-MultipleCompilationErrorsException

来自分类Dev

Jenkins变量不适用于管道中的sed命令

来自分类Dev

从 Jenkins 管道的 shell 中访问一个 groovy 变量

来自分类Dev

在脚本化管道中设置环境变量

来自分类Dev

在Jenkins管道中rtUpload之后获取工件URL

Related 相关文章

  1. 1

    获取上游环境变量-Jenkins脚本化管道

  2. 2

    将jenkins管道中设置的变量传递到shell脚本

  3. 3

    如何从Jenkins管道脚本中的标签获取节点名称

  4. 4

    在 Jenkins 脚本化管道中,从非管道直接触发的作业中获取结果

  5. 5

    Jenkins脚本化管道:无法在Shell中打印变量并在Shell中设置变量值

  6. 6

    从 python 脚本中获取 Jenkins BUILD 环境变量

  7. 7

    Jenkins管道:如何从vars dir中的Groovy脚本访问自定义全局变量?

  8. 8

    Shell脚本中的Jenkins管道环境变量创建一个新行

  9. 9

    jenkins管道脚本中的重复变更日志

  10. 10

    Jenkins脚本化管道中的等效选择

  11. 11

    在Jenkins脚本化管道中通过动态键获取env属性

  12. 12

    可以将Powershell脚本添加到发布管道中,以从密钥库中获取变量

  13. 13

    将环境变量传递给jenkins管道bash脚本

  14. 14

    从PHP脚本中获取变量

  15. 15

    Shell脚本中的输入变量和管道变量冲突

  16. 16

    带有SVN的jenkins管道脚本中的重复变更日志

  17. 17

    在Jenkins脚本化管道中编写Yaml文件

  18. 18

    为什么这个简单的Groovy脚本在Jenkins管道中失败?

  19. 19

    如何在Jenkins脚本管道中设置PATH环境?

  20. 20

    在jenkins声明式管道文件中重用groovy脚本

  21. 21

    如何在UnitTest ++ 1.4中使用jenkins管道脚本

  22. 22

    jenkins 管道脚本处理子目录中的模块

  23. 23

    是否可以将变量从 Jenkins 管道作业脚本传播到加载的 jenkinsfile 脚本?

  24. 24

    Jenkins:管道脚本-呼叫插件

  25. 25

    Jenkins管道脚本错误-MultipleCompilationErrorsException

  26. 26

    Jenkins变量不适用于管道中的sed命令

  27. 27

    从 Jenkins 管道的 shell 中访问一个 groovy 变量

  28. 28

    在脚本化管道中设置环境变量

  29. 29

    在Jenkins管道中rtUpload之后获取工件URL

热门标签

归档