如何在推送到另一个分支时触发 Github Actions 工作流程?

Roh*_*ngh 11 git workflow continuous-deployment github-actions

当我将一些代码推送到 时master,会运行一个工作流程文件。该文件构建工件并将代码推送到另一个分支production

另一个工作流文件如下所示,设置为在任何推送发生时运行production

name: Deploy

on:
  push:
    branches:
      - production

jobs:

# Do something

  deploy:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@master

Run Code Online (Sandbox Code Playgroud)

但这个工作流程文件永远不会运行。我希望当工作流文件监听 master 上的推送事件完成后,该文件应该像前一个文件将代码推送到production分支一样运行。我如何确保这种情况发生?

riQ*_*iQQ 11

您需要使用个人访问令牌(PAT)来将代码推送到工作流程中,而不是默认的GITHUB_TOKEN

注意:您无法使用GITHUB_TOKEN

例如,如果工作流运行使用存储库的 推送代码GITHUB_TOKEN,则即使存储库包含配置为在事件发生时运行的工作流,新工作流也不会运行push

如果您想从工作流程运行触发工作流程,您可以使用个人访问令牌触发该事件。您需要创建个人访问令牌并将其存储为秘密。

https://docs.github.com/en/free-pro-team@latest/actions/reference/events-that-trigger-workflows#triggering-new-workflows-using-a-personal-access-token

name: Push to master

on:
  push:
    branches:
      - master

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
    # the checkout action persists the passed credentials by default
    # subsequent git commands will pick them up automatically
    - uses: actions/checkout@v2
      with:
        token: ${{secrets.PAT}}
    - run: |
        # do something
        git push
Run Code Online (Sandbox Code Playgroud)