使用Jenkinsfile自动生成用于gradle构建的构建管道

时间:2016-03-02 16:52:29

标签: jenkins gradle continuous-integration


我正在尝试基于Gradle任务创建构建管道。我查看了JenkinsFile配置Pipeline-as-code-demo,但我无法为gradle任务创建管道。请建议我一种可能的方法,以便我可以使用Jenkins文件通过读取Jenkins文件中的配置自动显示构建管道。
三江源

3 个答案:

答案 0 :(得分:15)

如果您使用Artifactory来解析构建依赖项或部署构建工件,建议使用Pipeline DSL进行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
}

否则,您只需使用 sh bat 管道步骤运行gradle命令。

答案 1 :(得分:14)

如果您的项目使用Gradle Wrapper,您可以在Jenkinsfile中使用以下代码段:

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 :(得分:5)

在jenkins中,你可以使用用Jenkins文件编写的脚本创建一个jenkins管道。

我们使用' stage'编写脚本。和'节点'作为构建块,这些构建块允许您指定应作为jenkins管道的一部分执行的指令。

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

Jenkinsfile

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

  }
  else{
    bat 'gradle build --info'
  }
}

上面的代码片段创建一个名为 build_project 的舞台,并执行当前项目的gradle构建脚本。