将 github 操作工件上传到最新版本
Posted
技术标签:
【中文标题】将 github 操作工件上传到最新版本【英文标题】:Upload a github action artifact to LATEST release 【发布时间】:2020-11-04 20:20:08 【问题描述】:我想将工件上传到最新版本... 不创建新版本。
我从github官方行动upload-release-asset开始上传神器。 它需要一个 upload_url 作为输入,告诉它发布的 url。 这通常取自在上一步中使用create-release 操作创建版本。
我试图从 create_release 打印输出 url-
https://uploads.github.com/repos/atiqg/test/releases/28579698/assets?name,label
然后我将其更改为直接到最新版本-
https://uploads.github.com/repos/atiqg/test/releases/latest/assets
不经意间没有解决并抛出此错误-
##[error]Multipart form data required
有什么办法可以做到吗?我不想通过操作创建新版本。 我想正常创建发布,然后操作应该将工件上传到最新版本...
【问题讨论】:
【参考方案1】:如果latest
不起作用,可以使用GitHub API获取upload_url
...
https://api.github.com/repos/actions/checkout/releases/latest
...然后将其传递给upload-release-asset
。
在工作流程中,它看起来像这样
- run: |
upload_url=$(curl -sL https://api.github.com/repos/actions/checkout/releases/latest | jq -r '.upload_url')
echo UPLOAD_URL=$upload_url >> $GITHUB_ENV
shell: bash
- uses: actions/upload-release-asset@v1
with:
upload_url: $ env.UPLOAD_URL
【讨论】:
这不再起作用,因为 set-env 默认情况下是停用的,但可以通过使用echo UPLOAD_URL=$upload_url >> $GITHUB_ENV
而不是 echo ::set-env name=UPLOAD_URL::$upload_url
轻松修复以上是关于将 github 操作工件上传到最新版本的主要内容,如果未能解决你的问题,请参考以下文章
github上fork原项目,如何将本地仓库代码更新到最新版本?
使用 Nexus rest API 获取给定 groupid/artifactId 的最新工件版本
使用 shell 脚本(centos 环境)从 postgresql artifacoty 获取最新版本的 postgresql 版本