将 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 操作工件上传到最新版本的主要内容,如果未能解决你的问题,请参考以下文章

来自 Apache Archiva 的工件的最新版本

github上fork原项目,如何将本地仓库代码更新到最新版本?

从 nexus 获取最新的构建工件

使用 Nexus rest API 获取给定 groupid/artifactId 的最新工件版本

使用 shell 脚本(centos 环境)从 postgresql artifacoty 获取最新版本的 postgresql 版本

如何在Nexus 2.x中提供对工件的最新快照的URL访问?