簡體   English   中英

將構建工件上載到Github,作為Jenkins的發布

[英]Upload build artifact to Github as release in Jenkins

我正在尋找一種方法來將構建工件上傳為Jenkins中的Github Release作為構建后操作或發布者 - 類似於Publish Over

Jenkins的Github插件( JENKINS-18598 )尚未支持此功能。

我一直在研究postbuild-task插件,但這似乎不支持環境變量(我認為這有助於防止在構建輸出中記錄我的API令牌)。

有沒有人這樣做過呢? 用Jenkins解決這個問題的好方法是什么? 通過cURL或CLI客戶端上傳(例如基於Go的github-release )。

我通過使用github-release工具解決了它。 像魅力一樣非常容易。

  1. 將相關參數添加到構建中
  2. 在后期構建步驟中添加shell腳本
  3. 輸入以下代碼:
echo "Compressing artifacts into one file"
zip -r artifacts.zip artifacts_folder

echo "Exporting token and enterprise api to enable github-release tool"
export GITHUB_TOKEN=$$$$$$$$$$$$
export GITHUB_API=https://git.{your domain}.com/api/v3 # needed only for enterprise

echo "Deleting release from github before creating new one"
github-release delete --user ${GITHUB_ORGANIZATION} --repo ${GITHUB_REPO} --tag ${VERSION_NAME}

echo "Creating a new release in github"
github-release release --user ${GITHUB_ORGANIZATION} --repo ${GITHUB_REPO} --tag ${VERSION_NAME} --name "${VERSION_NAME}"

echo "Uploading the artifacts into github"
github-release upload --user ${GITHUB_ORGANIZATION} --repo ${GITHUB_REPO} --tag ${VERSION_NAME} --name "${PROJECT_NAME}-${VERSION_NAME}.zip" --file artifacts.zip

我認為你正在走上正軌!

  1. 將post build任務插件添加到Jenkins
  2. 使用“僅當前面的所有步驟都成功時運行腳本”選項
  3. 我將為版本名稱,標記名稱等創建Jenkins參數,並將這些參數與您的憑據一起保存到文件中,作為構建過程的最后一步(在構建后任務執行之前)。
  4. 在調用Github API的post build任務步驟中添加一個簡短的腳本:
  5. 從保存的文件中設置環境變量並將其刪除
  6. 用於https://developer.github.com/v3/repos/releases/#create-a-release的 CURL POST(您可以使用Jenkings Groovy post構建插件而不是post build任務插件並訪問環境變量而不保存它們進入一個文件,但它會增加太多的復雜性,以至於不值得使用該插件。)
  7. CURL POST上傳工件: https//developer.github.com/v3/repos/releases/#upload-a-release-asset

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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