首页 > 解决方案 > 为什么两个 github 工作流在配置为仅在各自的分支上运行时都在运行?

问题描述

我有两个工作流程,develop.yml并且production.yml.

开发配置为在以下位置运行develop

name: Develop
on:
  push:
  workflow_dispatch:
    branches:
      - develop
jobs:
  perform-linting:
    runs-on: windows-latest
    steps:
      - name: Checkout repository code
        uses: actions/checkout@v2
      - name: Setup node
        uses: actions/setup-node@v2
        with:
          node-version: "14.x"
      - name: Install base dependencies
        run: npm install
      - name: Bootstrap
        run: lerna bootstrap
      - name: Run ESLint
        run: lerna run lint

并且生产配置为在以下位置运行master

name: Production
on:
  push:
  workflow_dispatch:
    branches:
      - master
jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout repo code
        uses: actions/checkout@v2
      - name: Deploy to Heroku
        uses: akhileshns/heroku-deploy@v3.12.12
        with:
          heroku_api_key: ${{secrets.HEROKU_API_KEY}}
          heroku_app_name: ${{secrets.HEROKU_APP_NAME}}
          heroku_email: ${{secrets.HEROKU_EMAIL}}

但是,将更改推送到developmaster将触发这两个工作流运行:

在此处输入图像描述

在上述场景中,为什么我只推送开发时正在运行生产?

标签: github-actions

解决方案


您的配置有效地表示“在所有推送上运行,只允许在特定分支上手动调度”(尽管后者似乎不是一个选项)。

你可能的意思是:

开发.yml

name: Develop
on:
  push:
    branches:
      - develop
  workflow_dispatch:
   

生产.yml

name: Production
on:
  push:
    branches:
      - master
  workflow_dispatch:
  

推荐阅读