繁体   English   中英

Github 操作 | 基于分支名称的条件

[英]Github Actions | conditional based on branch name

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

我有一个过程,我构建了一个 docker 镜像并将其发布到 Docker Hub。

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

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

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

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

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

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

您可以使用少量的 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。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM