V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
Smash
V2EX  ›  问与答

Github Actions 流程中上传的 Artifact 有大小限制吗?

  •  
  •   Smash · Dec 7, 2019 · 5262 views
    This topic created in 2336 days ago, the information mentioned may be changed or developed.

    最近在用 Github Actions 做持续集成,目前打 tag 后会触发编译,Release 发布,编译产物上传到 Release 页面。

    整个流程体验下来感觉 Gtihub Actions 还是个半成品,很多地方用户体验不是很好。

    接下来想做 push 操作触发预编译流程,想在每次预编译完成后将编译产物上传,方便验证对应的 commit。

    请问一下有熟悉 Github Actions 的老铁吗? Artifact 上传容量有限制吗?我 Google 了一下,发现貌似这块官方没有文档说明。也没有看到临时编译产物过期删除方面的文档。

    Supplement 1  ·  Dec 7, 2019
    已经结贴,目前 Github Actions 没有提供删除已上传的 Artifact 的 api。
    详见 https://github.com/actions/upload-artifact/issues/5
    17 replies    2019-12-07 12:30:09 +08:00
    tsl0922
        1
    tsl0922  
       Dec 7, 2019 via iPhone
    应该只是临时的没有保证吧,而且构建记录多了查找也不方便,需要永久保留还是在 release 里上传稳些。
    Smash
        2
    Smash  
    OP
       Dec 7, 2019
    @tsl0922 release 不适合发布临时构建产物吧。
    Smash
        3
    Smash  
    OP
       Dec 7, 2019
    我想在想到两种方法:
    1、新建一个 repo,用来存储 snapshot 的构建产物.
    2、用自己双 11 的服务器来存储这些构建产物

    当前要有一个过期删除的规则。
    Trim21
        4
    Trim21  
       Dec 7, 2019 via Android   ❤️ 1
    时间文档里有说
    GitHub stores artifacts for 90 days for pushes and pull requests.
    Trim21
        5
    Trim21  
       Dec 7, 2019 via Android   ❤️ 1
    存储空间免费账户最大额度是 500mb,是在账单文档里面
    Smash
        6
    Smash  
    OP
       Dec 7, 2019
    @Trim21 结贴了,感谢。
    Trim21
        7
    Trim21  
       Dec 7, 2019 via Android
    好像看错了,这个 500mb 说的是私有仓库,没说公开仓库的存储额度是多少…
    Smash
        8
    Smash  
    OP
       Dec 7, 2019
    @Trim21 orz,那不管了,先用着吧。到时候公开仓库应该会有一个过期或者限额能力。
    Trim21
        9
    Trim21  
       Dec 7, 2019 via Android
    @Smash https://help.github.com/en/github/setting-up-and-managing-billing-and-payments-on-github/viewing-your-github-actions-usage#viewing-github-actions-usage-for-your-user-account

    我看明白了,这个 500mb 是针对每个账户有 500mb 的存储空间额度,所有仓库共享,在 settings/billing 里面能看到。超过了会收费(
    blankme
        10
    blankme  
       Dec 7, 2019 via Android
    actions 运行完之后 github 就会把你的文件都清理掉,没有缓存。

    github-hosted runner 磁盘 14g

    github release 限制单文件 2g

    这些信息文档里都有写
    Smash
        11
    Smash  
    OP
       Dec 7, 2019
    @Trim21 刚才在一个 issue 里面看到了,讨论如何删除已经上传的 artifact,有人说限额 1GB。

    https://github.com/actions/upload-artifact/issues/5
    crysislinux
        12
    crysislinux  
       Dec 7, 2019 via Android
    我感觉 github actions 可用度还是挺高的了。你这个就是很典型的应用。release 不需要 Artifact,你直接调用 github http API 就好了,有相关的库的。不过我用的 npm release 和 semantic release,release 被他们接管了。
    Smash
        13
    Smash  
    OP
       Dec 7, 2019
    @crysislinux release 没有问题的,工作的很好。对于 actions 的 artifact 这块的支持不是很完善,貌似有限额,但却没有提供过期删除或者删除的 api。public 的 repo release 上传的二进制文件貌似不会限制容量的。
    crysislinux
        14
    crysislinux  
       Dec 7, 2019 via Android
    @Smash artifact 确实没删除的地方。不仅没 API,界面上也删不了。这个一般保存一些测试结果之类的吧。你是想保存临时的 release (还不知道是不是会被 merge 的那种) ?
    Smash
        15
    Smash  
    OP
       Dec 7, 2019
    @crysislinux 我主要是用来存临时的 golang 的交叉编译产物,每一个可执行的二进制文件都有 20mb 左右,因为把前端的静态产物都集成进 golang 的二进制文件内部了,编译几个平台的就达到 100 多 mb 了。

    为了保证编译失败的时候能够快速的修复错误,所以我每次 push 都会触发 prebuild,感觉用不了多久就会占满容量。
    Smash
        16
    Smash  
    OP
       Dec 7, 2019
    @crysislinux 同时为了快速验证,所以也要保存二进制文件。当然只是临时保存一下。
    crysislinux
        17
    crysislinux  
       Dec 7, 2019 via Android
    @Smash 只是验证的话可以跑 test 啊,也可以 build,但是编译不需要保存,你只需要知道成功还是失败,如果失败,为何失败就够了。这种保存到 artifact 是完全够的
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5174 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 68ms · UTC 08:12 · PVG 16:12 · LAX 01:12 · JFK 04:12
    ♥ Do have faith in what you're doing.