如何在GitHub Actions中检查文件是否不存在?
在GitHub Actions YAML中检查文件是否存在
直接用内置表达式(推荐)
GitHub Actions自带exists()函数,能直接在if条件里判断文件/目录是否存在,不用额外依赖。你的需求可以这么写:
- name: 创建文件 if: "!exists('cat/cat.txt')" run: echo "Cat文件不存在,现在创建"
路径用正斜杠即可,Windows环境的Runner也能正常识别;如果必须使用反斜杠,记得写成cat\\cat.txt做转义处理。
用第三方专用Action
GitHub Marketplace有现成的检查文件存在的Action,你可以先执行检查步骤,再根据其输出结果决定后续操作:
- name: 检查cat.txt是否存在 id: check_cat_file uses: 市场中的Check File Existence Action with: path: 'cat/cat.txt' - name: 创建文件 if: "steps.check_cat_file.outputs.exists == 'false'" run: echo "Cat文件不存在,现在创建"
用Gradle/Groovy兜底
如果上面的方法都不合需求,就按你计划的在Gradle里编写逻辑:
task checkAndCreateCatFile { doLast { def targetFile = file('cat/cat.txt') if (!targetFile.exists()) { println "Cat文件不存在,现在创建" targetFile.parentFile.mkdirs() // 按需创建父目录 targetFile.createNewFile() } } }
然后在YAML中调用Gradle任务:
- name: 执行Gradle文件检查任务 run: ./gradlew checkAndCreateCatFile
内容的提问来源于stack exchange,提问作者DevopitionBro
相关产品推荐
相关产品推荐

