如何为GitHub Actions的不同Job配置不同触发器?
为GitHub Actions工作流的不同Job设置独立触发器
要实现tests Job在push事件自动运行,build Job仅通过手动触发(workflow_dispatch)运行,你需要调整工作流的触发器配置,并给build Job添加运行条件,同时保留build对tests的依赖(确保构建仅在测试通过后执行)。
修改后的完整工作流文件如下:
name: Tests + Build 😎 # 同时支持push事件和手动触发 on: push: workflow_dispatch: jobs: tests: name: Test my project 🧪 runs-on: ubuntu-latest strategy: fail-fast: false matrix: unityVersion: - 2021.3.4f1 steps: # Checkout (without LFS) # Git LFS # Cache # Run Unity Test (Editor and Play mode) build: name: Build my project ✨ # 仅在手动触发时运行 if: ${{ github.event_name == 'workflow_dispatch' }} needs: tests runs-on: ubuntu-latest strategy: fail-fast: false matrix: unityVersion: - 2021.3.4f1 steps: # Checkout (without LFS) # Git LFS # Cache # Build # Output
关键修改说明:
- 触发器配置:将
on字段从仅push改为同时包含push和workflow_dispatch,让工作流既支持代码推送时自动触发,也支持手动触发。 - build Job运行条件:给
buildJob添加if: ${{ github.event_name == 'workflow_dispatch' }},确保该Job仅在手动触发时执行,避免自动构建产生不必要的缓存占用。 - 依赖关系保留:保留
needs: tests,确保手动触发构建时会先执行测试,只有测试通过后才启动构建流程,保障代码质量。
设置后的效果:
- 代码推送(
push)时,仅自动运行testsJob,不会触发构建; - 需要构建项目时,通过GitHub仓库的Actions页面手动触发工作流,此时会先执行测试,测试通过后自动完成构建。
内容的提问来源于stack exchange,提问作者Pedro Marangon
相关产品推荐
相关产品推荐

