git - Github Action |基于分支名称的条件

标签 git docker github github-actions

我目前正在首次调查github Action 。

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

这一切似乎都工作得很好,但是当我 push 掌握它的构建并使用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")

如果您使用的是ref,则GITHUB_REF环境变量应由您的操作自动设置。

关于git - Github Action |基于分支名称的条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59795912/

相关文章:

git - 如何推送到另一个分支

java - 如何在标准 openjdk docker 镜像上安装 Git?

Windows 和 Samba/CIFS 上的 Docker

java - 环境变量和@Value 不能在 Spring Boot 上协同工作

git - 将行指针 URL 生成到 Github Pull Request

python - 谷歌云功能 - ImportError : cannot import name 'pubsub' from 'google.cloud' (unknown location)

git - 如何重新设置提交列表?

git rebase -i 和干净的提交

git - 如何为版本控制的 git commit 命令配置选项

git - 如何在 git rm 并推送到 github 后取消删除文件?