如何为GitHub Actions定时任务设默认分支,保留手动选分支权限?
解决方案:定时任务固定分支+手动触发可自选分支
你可以通过上下文变量条件判断实现这个需求,核心是根据触发事件类型动态设置actions/checkout的ref参数:
- 定时触发时指定固定分支
- 手动触发时使用你选择的分支
完整配置示例
on: schedule: - cron: '0 2 * * *' workflow_dispatch: jobs: your-job-name: runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v4 with: # 定时触发用main分支,手动触发用选择的分支 ref: ${{ github.event_name == 'schedule' && 'main' || github.ref }} # 后续执行步骤...
关键逻辑说明
${{ github.event_name }}:GitHub Actions内置上下文变量,用于识别当前触发任务的事件类型github.ref:手动触发时,该变量自动对应你选择的分支引用(比如refs/heads/feature-branch),无需额外配置- 条件表达式
github.event_name == 'schedule' && 'main' || github.ref:如果是定时触发则返回指定分支(这里是main),否则返回手动选择的分支
如果需要将定时任务的固定分支改为其他分支(比如prod),直接替换main为目标分支名即可。
内容的提问来源于stack exchange,提问作者Szabolcs
相关产品推荐
相关产品推荐

