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
我有一个 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