如何在推送新标签时触发Github动作工作流?

ct3nt3jp  于 2023-02-07  发布在  Git
关注(0)|答案(1)|浏览(275)

每当拉取请求被合并到主分支时,我都会调用Github操作工作流来创建一个新标记

name: Create new tag on push on main branch

on:
  push:
    branches:
      - 'main'

permissions:
  contents: write

jobs:
  create-new-tag:
    runs-on: ubuntu-latest

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

      - name: Get next version # checks if conventional commit would cause a new version
        id: get_next_version
        uses: thenativeweb/get-next-version@2.5.0

      - name: Create new tag
        if: ${{ steps.get_next_version.outputs.hasNextVersion == 'true' }}
        run: |
          git tag ${{steps.get_next_version.outputs.version}}
          git push origin ${{steps.get_next_version.outputs.version}}

这个工作流按预期工作。我想创建第二个工作流,每当创建新标记时,它就会触发。它应该构建应用程序并在Github上发布二进制文件。我从

name: Release binaries for new tag

on:
  push:
    tags:
      - '*'

jobs:
  release-binaries:
    runs-on: ubuntu-latest

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

      # I think this step makes sense to ensure the build always matches the git tag
      - name: Checkout new tag
        run: git checkout ${{ github.ref_name }}

      - name: Next step
        run: echo "next ..."

不幸的是,这个工作流从来没有运行过,所以它似乎没有触发。当我在Github上做了一个更改,然后用
专长:改变
次要版本会增加,因此会创建一个新标签。但这不会触发之后的第二个工作流。
出什么事了还是我错过了什么?

ctehm74n

ctehm74n1#

要了解发生的情况:当您在Github Action工作流中进行推送而不通知任何令牌时,GITHUB_TOKEN将用作默认值。
然而,根据Github官方文件
使用存储库的GITHUB_TOKEN执行任务时,由GITHUB_TOKEN触发的事件(workflow_dispatch和repository_dispatch除外)不会创建新的工作流运行。这可防止意外创建递归工作流运行。
解决方案建议如下:
如果确实要从工作流运行中触发工作流,可以使用个人访问令牌而不是GITHUB_TOKEN来触发需要令牌的事件。您需要创建个人访问令牌并将其存储为机密。
Here is how to create a Personal Access Token (PAT)
因此,在您的情况下,应该创建PAT并在工作流中使用它。
当使用actions/checkout通知PAT时,PAT应该为同一作业中的其他步骤保留,因此在第一个工作流中使用以下实现应该可以解决这个问题。

- name: Checkout repository
        uses: actions/checkout@v3
        with:
          fetch-depth: 0
          token: ${{ secrets.PAT }}

相关问题