[英]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.