【问题标题】:Auto generate build pipeline for gradle build using Jenkinsfile使用 Jenkinsfile 为 gradle 构建自动生成构建管道
【发布时间】:2016-06-15 16:05:43
【问题描述】:


我正在尝试基于 Gradle 任务创建构建管道。我查看了 JenkinsFile 配置Pipeline-as-code-demo,但我无法为 gradle 任务创建管道。请建议我一种可能的方法,以便我可以使用 Jenkinsfile 自动显示构建管道,只需从 Jenkinsfile 读取配置即可。
谢谢你

【问题讨论】:

    标签: jenkins gradle continuous-integration


    【解决方案1】:

    如果您的项目使用Gradle Wrapper,您可以在Jenkinsfile 中使用以下sn-p:

    stage('Gradle Build') {
        if (isUnix()) {
            sh './gradlew clean build'
        } else {
            bat 'gradlew.bat clean build'
        }
    }
    

    如果您结帐到子目录sub-dir,您可能想要使用

    stage('Gradle Build') {
        if (isUnix()) {
            dir('sub-dir') {sh './gradlew clean build'}
        } else {
            dir('sub-dir') {bat 'gradlew.bat clean build'}
        }
    }
    

    【讨论】:

      【解决方案2】:

      如果您使用 Artifactory 解决构建依赖项或部署构建工件,建议使用管道 DSL for Gradle build with Artifactory

      以下是来自Jenkins Pipeline Examples 页面的示例:

      node {
          // Get Artifactory server instance, defined in the Artifactory Plugin administration page.
          def server = Artifactory.server "SERVER_ID"
          // Create an Artifactory Gradle instance.
          def rtGradle = Artifactory.newGradleBuild()
      
          stage 'Clone sources'
              git url: 'https://github.com/jfrogdev/project-examples.git'
      
          stage 'Artifactory configuration'
              // Tool name from Jenkins configuration
              rtGradle.tool = "Gradle-2.4"
              // Set Artifactory repositories for dependencies resolution and artifacts deployment.
              rtGradle.deployer repo:'ext-release-local', server: server
              rtGradle.resolver repo:'remote-repos', server: server
      
          stage 'Gradle build'
              def buildInfo = rtGradle.run rootDir: "gradle-examples/4/gradle-example-ci-server/", buildFile: 'build.gradle', tasks: 'clean artifactoryPublish'
      
          stage 'Publish build info'
              server.publishBuildInfo buildInfo
      }
      

      否则,您可以简单地使用 shbat 管道步骤运行 gradle 命令。

      【讨论】:

        【解决方案3】:

        在 jenkins 中,您可以使用 Jenkinsfile 中编写的脚本创建 jenkins 管道。

        我们使用“阶段”和“节点”作为构建块编写脚本,这些构建块允许您指定应作为詹金斯管道的一部分执行的指令。

        要使用 JenkinsFile 执行 gradle 构建,首先检查操作系统并调用可以执行该 gradle 任务的适当 shell,如下所示:


        詹金斯文件

        stage 'build_Project'
        node{
          if(isUnix()){
          sh 'gradle build --info'
        
          }
          else{
            bat 'gradle build --info'
          }
        }
        

        上面的代码sn-p创建一个名为build_project的stage并执行当前项目的gradle build脚本。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2019-03-26
          • 2020-10-20
          • 2019-06-12
          • 1970-01-01
          • 1970-01-01
          • 2023-03-17
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多