我的 Github Actions YAML 中有以下内容。当第一次检查评估为真时,它运行良好,
- name: Check version is up to date
run: sh -c "
(git diff --quiet HEAD^ VERSION && git diff --quiet HEAD^ src/**) || \
! git diff --quiet HEAD^ src/VERSION
"
但是当它评估为 false 时,后面的部分给了我
sh: 1: !: not found
仅在 GitHub Actions 中。它在我的电脑上运行良好。我不明白这是怎么回事,因为我非常明确地提到了 shell。
我认为这是一个格式错误/怪癖。如果我写的话
run: |
sh -c "
(git diff --quiet HEAD^ VERSION && git diff --quiet HEAD^ src/**) || \
! git diff --quiet HEAD^ src/VERSION
"
它有效。