2017-04-24 61 views
1

有沒有什麼方法可以使用Jenkins選擇參數來控制項目中後構建作業的執行?使用Jenkins參數化構建來控制構建後操作的執行

我有我的項目是建立一個戰爭文件,有時(並非所有的時間)我想這個戰爭文件發送到Amazon S3存儲桶,所以我可以將它部署到一個EC2 Tomcat容器。我不希望詹金斯在每次構建項目時發送戰爭文件到S3(每天發生多次),並且我想要一種方法來控制何時將戰爭文件發送到S3。

我能看到的唯一選擇是複製我當前的Jenkins項目並讓新項目向S3發送戰爭文件,但這意味着我將最終有多個Jenkins項目做'幾乎'完全一樣的東西,我是試圖避免。

回答

0

不,不要爲此制定新的構建計劃。甚至聲明式管道都支持這種用例,就像沒有人的業務一樣。一旦你有一個參數(從參數步驟,這些將允許你「參數構建」,並讓一個實際的人檢查一個複選框,當你想要一場戰爭發貨),你可以簡單地通過params.MY_PARAM_NAME引用它。只需更換echo S下方與實際代碼:

pipeline { 
    agent { label 'docker' } 

    parameters { booleanParam(name: 'SEND_WAR_TO_S3', defaultValue: false, description: 'Send resulting war file to s3?') } 

    stages { 
    stage('hot_stage') { 
     steps { 
     echo 'generating war...' 
     } 
    } 
    } 
    post { 
    always { 
     script { 
     if (params.SEND_WAR_TO_S3) { 
      echo 'sending war to s3' 
     } else { 
      echo 'not sending war to s3' 
     } 
     } 
    } 
    } 
} 
+0

感謝@KevinBurnett我會嘗試管道選項,將讓你知道什麼去。乾杯。 – motokazi

+0

花了一段時間,但感謝@burnettk的幫助。 – motokazi