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

如何解决Github Actions中Vercel部署前Cypress被触发跳过的问题

问题根源

你遇到的跳过记录是因为当前的触发规则会响应所有deployment_status事件:Vercel启动部署时会先推送queued、in_progress状态的部署事件,此时GitHub Actions会直接创建工作流实例,再根据job级别的if条件判断是否执行,不符合条件就会留下被跳过的运行记录。

解决方案

把过滤逻辑从job级别提前到工作流触发条件层面,不符合状态的事件直接不会创建工作流实例,自然就不会生成那条跳过的记录。

修改后的配置示例

name: Cypress Testing
on:
  deployment_status:
    # 仅在部署成功且是Vercel发起的部署时才触发工作流
    if: github.event.deployment_status.state == 'success' && contains(github.event.deployment_status.creator.login, 'vercel')
jobs:
  e2e:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v2
      - name: Setup npmrc
        run: echo "//registry.npmjs.org/:_authToken=${{secrets.NPM_AUTH_TOKEN}}" > .npmrc
      - name: Setup npm package
        run: npm init -y && npm install
      - name: Setup node 12
        uses: actions/setup-node@v1
        with:
          node-version: 12.x
      - name: Run Cypress
        uses: cypress-io/github-action@v2
        env:
          CYPRESS_BASE_URL: ${{ github.event.deployment_status.target_url }}

可选补充规则

如果只需要针对预览环境跑测试、不需要在生产环境部署时触发测试,可以在触发条件的if判断里额外加环境校验:

if: github.event.deployment_status.state == 'success' && contains(github.event.deployment_status.creator.login, 'vercel') && github.event.deployment_status.environment == 'Preview'

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 12:18:05