You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

GitHub Action部署工作流触发异常,需调整匹配预期部署规则

GitHub Action工作流触发异常修复

问题背景

需要实现的部署逻辑:

  • 推送代码到development分支 → 部署测试环境
  • 向main分支提交Pull Request → 部署生产环境

当前配置下,推送代码到development分支时会同时触发main.yml和staging.yml两个工作流,不符合预期。

问题原因

当向development分支推送代码时,如果当前存在从development到main的Pull Request,GitHub会触发pull_request的synchronize事件(同步PR内容),因此同时触发了:

  • staging.yml:由push到development分支触发
  • main.yml:由PR同步事件触发

修改后的配置

main.yml

添加types: [opened]限制触发时机,仅在创建针对main的PR时执行生产环境部署,避免源分支更新时误触发:

on:
  pull_request:
    branches: 
      - main
    types: [opened]  # 仅响应PR创建事件,排除同步更新
name: Deployment on pull-request opened to main
jobs:
  web-deploy:  # 修正拼写错误:depoly → deploy
    name: Deploy to Production
    runs-on: ubuntu-latest
    steps:
      - name: Get latest code
        uses: actions/checkout@v2.3.2

      - name: Sync files to production
        uses: SamKirkland/FTP-Deploy-Action@4.0.0
        with:
          server: myside.com
          username: ${{ secrets.FTP_USERNAME }}
          password: ${{ secrets.FTP_PASSWORD }}
          server-dir: /production.myside.com/

staging.yml

修正名称拼写错误,保持原有触发逻辑不变:

on:
  push:
    branches:
      - development
name: Deployment on push to development
jobs:
  web-deploy:  # 修正拼写错误:depoly → deploy
    name: Deploy to Staging
    runs-on: ubuntu-latest
    steps:
      - name: Get latest code
        uses: actions/checkout@v2.3.2

      - name: Sync files to staging
        uses: SamKirkland/FTP-Deploy-Action@4.0.0
        with:
          server: myside.com
          username: ${{ secrets.FTP_USERNAME }}
          password: ${{ secrets.FTP_PASSWORD }}
          server-dir: /staging.myside.com/

可选调整(若需求为PR合并后部署)

如果你的真实需求是当PR合并到main分支时才部署生产环境,将main.yml的触发条件改为push到main分支即可:

on:
  push:
    branches: 
      - main
name: Deployment on push to main
jobs:
  web-deploy:
    name: Deploy to Production
    runs-on: ubuntu-latest
    steps:
      # 步骤同上

内容的提问来源于stack exchange,提问作者Maik Lowrey

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 05:13:24