💨

Jenkinsでのテスト実行スクリプト

2023/01/13に公開

はじめに

jenkinsでビルド→テスト→リンターの順番で実行する際のpipeline scriptは以下のようになる。
スクリプトでは、「ステージ」というものがあり、ステージはジョブの段階のようなものであり、どこで失敗したか判別することができる。また、特定のステージから開始することもできる。

pipeline script

pipeline {
  agent any
  post {
    failure {
      updateGitlabCommitStatus name: 'Test and detekt', state: 'failed'
    }
    success {
      updateGitlabCommitStatus name: 'Test and detekt', state: 'success'
    }
  }
  // 
  environment {
    GITHUB_URL = "https://github.com/***/test-app.git"
    GIT_REPOSITORY_NAME = "test-app"
    JAVA17_HOME = "/usr/lib/jvm/java-17-amazon-corretto.aarch64"
  }

  stages {
    stage('Change GitLab Status Pending') {
      steps {
        updateGitlabCommitStatus name: 'Test and detekt', state: 'pending'
      }
    }
    stage('Cleaning up workspace.') {
      steps {
        cleanWs()
      }
    }
    stage('Build') {
      steps {
        sh "git clone -b ${GITHUB_URL} --recursive"
      }
    }
    stage('Test') {
      steps {
          sh """
            cd ${GIT_REPOSITORY_NAME}; \
            bash -c './gradlew test -Dorg.gradle.java.home=${JAVA17_HOME}'
            """
      }
    }
    stage('detekt') {
      steps {
        sh "cd ${GIT_SERVER_REPOSITORY_NAME}; ./gradlew detekt"
      }
    }
  }
}

結果画面

Stage Viewに、各ステージ名が表示されており、それぞれの実行時間が表示される。


テスト実行結果をjenkinsの結果画面に表示させることができる。
設定画面で、どれくらいのビルド回数を結果表示させたいかなどカスタマイズできる。

Discussion