如何合并GitHub Actions中两个条件化的制品下载步骤
合并GitHub Actions制品下载步骤的实现方案
你可以通过GitHub Actions的条件表达式动态控制run_number参数的传递,同时自动生成对应步骤名称,从而把两个步骤合并为一个:
- name: Download Artifact ${{ inputs.my_artifact_version == 'latest' && 'Latest Version' || 'Version [' + inputs.my_artifact_version + ']' }} uses: dawidd6/action-download-artifact@v2 with: workflow: my_backup_workflow.yml workflow_conclusion: success branch: main run_number: ${{ inputs.my_artifact_version != 'latest' && inputs.my_artifact_version || '' }} name: ${{ env.MY_BACKUP_FOLDER }} path: output if_no_artifact_found: fail
关键细节说明:
- 动态步骤名称:通过三元表达式判断版本是否为
latest,自动生成对应名称,保留原有的可读性。 - 条件传递参数:当
inputs.my_artifact_version不等于latest时,将其值作为run_number传递;否则传递空字符串。GitHub Actions会自动忽略空值参数,效果和原代码中不声明该参数完全一致。
合并后的步骤功能与原两个独立步骤完全等价,既实现了逻辑判断,又简化了工作流代码结构。
内容的提问来源于stack exchange,提问作者James
相关产品推荐
相关产品推荐

