我有一系列構建 bitbucket 拉取請求的詹金斯管道作業。這些管道有一個 Quality 階段,它使用針對 GCC 警告和 Coverity 缺陷的 warningsng 記錄問題(通過通用問題工具)。
我的管道的相關部分是:
post {
always {
recordIssues(
blameDisabled: true,
forensicsDisabled: true,
tools: [gcc(id: "${env.PRODUCT}-static-gcc",
name: "${PRODUCT} GCC warnings",
pattern: "rw/build-analysis.log"),
issues(id: "${env.PRODUCT}-coverity-defects",
name: "${PRODUCT} Coverity Defects",
pattern: "rw/warning-ng-defects-*.xml")]
)
}
}
由于我們已經正常修復了所有 GCC 警告,但我們仍然有很多 Coverity 缺陷,我想對gcc工具應用質量門,以拒絕帶有警告的拉取請求,而不是問題,因為我們接受現在,拉取請求仍然存在 Coverity 缺陷。
但我的理解是,從閱讀管道語法步驟參考資料來看,質量門適用于recordIssues中的整個工具串列,并且似乎并不只適用于其中一個工具。
這是我嘗試過的:
post {
always {
recordIssues(
blameDisabled: true,
forensicsDisabled: true,
tools: [gcc(id: "${env.PRODUCT}-static-gcc",
name: "${PRODUCT} GCC warnings",
pattern: "rw/build-analysis.log",
qualityGates: [[threshold: 1, type: 'TOTAL', unstable: true]]),
issues(id: "${env.PRODUCT}-coverity-defects",
name: "${PRODUCT} Coverity Defects",
pattern: "rw/warning-ng-defects-*.xml")]
)
}
}
但是根據檔案,它被簡單地忽略似乎是合乎邏輯的。
那么,有沒有辦法在記錄問題中僅將質量門應用于工具串列中的一個工具?
uj5u.com熱心網友回復:
所以最后,解決方案很簡單,“只”包括使用recordIssues兩次。這對我有用:
post {
always {
recordIssues(
blameDisabled: true,
forensicsDisabled: true,
tool: issues(id: "${env.PRODUCT}-coverity-defects",
name: "${PRODUCT} Coverity Defects",
pattern: "rw/warning-ng-defects-*.xml")
)
recordIssues(
blameDisabled: true,
forensicsDisabled: true,
qualityGates: [[threshold: 1, type: 'TOTAL', unstable: false]],
tool: gcc(id: "${env.PRODUCT}-static-gcc",
name: "${PRODUCT} GCC warnings",
pattern: "rw/build-analysis.log")
)
}
}
非常感謝@MattSchuchard!
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/442173.html
