能否在GitHub Actions工作流的条件语句中调用另一个工作流文件?
GitHub Actions 条件调用工作流问题
我参考了不少相关回答,但都没法满足需求——这些方案都是直接调用另一个工作流,比如通过workflow_run触发:
on: workflow_run: workflows: ["Build"] types: - completed
这种方式会在目标工作流完成/成功时触发,但我需要的是在同一个工作流内根据条件来调用另一个工作流。目前我的代码错误处理做得不错,应该能稳定执行。
假设存在两个工作流文件:
workflow_1.ymlworkflow_2.yml
我知道可以通过以下方式直接从workflow_1.yml调用workflow_2.yml:
- name: 调用另一个工作流 uses: ./.github/workflows/workflow_2.yml
但我能不能通过类似下面的方式,在Shell脚本的条件判断里调用workflow_2.yml?
jobs: update_fork: runs-on: ubuntu-latest steps: - name: 检出复刻仓库 uses: actions/checkout@v3 # 其他步骤,用于让condition变为true - name: 条件调用工作流 run: | # 其他代码 if [ $condition == "true" ]; then # 这里调用workflow_2.yml fi
编辑1
我尝试在步骤中添加带if条件的uses语句:
- if: ${{ steps.fetch.outputs.build_app == 'true' }} uses: ./.github/workflows/android_build.yml
但这种方式行不通,持续抛出错误:
Error: Can't find 'action.yml', 'action.yaml' or 'Dockerfile' under '/home/runner/work/wftest/wftest/.github/workflows/android_build.yml'. Did you forget to run actions/checkout before running your local action?
现在我明白问题所在了:不能在单个步骤中调用另一个工作流,必须通过另一个job来实现。
内容的提问来源于stack exchange,提问作者theycallmepix
相关产品推荐
相关产品推荐

