簡體   English   中英

檢查Jenkins版本中回購的一部分是否未更改

[英]Check if a part of a repo has not changed on a Jenkins build

在Jenkins構建中,如果存儲庫的一部分未更改,我想跳過一些測試。 這樣可以節省大量的構建時間。 這是我可以在開發機上完成的方法:

changes=$(git log --name-only --pretty="" my_branch..HEAD | grep path/to/folder)
if [[ -z $changes ]]; then
  echo "no changes detected, skipping tests"
  exit 0
fi
echo "running tests!"

如何在Jenkins機器上執行此操作?

我正在為Jenkins使用git插件 ,它可以使用$GIT_BRANCH來確定我的分支名稱,但是我不知道如何在構建中獲取文件更改列表。

在Freestyle作業中,您可能必須使用條件構建步驟插件。 我不認為您可以運行shell腳本作為條件之一,但是可以運行一個步驟來執行粘貼的shell腳本,如果您應該(或不應該)運行測試,則可以使其碰到文件。 然后使用“條件構建”步驟查找該文件並執行正確的操作。

我還剛剛意識到git插件具有的其他行為之一是輪詢會忽略某些路徑中的提交 這使您可以指定包含或排除。 如果您指定“包含”,則修改以外的文件甚至根本不會觸發構建。 然后,您甚至不需要外殼程序腳本或使用執行程序來檢查更改。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM