如何通过workflow_dispatch传参选择触发指定可复用Workflow
实现通过参数选择触发指定可复用Workflow
你可以通过在workflow_dispatch中添加自定义输入参数,再给每个触发job加上条件判断来实现需求,具体操作如下:
1. 定义workflow触发参数
在on.workflow_dispatch节点下添加两个布尔型输入参数,让你在手动触发时可以选择是否运行对应的CI流程:
on: workflow_dispatch: inputs: trigger_java_ci: description: '是否触发Java CI流程' required: true type: boolean default: true trigger_database_ci: description: '是否触发Database CI流程' required: true type: boolean default: true
2. 给触发job添加运行条件
给每个调用可复用Workflow的job加上if条件判断,只有当对应的输入参数为true时,该job才会执行:
jobs: trigger_javaci: if: ${{ inputs.trigger_java_ci }} uses: abc/github-actions-shared-workflow/.github/workflows/javaci.yml@main secrets: Workflow2_PAT_TOKEN_GITHUB: ${{ secrets.Workflow2_PAT_TOKEN_GITHUB }} trigger_databaseci: if: ${{ inputs.trigger_database_ci }} uses: abc/github-actions-shared-workflow/.github/workflows/databaseci.yml@main secrets: Workflow2_PAT_TOKEN_GITHUB: ${{ secrets.Workflow2_PAT_TOKEN_GITHUB }}
完整的调用Workflow代码
整合后的完整代码如下:
name: caller workflow on: workflow_dispatch: inputs: trigger_java_ci: description: '是否触发Java CI流程' required: true type: boolean default: true trigger_database_ci: description: '是否触发Database CI流程' required: true type: boolean default: true jobs: trigger_javaci: if: ${{ inputs.trigger_java_ci }} uses: abc/github-actions-shared-workflow/.github/workflows/javaci.yml@main secrets: Workflow2_PAT_TOKEN_GITHUB: ${{ secrets.Workflow2_PAT_TOKEN_GITHUB }} trigger_databaseci: if: ${{ inputs.trigger_database_ci }} uses: abc/github-actions-shared-workflow/.github/workflows/databaseci.yml@main secrets: Workflow2_PAT_TOKEN_GITHUB: ${{ secrets.Workflow2_PAT_TOKEN_GITHUB }}
设置完成后,手动触发该Workflow时会显示两个勾选框,你可以自由选择只触发Java CI、只触发Database CI,或者同时触发两者。
内容的提问来源于stack exchange,提问作者Shanmuga Nathan
相关产品推荐
相关产品推荐

