我正在编写GitHub Action。在测试它时,要使一个简单的bash脚本正常工作很麻烦。
The bash script用于测试计算机上安装的Java版本是否与正则表达式匹配。如您在workflow descriptor中所见,正则表达式是bash脚本($1
)的参数。
我分叉了this script的setup-java操作,测试通过了。
- name: Verify Java 8
if: runner.os != 'windows'
run: __tests__/verify-java.sh "Zulu.*1\.8\.0_265" "${{ steps.setup-java-sdkman.outputs.path }}" "${{ steps.setup-java-sdkman.outputs.version }}"
java_version="$(java -version 2>&1)"
echo "Found java version: $java_version"
echo "Grepping for '$1'"
if [ -z "$(echo $java_version | grep "$1")" ]; then
echo "::error::Unexpected version"
exit 1
fi
Run __tests__/verify-java.sh "Zulu.*1\.8\.0_265" "/opt/hostedtoolcache/java-8.0.265-zulu/1.0.0/x64" "8.0.265-zulu"
Found java version: openjdk version "1.8.0_265"
OpenJDK Runtime Environment (Zulu 8.48.0.53-CA-linux64) (build 1.8.0_265-b11)
OpenJDK 64-Bit Server VM (Zulu 8.48.0.53-CA-linux64) (build 25.265-b11, mixed mode)
Grepping for 'Zulu.*1\.8\.0_265'
Error: Unexpected version
Error: Process completed with exit code 1.
我在这个简单的问题上花了几个小时。当我在Mac上本地运行该脚本时,它可以工作...我什至启动了一个在线Linux shell在Ubuntu上进行尝试,它也可以工作...所以我不知道为什么它只能在GitHub Actions上失败!>
任何帮助将不胜感激。