簡體   English   中英

建築管道項目詹金斯

[英]Building Pipeline Project Jenkins

我有一個要求

  1. 創建一個構建作業
  2. 部署到人工工廠
  3. 從工件下載工件,然后部署到測試服務器

我已在構建管道中配置了所有這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.

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