[英]Building Pipeline Project Jenkins
我有一個要求
我已在構建管道中配置了所有這3個作業。 同樣,所有人都有共享的構建路徑。
這基本上是一個Java作業,我已經創建了構建作業,並且工作正常。 我已使用下游Job觸發部署到工件作業。 它正在使用Maven構建。
在第二個作業中,它需要手動觸發(我已經這樣配置),它運行良好,並且正在部署到我已配置的各個存儲庫中。 我使用了通用工件集成插件,並使用已發布的工件來推送到工件存儲庫
現在,對於第3個作業,如何從工件中下載工件? 如果從第二項工作開始,我們可以將工件URL存儲到文件中並作為參數化版本將其讀取,我認為它將起作用。
但是我沒有任何線索來獲取工件URL。
請幫忙!
我可以通過以下方法實現此目的。
1.創建了一個構建作業->這將從存儲庫中下載代碼並進行Maven構建。 調整Pom.xml的方式使我獲得tar.gz文件作為輸出。 內部版本號和分支名稱的信息保存在同一工作區的文件中。
2.創建了Artifactory上傳作業->我使用mvn deploy:deploy-file命令將工件部署到Artifactory中的特定遠程存儲庫。 這有一個version參數,我在其中傳遞內部版本號,並且它具有groupID和artifactID。 因此,一旦maven部署文件上傳了文件,它將在工件中上傳確定的路徑。 由於我已經有了所有可用的詳細信息,因此我對Artifactory URL進行了陷害,並將其保存在使用了內部版本號和分支名稱的同一文件中。
3.創建到特定服務器的部署作業->我創建了一個部署腳本並將該腳本保存在服務器中,該服務器以URL為參數。 從工作空間上的文件中,我能夠檢索URL並對服務器執行ssh。 加載了bash配置文件,並將URL傳遞給了部署腳本。 之后,它下載了工件並部署到服務器。
創建完這些作業后,我將構建作業配置為接受構建后手動項目,並將Artifactory上傳為作業名稱。 對於Artifactory Job,我也將Deployment作為Post Build Manual項目Job。
通過這種方式,我創建了一個構建管道視圖,其中所有這些項目都是上游/下游項目。
我認為您錯過了流程的重點。 原始的自由式作業開始變得太復雜,並且在將它們鏈接在一起時,它們之間存在困難的依存關系(例如,如何從該作業到該作業獲取此url)。 解決方案是創建帶有階段的管道。
stages{
stage('build') {
steps {
//build some stuff
}
}
stage('publish') {
steps {
//publish the stuff
}
}
stage('deploy) {
steps {
// download and deploy the stuff
}
}
在我看來,僅部署已有的內容而不重新下載這些內容可能對您而言更有用。 看一下stash/unstash
步驟。 這些將在階段之間有用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.