如何检查 github 中是否存在文件?



到目前为止,我知道如何处理条件的唯一一件事是检查变量是否是某个值,或者它是否以某个字符串开头。我不知道怎么做的是检查文件是否存在。

理想情况下,我想在我的yaml文件中做这样的事情:

- name: Creating file
if: "!test-path 'cat\cat.txt'"
echo "Cat doesnt exist creating now"

如果我不能想出一个解决方案,我将不得不在我的gradle文件中使用groovy,然后在我的yaml中使用gradlew调用它。我发现的另一种选择是使用市场,如https://github.com/marketplace/actions/check-file-existence

所述:

到目前为止,表达式还不支持这种开箱操作。

所以,你必须求助于检查你在GHA工作流程中使用的shell文件的存在,例如pwsh,sh,bash等。

参见jobs.<job_id>.steps[*].shell

根据默认/配置的shell,您将使用其各自的命令/工具来检查jobs.<job_id>.steps[*].run下的文件是否存在。

例如,在Bash中,您可以这样做:
- name: Check file existence
env:
FILE: file.txt
shell: bash
run: |
if [[ -f $FILE ]]; then
echo "$FILE exists!"
else
echo "$FILE does not exist!"
fi

至于直接在jobs.<job_id>.steps[*].if中使用某些东西,您需要有一些东西可以使用,例如通过环境变量或输出参数。

最新更新