【问题标题】:Check if Release Tag is latest on GitHub Actions检查发布标签是否在 GitHub Actions 上是最新的
【发布时间】:2022-10-25 16:38:13
【问题描述】:

我发布了两个标签,0.1.0,然后是0.0.1。最新的发布标签是0.1.0

如果工作流是由最新版本分派的,我如何检查 GitHub Action 内部?

name: Test
on:
  workflow_dispatch:
    branches:
      - main
  release:
    types: [published]
jobs:
  test:
    name: Test
    runs-on: ubuntu-20.04
    steps:
      - run: echo ${{ github.ref_name }}

${{ github.ref_name }} 返回标签版本0.1.00.0.1,我想在操作中像 GitHub 一样标记 Docker 图像:仅当操作由 0.1.0、@987654332 分派时为 image:latest @ 是最新的,即使 0.0.1 稍后发送,如下面的屏幕截图所示:

【问题讨论】:

  • 您可以使用 git (reference) 获取最新标签,并将该值与 github.ref_name 变量进行比较。

标签: github github-actions


【解决方案1】:

不幸的是,github 上下文不提供此信息。

作为一种解决方法,您可以使用 git 命令来检索最新版本:

git tag | sort -r --version-sort | head -n1

然后将其与 github 操作上下文中的当前标记进行比较:

${{ github.ref_name }}

例子:

  - name: "Set latest tag"
    id: set-latest-tag
    run: echo "latest_tag=$(git tag | sort -r --version-sort | head -n1)" >> $GITHUB_ENV

  - name: "Tag Docker image as latest"
    id: tag-as-latest
    if: ${{ github.ref_name == env.latest_tag }}
    run: |
      ...

【讨论】:

    猜你喜欢
    • 2021-12-10
    • 2020-07-12
    • 2016-11-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-04
    • 2022-08-16
    相关资源
    最近更新 更多