[英]Jenkins pipeline: How to build new artifacts only if has a new commit
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'
}
如果有新的提交,如何運行測試並制作新的工件? 沒有觸發器
您可以使用Git插件中的環境變量並創建條件:
if (env.GIT_COMMIT != env.GIT_PREVIOUS_SUCCESSFUL_COMMIT) {
stage('run tests'){
sh 'mvn test'
}
stage('build artefact'){
sh 'mvn clean package'
}
}
有三種方法可以自動觸發Jenkins作業。
您可以在管道作業中使用SCM polling
,以便每次發生更改時都會觸發您的作業。
您可以在管道作業配置的“Build Triggers”部分下啟用Poll SCM
。
當GitHub
存儲庫發生更改時,您可以使用Webhooks
自動觸發作業。
請遵循Webhook
實施的此文檔 。
當存儲庫中存在提交時,您可以使用post-commit
hook來觸發作業。
在存儲庫的.git/hooks
目錄下創建一個名為post-commit
的文件,並向其添加以下腳本:
#!/bin/bash curl --user 'user:pass' -X POST "http://server.org.com/jenkins/job/JOB-NAME/build" --data token=mytoken1 --data delay=0sec
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.