GitHub Actions:如何按计划运行不同分支代码?解决默认分支限制
实现每日夜间运行main和develop分支的GitHub Actions工作流
你可以在默认分支(比如main)中创建一个工作流,通过矩阵策略同时指定main和develop两个分支,让定时任务触发时自动依次拉取两个分支的代码并执行运行逻辑。具体配置如下:
完整的workflow.yaml示例
name: 每日夜间运行多分支代码 on: # 配置每日凌晨2点(UTC时间,可根据时区调整)触发 schedule: - cron: '0 2 * * *' # 加上手动触发,方便测试 workflow_dispatch: jobs: run-branch-code: runs-on: ubuntu-latest # 定义要运行的分支矩阵 strategy: matrix: branch: [main, develop] # 即使某个分支运行失败,继续执行另一个分支的任务 fail-fast: false steps: - name: 拉取对应分支代码 uses: actions/checkout@v4 with: ref: ${{ matrix.branch }} - name: 运行分支代码(替换成你的实际命令) run: | # 这里写你需要执行的代码逻辑,比如安装依赖、运行测试、执行脚本等 echo "正在运行${{ matrix.branch }}分支的代码" # 示例:npm install && npm run test
关键说明
- 定时触发:
schedule字段里的cron表达式0 2 * * *代表UTC时间每天凌晨2点执行,如果你需要对应北京时间,得转换成UTC(比如北京时间凌晨2点对应UTC前一天的18点,即0 18 * * *)。 - 矩阵策略:通过
matrix.branch定义要覆盖的分支,工作流会自动为每个分支创建独立的任务,避免重复编写相同步骤。 - 分支拉取:在
actions/checkout步骤中,用ref: ${{ matrix.branch }}指定拉取当前矩阵对应的分支代码。 - 手动触发:加上
workflow_dispatch可以让你在GitHub页面手动触发工作流,方便调试。
内容的提问来源于stack exchange,提问作者Mar tix
相关产品推荐
相关产品推荐

