簡體   English   中英

確切使用Jenkins Gerrit Trigger插件的“禁止文件路徑”

[英]exact use of “Forbidden File path” of the Jenkins Gerrit Trigger plugin

Jenkins Gerrit Trigger插件有一個“添加禁止文件路徑”按鈕,但實際上沒有太多可用的文檔。
那它的確切行為是什么?

  • 如果其中一個更改的文件匹配,它是否會禁止觸發器?
  • 或者,如果所有更改的文件都匹配,它是否會禁止觸發?
    (換句話說:只有匹配的文件發生了變化)
  • 我認為它“覆蓋”了“添加文件路徑”的匹配,不是嗎?
  • 它只適用於目錄名稱還是文件名?

這導致了一個問題,如果:
“文件路徑”= ^((?!_abc)(?!_def).)*$
行為等於:
“禁止文件路徑”= ^.*_abc$|^.*_def$

一個或多個文件

如果其中一個更改的文件匹配,它是否會禁止觸發器? 或者,如果所有更改的文件都匹配,它是否會禁止觸發? (換句話說:只有匹配的文件發生了變化)

如果任何文件匹配,則根據提交消息觸發器禁止。

此禁止文件允許項目在任何禁用文件受到影響時不會觸發。

重寫

我認為它“覆蓋”了“添加文件路徑”的匹配,不是嗎?

是。 Add Forbidden file path優先級高於Add File path

為...賣力 ...

它只適用於目錄名稱還是文件名?

對彼此而言。 但是很難添加空文件夾。

關於行為的問題

這導致了一個問題,如果:

“文件路徑”= ^((?!_ abc)(?!_ def)。)* $

行為等於:

“禁止文件路徑”= ^。 _abc $ | ^。 _def $?

可能你犯了一個錯誤: ^((?!_abc)(?!_def).)*$而不是^.*(?!_abc)(?!_def)$ 因為在第一種情況下你從開始比較( ^ )和量詞( * )重復整個表達式,而不是a .

在第二種情況下,我們對兩個或多個文件有不同的行為。 因為

  1. 如果找到任何Add File pathAdd File path 但是,如果找到任何文件,則Add Forbidden File path禁止構建。
  2. 此外,您需要填充Add File path **至少開始工作Add Forbidden File path 如果Add File path為空,則Add Forbidden File path不起作用。

根據文檔,我的需求應該與插件的V2.16.0 (參見JENKINS-30620 )一起使用 - 應該使用新選項“ 禁用嚴格的禁止文件驗證 ”。
在幫助中它說:

  • 如果事件包含一個或多個所需文件路徑和一個或多個,則啟用此選項將允許事件觸發構建
    禁止的文件路徑。
  • 換句話說,使用此選項,如果更改僅包含禁用文件,則不會觸發構建,否則將觸發構建。

所以我花了一天的時間進行測試, 但它似乎不能在我的網站上運行

但至少我通過“添加文件路徑”參數使其工作 ,這要歸功於JENKINS-19891中提供的信息

但是,由於提交始終包含COMMIT_MSG文件,因此它將匹配正則表達式並觸發構建。

所以我將提交消息文件添加到我的正則表達式,最終給了我正確的結果。

示例: ^((?!\\/COMMIT_MSG|cunit|_abc|_def[\\/\\.]).)*$
...忽略文件中的更改名稱(包括路徑)包含“cunit”,“_ abc”,“_ unde”中的任何一個。 或“_def /”

暫無
暫無

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

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