【问题标题】:Github Actions | conditional based on branch nameGithub 行动 |基于分支名称的条件
【发布时间】:2020-05-04 20:19:19
【问题描述】:

我目前正在第一次研究 github 操作。

我有一个构建 Docker 映像并将其发布到 Docker Hub 的过程。

这一切似乎都运行良好,但是当我推动它使用 master 分支构建和标记时,我希望它使用 latest 分支进行标记?

我知道您可以在.yml 文件中的步骤中执行条件,例如:

step:
  if: github.ref == 'refs/heads/master'

但我想知道我是否可以内联,所以我基本上可以说

build . docker-image-name:${{ github.ref == 'refs/head/master' ? 'latest' : github.ref }}

我知道这不是语法,但这就是想法,

【问题讨论】:

    标签: git docker github github-actions


    【解决方案1】:

    您可以使用少量的 shell 脚本来做到这一点。假设您知道 ref 将始终被设置(也就是说,您始终使用分支或标签),您可以编写以下内容:

    build . docker-image-name:$(ref=${GITHUB_REF%refs/heads/master};echo ${ref:=latest})
    

    或者,如果您想要不那么紧凑但更易于阅读的内容:

    build . docker-image-name:$([ "$GITHUB_REF" = refs/heads/master ] && echo "latest" || echo "$GITHUB_REF")
    

    GITHUB_REF 环境变量应由您的操作自动设置,前提是您正在使用 ref。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-07-25
      • 2023-03-26
      • 2015-07-17
      • 2021-10-05
      • 2021-06-02
      • 2018-05-26
      • 2020-12-16
      • 2019-10-20
      相关资源
      最近更新 更多