Xcode 测试失败并未失败 Github 操作管道

Xcode test failing does not failed Github action pipeline

我有一个 Github 动作管道:

name: default

on: [push]

jobs:
  build:

    runs-on: macOS-latest

    steps:
    - uses: actions/checkout@v1
    - name: CocoaPod Install
      run: pod install
    - name: Force xcode 11
      run: sudo xcode-select -switch /Applications/Xcode_11.1.app
    - name: Test
      run: ./pipelines.sh test
    - name: Save report
      uses: actions/upload-artifact@v1
      with:
        name: test_report
        path: ./Test

还有一个脚本Shell:

function test
{
    xcodebuild \
       -workspace MyApp.xcworkspace \
       -scheme DEBUG\ -\ MyApp \
       -destination 'platform=iOS Simulator,name=iPhone 11' \
       test
}

我的问题是当我 运行 我的管道测试失败时,管道被标记为已通过,这是一个问题...

我也检查过 fastlane,失败的测试不会使管道失败。

当测试未通过时,如何使我的管道成为 FAIL?

参考 fastlane 的屏幕截图:

您需要 return 一个非零值才能使该步骤失败。 尝试将其添加到 xcodebuild 命令中。

xcodebuild -... || exit 1

下面的问题除此之外还有一些其他的解决方法。 How to get the return value of xcodebuild?

更新: 根据您的评论,您希望之后的步骤能够完成,您可以执行以下操作。

更改脚本以设置包含 xcodebuild 命令结果的输出。

    xcodebuild \
       -workspace MyApp.xcworkspace \
       -scheme DEBUG\ -\ MyApp \
       -destination 'platform=iOS Simulator,name=iPhone 11' \
       test
    echo "::set-output name=result::$?"

在执行此脚本的步骤中添加一个 id

    - name: Test
      id: xcodebuild
      run: ./pipelines.sh test

在工作流程结束时,您可以检查测试是否未通过以及工作流程是否失败。

      - name: Check Tests Passed
        if: steps.xcodebuild.outputs.result != 0
        run: exit 1