【问题标题】:How to express a version range for Github Action dependency如何表示 Github Action 依赖的版本范围
【发布时间】:2021-10-04 19:50:26
【问题描述】:

在 GitHub 工作流程中,我可能会使用版本化的 Github Action。 documentation 声明:

我们强烈建议您通过指定 Git ref、SHA 或 Docker 标记号来包含您正在使用的操作的版本。如果您不指定版本,则可能会在操作所有者发布更新时破坏您的工作流程或导致意外行为。

据我所知,版本可以是:分支、引用或提交 SHA1。

是否可以表达更多的约束,例如版本范围?一个虚构的语法:

jobs:
  my_job:
    steps:
      - name: My action
        uses: myAction@[1.1, 1.234]

这意味着“使用版本介于 1.1 和 1.234 之间的 MyAction”。有没有办法表达那种版本约束?

【问题讨论】:

    标签: github-actions


    【解决方案1】:

    我认为这不可能,因为理论上看起来不可能。

    github actions 中,每个自定义操作的语法都是githubuser/repository

    它代表一个真正的 github repo:例如actions/setup-node as https://github.com/actions/setup-node

    github 动作引擎肯定需要从这些存储库中下载源代码,并使用 git 概念(哈希、提交、分支、标记)来找到正确的源来运行动作。如果我们允许一个范围,那么真的不知道应该使用哪个提交动作的源代码。

    【讨论】:

    • 但是,可以参考主要版本。不是说一个工作流可以获取所有的远程引用吗?
    • 你可能想看看Semantic versioning for GitHub ActionsMove the major version tag (v1, v2, etc.) to point to the Git ref of the current release.,每次发布新版本时更新标签都是额外的努力。 Action owner 将负责将其更新为 git ref 通常是一个新版本,因此当您使用这个主要版本时,实际上它已经被所有者绑定到一个 git ref。
    • 您可以通过突出显示我错过的这句话来帮助我。但我不同意“理论上看起来不是”。可以在任何结帐之前列出远程引用。但 GitHub 选择了不同的做法。一个例子: git ls-remote --tags 'git@github.com:actions/checkout.git'
    猜你喜欢
    • 2020-03-05
    • 2016-04-17
    • 2022-11-10
    • 1970-01-01
    • 2019-12-25
    • 1970-01-01
    • 2015-06-12
    • 2015-09-09
    • 1970-01-01
    相关资源
    最近更新 更多