GitHub Workflow执行grep无匹配时失败,如何避免步骤失败?
GitHub Workflow中grep步骤不终止的解决方案
首先纠正一个细节:正常情况下grep的返回码规则是匹配到内容返回0,未匹配到返回1,出现错误(如文件不存在)返回2,你描述的返回码情况可能写反了,但核心需求是让该步骤无论是否找到匹配内容,都不会导致整个Workflow终止,以下是两种实用解决方法:
方法1:修改命令返回码
在grep命令后追加|| true,强制整个命令执行后返回成功码0,这样步骤永远不会标记为失败:
- name: Analyze blabla run: grep -Ri --include \*.ts 'stringToBeSearched' ./tmp/bla > ./tmp/results.txt || true shell: bash
方法2:使用Workflow的continue-on-error属性
给该步骤添加continue-on-error: true配置,即使步骤返回非0码,Workflow也会继续执行后续步骤:
- name: Analyze blabla run: grep -Ri --include \*.ts 'stringToBeSearched' ./tmp/bla > ./tmp/results.txt shell: bash continue-on-error: true
两种方法的差异
- 方法1会让步骤始终显示为“成功”,适合不需要关注grep实际结果的场景
- 方法2会保留步骤的实际执行状态(失败但继续),适合后续步骤需要根据grep返回码做判断的场景
内容的提问来源于stack exchange,提问作者R. Campos
相关产品推荐
相关产品推荐

