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

10
当我将一些代码推送到master时,会运行一个工作流文件。该文件构建出相关的构件,并将代码推送到另一个名为production的分支。
另一个工作流文件长这个样子,当有任何推送发生在production时它就会运行。
name: Deploy

on:
  push:
    branches:
      - production

jobs:

# Do something

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

但此工作流文件从未被运行。我期望当此工作流文件监听主分支上的推送事件完成时,该文件应运行,就像之前的文件将代码推送到production分支一样。我该如何确保发生这种情况?


可能是重复的问题:https://dev59.com/ILnoa4cB1Zd3GeqPRX3r - riQQ
2个回答

8
在工作流中将代码推送到GitHub时,需要使用个人访问令牌(PAT)而不是默认的 GITHUB_TOKEN。请注意:GITHUB_TOKEN 无法触发新的工作流运行。例如,如果工作流运行使用存储库的 GITHUB_TOKEN 推送代码,则即使存储库配置为在发生 push 事件时运行工作流,也不会运行新的工作流。如果您想要从工作流运行中触发工作流,可以使用个人访问令牌触发事件。您需要创建一个个人访问令牌并将其存储为密钥。详情请参阅:https://docs.github.com/zh-cn/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

0

如果其他人遇到这个问题,实际上是git commit出现了错误。 '||' 捕捉到错误,然后只是将错误信息打印到日志中,所以操作甚至都没有执行 git push。

  - name: Scrape webpage and download file
    run: | 
      python ./python/scraper.py
      git config user.name github-actions
      git config user.email email@email.com
      git commit -am "Auto Generated" || echo "There is nothing to commit"
      git push

如果你有新的问题,请点击提问按钮进行提问。如果有需要提供背景信息,请包含这个问题的链接。- 来自评论 - olegtaranenko
再仔细看一下[答案]。这似乎与当前问题无关,当前问题是关于一个动作未被触发的情况。没有任何迹象表明原帖作者甚至在调用git commit - camille

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接