gpt4 book ai didi

github - 如何使用脚本在 GitHub 上发布构建工件 Assets ?

转载 作者:行者123 更新时间:2023-12-02 15:57:10 25 4
gpt4 key购买 nike

我正在尝试找出一种在 GitHub 上生成构建的单命令流程。

我预计要做的是运行某种命令 - 例如 make release,make release 脚本会构建发布工件,然后以某种方式将其上传到 GitHub。

但是,我对如何在 GitHub 上实际获取发布工件感到相当困惑。源代码很棒,但并不是每个人都想自己构建。 :-)

最佳答案

2022 年更新:官方 GitHub CLI 附带 gh release upload

Upload asset files to a GitHub Release.

您可以先使用 gh release create 创建版本

Upload all tarballs in a directory as release assets
$ gh release create v1.2.3 ./dist/*.tgz

Upload a release asset with a display label
$ gh release create v1.2.3 '/path/to/asset.zip#My display label'
<小时/>

Update September 2013 ,您可以自动发布 ( API in preview mode )

Update January 2014 ,有一个非官方的命令行应用程序,名为 github-release 作者 Nicolas Hillegeer (aktau) ,用于创建版本和上传(二进制)工件。
它使用上面提到的新的 github 发布 API。看Makefile了解该项目,了解如何进一步实现自动化。

示例:

# create a formal release
$ github-release release \
--user aktau \
--repo gofinance \
--tag v0.1.0 \
--name "the wolf of source street" \
--description "Not a movie, contrary to popular opinion. Still, my first release!" \
--pre-release
<小时/>

This API is a little different due to the binary assets. We use the Accept header for content negotation when requesting a release asset.
Pass a standard API media type to get the API representation:

$ curl -i -H "Authorization: token TOKEN" \
-H "Accept: application/vnd.github.manifold-preview" \
"https://uploads.github.com/repos/hubot/singularity/releases/assets/123"

HTTP/1.1 200 OK

{
"id": 123,
...
}

Pass “application/octet-stream” to download the binary content.

$ curl -i -H "Authorization: token TOKEN" \
-H "Accept: application/octet-stream" \
"https://uploads.github.com/repos/hubot/singularity/releases/assets/123"

HTTP/1.1 302 Found

Uploads are handled by a single request to a companion “uploads.github.com” service.

$ curl -H "Authorization: token TOKEN" \
-H "Accept: application/vnd.github.manifold-preview" \
-H "Content-Type: application/zip" \
--data-binary @build/mac/package.zip \
"https://uploads.github.com/repos/hubot/singularity/releases/123/assets?name=1.0.0-mac.zip"
<小时/>

Update 2d July 2013 ,您现在可以定义版本

release

  • 版本附有版本说明以及下载软件或源代码的链接。
  • 遵循许多 Git 项目的惯例,版本与 Git 标签相关联。您可以使用现有标签,或者让版本在发布时创建该标签。
  • 您还可以将二进制 Assets (例如编译的可执行文件、缩小的脚本、文档)附加到版本。发布后,任何可以查看存储库的人都可以获得发布详细信息和 Assets 。

这将取代 old binary upload service ,即 removed in December 2012 !

<小时/>

the make release script builds up the release artifact and then uploads it to github in some fashion.

这意味着将其(“它”是由一个或多个文件组成的交付,通常包括二进制文件)添加到常规本地存储库,然后将该存储库推送到其匹配的 GitHub 存储库。

话虽这么说,在任何“发布”任务中都没有提及 GitHub 的原因是因为 Git 是一个源代码控制管理系统,并且不适合二进制文件。

它当然可以拥有这些文件(二进制文件),但不会定期拥有它们,因为一段时间后存储库的大小会变得臃肿:每次克隆将花费越来越长的时间。
请参阅What are the Git limits ,还有“git - should source files and repository be on the same machine ?”。

关于github - 如何使用脚本在 GitHub 上发布构建工件 Assets ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5207269/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com