簡體   English   中英

Jenkins Job DSL - 以文件內容為條件的行為

[英]Jenkins Job DSL - behaviour conditional on file contents

我繼承了一個使用Jenkins Job DSL為我們所有項目構建作業的系統,我沒有配置Jenkins的經驗,也沒有使用Jenkins Job DSL,所以請保持溫和。

其中一些項目是Gradle項目。 有一個函數createGradleJob()可以創建gradle作業。 在此函數中,我們基於項目的某些功能,以字符串形式為作業構建任務列表。 例如,如果它是從主分支構建的,我們會附加“發布”任務。 所有這些條件任務當前都是根據項目分支名稱,或項目倉庫中某些文件的存在或缺失而附加的。

我現在想要根據其中一些文件的內容向這個任務列表中添加一個新任務。 特別是如果在項目build.gradle文件中檢測到某些關鍵字,則需要將某些任務附加到任務列表。

那么, Jenkins Job DSL中有沒有辦法檢查文件的內容並將其用作條件表達式?

我發現我可以使用shell函數執行任意shell命令,所以我認為我可以只是grep該文件,但是我找不到這個函數的文檔,所以我不清楚我怎么能夠訪問輸出命令,以便在條件表達式中使用它們。

我找到了textFinder函數,但這似乎只允許你因查找或找不到文本而導致構建失敗(或標記為不穩定),而不是將結果用作條件表達式。

這聽起來像你想readFileFromWorkspace 它以字符串形式返回文件的內容。 只需讀取您的文件並使用Groovy和/或Java字符串utils根據需要解析字符串。

你的問題並不是很清楚,但如果你正在談論從你正在生成的工作中檢出的回購文件,這個功能將無濟於事。 但是如果文件已經在工作區中的某個位置(即它是種子作業檢出的文件之一),那么你會沒事的。

您找到的shell命令會為正在生成的作業添加“執行Shell腳本”構建步驟。 它實際上並不執行那里的腳本然后,它只是將參數的內容逐字復制到構建步驟中,准備在Jenkins運行作業時執行。

為了您的持續理智,這里是Job DSL API文檔的鏈接

暫無
暫無

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

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