自动创建的 PR 不会触发 Github 工作流程

Jen*_*ger 3 pull-request github-actions

我实现了一个每周运行一次的工作流程,更新所有项目依赖项,并使用工作流程令牌打开一个包含更改的 PR。

name: Automatic dependency update
"on":
  workflow_dispatch: null
  schedule:
  - cron: 0 0 * * 1
jobs:
  update:
    name: Update to latest versions
    runs-on:
    - self-hosted
    - default-runner
    steps:
    - name: Checkout Project
      uses: actions/checkout@v2
    - name: Install Java
      uses: actions/setup-java@v2
    - name: Update Versions
      run: |
        ./gradlew useLatestVersions --info 
    - name: Commit and open PR
      uses: peter-evans/create-pull-request@v3
      with:
        commit-message: Update to latest versions
        committer: Update Bot <workflow@xxx.com>
        branch: auto-dependency-update
        base: dev
        delete-branch: true
        title: Automatic dependency update
        draft: false
        team-reviewers: XX/teamname
        body: Automated gradle dependency updates
Run Code Online (Sandbox Code Playgroud)

问题是,对于此 PR,不会触发正常工作流程(PR 合并所必需的)。

name: Build pipeline
"on":
  workflow_dispatch: null
  pull_request:
    branches:
    - dev
  push:
    branches:
    - '!master'
    - '**'
defaults:
  run:
    shell: bash
jobs:
  build:
    name: Compile
    runs-on:
    - self-hosted
    - default-runner
    steps:
    - name: Checkout code
      uses: actions/checkout@v2
    - uses: actions/setup-java@v2
    - name: Compile code
      run: |
        ./gradlew classes testClasses --info   
# ...
Run Code Online (Sandbox Code Playgroud)

当我手动将某些内容推送到该分支时,就会触发工作流程。但是,当我将以下步骤添加到版本更新工作流程时,工作流程也不会被触发。

那我能做什么呢?我不想显式地触发工作流程(例如使用benc-uk/workflow-dispatch@v1)以保持更新机制尽可能通用。

Gui*_*urd 5

根据官方文档

当您使用存储库GITHUB_TOKEN执行任务时,触发的事件GITHUB_TOKEN 不会创建新的工作流运行

这可以防止您意外创建递归工作流运行。例如,如果工作流运行使用存储库的 推送代码GITHUB_TOKEN,则即使存储库包含配置为在推送事件发生时运行的工作流,新工作流也不会运行。

有关更多信息,请参阅“使用 GITHUB_TOKEN 进行身份验证”。

您用于打开 PR 的操作还在“输入”部分中指出您GITHUB_TOKEN也可以更改范围,或使用PAT

GITHUB_TOKEN (权限contents: writepull-requests: write)或存储库范围的个人访问令牌 (PAT)

解决方案

因此,您只需使用密钥tokenpeter-evans/create-pull-request操作添加输入,即可从另一个工作流程触发工作流程。