web-dev-qa-db-ja.com

Jenkinsfileを使用してGradleビルド用のビルドパイプラインを自動生成


Gradleタスクに基づいてビルドパイプラインを作成しようとしています。 JenkinsFileの構成 Pipeline-as-code-demo を表示しましたが、gradleタスクのパイプラインを作成できません。 Jenkinsfileから構成を読み取るだけでJenkinsfileを使用してビルドパイプラインを自動的に表示できるように、可能な方法を提案してください。
ありがとうございました

8
Aniruddha Sinha

Artifactoryを使用してビルドの依存関係を解決したり、ビルドアーティファクトを展開したりする場合は、 Gradi build with Artifactory にPipeline DSLを使用することをお勧めします。

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コマンドを実行できますパイプラインの手順。

16
Eyal Ben Moshe

プロジェクトで 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'}
    }
}
16
aventurin

Jenkinsでは、Jenkinsfileで記述されたスクリプトを使用してjenkinsパイプラインを作成できます。

「ステージ」と「ノード」をビルディングブロックとして使用してスクリプトを記述します。これらのビルディングブロックを使用すると、jenkinsパイプラインの一部として実行する命令を指定できます。

JenkinsFileを使用してgradleビルドを実行するには、最初にオペレーティングシステムをチェックし、以下のように、そのgradleタスクを実行できる適切なシェルを呼び出します。


ジェンキンスファイル

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

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

上記のコードスニペットは、名前build_projectでステージを作成し、現在のプロジェクトのgradleビルドスクリプトを実行します。

5