一千萬個為什麽

搜索


假設用戶啟動Jenkins作業,傳遞一些輸入參數。

有沒有辦法在某些時候讓Jenkins作業觸發 gitlab-ci也傳遞給它(即 gitlab ) )後者將用作環境變量的一些輸入參數?

轉載註明原文: 讓詹金斯觸發GitlabCI

一共有 1 個回答:

註意:我沒有使用這個,答案完全基於文檔。

可以通過API觸發GitlabCI管道,請參閱通過API觸發管道

通過API調用,可以使用觸發器強制重新運行特定 ref (分支或標記)的流水線。

您首先需要創建觸發器那條管線。

然後,您可以激活觸發器(從您的jenkins工作中在這種情況下):

要觸發任務,您需要向GitLab的API發送 POST 請求   端點:

  POST/projects /:id/trigger/pipeline
</代碼> 
     

所需的參數是觸發器的令牌 和Git   將在其上執行觸發器的 ref 。有效的參考是   分支和標簽。

這種觸發器支持變量傳遞

您可以在觸發API調用中傳遞任意數量的任意變量   並且它們將在GitLab CI中提供,以便它們可以用於   您的 .gitlab-ci.yml 文件。該參數的格式為:

<�預> <�代碼>變量[鍵] =值 </代碼>

您可以像這樣使用 .gitlab-ci.yml 中的變量:

<�預> <�代碼> upload_package:   階段:包   腳本:    - 如果[-n“$ {UPLOAD_TO_S3}”];然後進行上傳;科幻 </代碼>

You can then trigger a rebuild while you pass the UPLOAD_TO_S3 variable 和 the script of the upload_package job will run:

curl --request POST \
  --form token=TOKEN \
  --form ref=master \
  --form "variables[UPLOAD_TO_S3]=true" \
  https://gitlab.example.com/api/v4/projects/9/trigger/pipeline

這種POST請求是你在詹金斯工作中要做的。但仔細看看觸發器,你可能會找到一種方法去做你想要的東西,而不用詹金斯。