Jenkins 管道:仅在有新提交时如何构建新工件

Mak*_*eev 2 git maven jenkins

stage('Checkout repo'){
    git branch: 'mybranch', 
    credentialsId: '6b83e39e-1c8c-44c2-9165-b1f5a857f6cb', 
    url: 'git@gitlab.com:myproject.git'}

stage('run tests'){
    sh 'mvn test'
}

stage('build artefact'){
    sh 'mvn clean package'
}
Run Code Online (Sandbox Code Playgroud)

仅当有新提交时如何运行测试并制作新工件?没有触发器

dal*_*alf 5

您可以使用Git 插件中的环境变量并创建一个条件:

if (env.GIT_COMMIT != env.GIT_PREVIOUS_SUCCESSFUL_COMMIT) {
  stage('run tests'){
    sh 'mvn test'
  }
  stage('build artefact'){
    sh 'mvn clean package'
  }
}
Run Code Online (Sandbox Code Playgroud)
  • GIT_COMMIT - 当前提交的 SHA
  • GIT_PREVIOUS_SUCCESSFUL_COMMIT - 先前从同一分支成功构建提交的 SHA。