Github-Action-Day18:产物(Artifacts)

这是 Github Action Advent Calendar 的第十八天的内容,如果您想要了解更多已经发布的 tips 信息,查看此处的 索引

当你构建一个执行 验证 pull request 或 持续集成构建(build) 的工作流时,你常常希望获取构建输出的内容,并且将这些输出内容保存,以便在之后使用它。
有时候,创建一个包 ,并发布这个包到一个类似 Github Package 的包仓库/注册中心是有意义的。但是,有时您只希望将它存储为构建输出的一部分,以便之后能够下载。Github Actions 允许你上传 aritfacts 作为你工作流的一部分,以后您可以下载它。

若要上传一个 artifact作为您构建的一部分,您可以使用 upload-artifact action。您可以指定一个路径来创建一个 artifact — 可以指定一个单独的文件或者一个文件夹,以及这个 artifact 的名称。您指定的这个路径将被存档在一个带有您指定的 atrtifact 名字的 zip 文件中。

例如,我可以构建以及测试我的项目,然后创建一个 nuget 包,最后将这个 nuget包作为一个 artifact 上传。

现在,当我的工作流运行时,在这个工作流运行的右上角我将获得一个选项,显示我的 artifacts并允许我下载它们。

img

将构建输出内容作为 artifacts 上传到一个包仓库/注册中心往往很有用:我喜欢将 CI 构建包上传到 Github Packages 中,而从 pull request 验证构建中创建 artifacts 。这使我可以选择在本地运行和测试 PR 验证的构建 — 我可以直接下载它们作为 artifacts — 而不会弄乱我的 Github Package 账户。当你想要选择在本地运行的时候,这样做是很棒的,即使你很少这样做。