GitHub行动:bash脚本grep匹配失败,但可在本地运行

时间:2020-10-22 17:56:59

标签: bash github-actions

我正在编写GitHub Action。在测试它时,要使一个简单的bash脚本正常工作很麻烦。

The bash script用于测试计算机上安装的Java版本是否与正则表达式匹配。如您在workflow descriptor中所见,正则表达式是bash脚本($1)的参数。

我分叉了this script的setup-java操作,测试通过了。

相关摘要

GitHub工作流程

Full file

    - 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 }}"

bash脚本

Full file

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

当前故障

GH Action Log

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上失败!

任何帮助将不胜感激。

0 个答案:

没有答案