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

问题描述 投票:0回答:1

我目前是第一次研究github上的动作。

我有一个构建泊坞窗映像并将其发布到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 action
1个回答
0
投票

您可以使用少量的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环境变量应由您的操作自动设置,前提是您正在使用引用。

© www.soinside.com 2019 - 2024. All rights reserved.