繁体   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