如何在 GitHub Actions 中使用最新发布标签?

Posted

技术标签:

【中文标题】如何在 GitHub Actions 中使用最新发布标签?【英文标题】:How to use latest release tag in GitHub Actions? 【发布时间】:2021-12-10 20:12:35 【问题描述】:

我想通过在 GitHub 中创建发布标签来控制发布,例如:

name: deploy-live

on:
  push:
    tags:
      - release-v*

但也可以运行部署以使用带有最新版本标签的 Webhook 重新构建我的静态网站(并且不包括在最新版本标签之后的任何开发工作):

name: deploy-live

on:
  push:
    tags:
      - release-v*
  repository_dispatch:
    types:
      - prismic_content_update

目前,这将从主分支重新构建站点,包括自上次发布标记以来的所有更改。有没有办法在部署之前将 HEAD(不包括更改)重置为最新的发布标签?

【问题讨论】:

【参考方案1】:

我找到了通过以下工作流程解决此问题的方法:

name: deploy-live

on:
  push:
    tags:
      - release-v*
  repository_dispatch:
    types:
      - prismic_content_update

concurrency: deploy-live

jobs:
  deploy:
    runs-on: $ matrix.os 

    strategy:
      matrix:
        os: [ubuntu-latest]
        node: [14]

    steps:
      - name: Checkout
        uses: actions/checkout@master
        with:
          fetch-depth: 0

      - name: Checkout latest release tag
        run: |
          LATEST_TAG=$(git describe --tags `git rev-list --tags --max-count=1`)
          git checkout $LATEST_TAG

【讨论】:

以上是关于如何在 GitHub Actions 中使用最新发布标签?的主要内容,如果未能解决你的问题,请参考以下文章

利用GitHub-Actions将Hugo博客自动发布到GitHub和Gitee Pages

如何在 Github Actions 中获取当前分支?

如何在 GitHub Actions 中使用 env 文件?

如何在 GitHub Actions 中构建的 Dockerfile 中使用 github 令牌并尝试克隆私有存储库?

如何在 GitHub Actions 中使用 bash 表达式设置 env var?

在 Google Actions 中获取文本输入(最新版本)