如果 Xcode 测试失败,如何将 GitHub Actions 设置为失败?

问题描述 投票:0回答:1

我需要使用 Pod 构建一个 Xcode 项目,运行测试,如果测试失败 => 工作流程失败。如果测试通过=>将报告上传到Codecov

目前,无论测试通过或失败,工作流程都会被标记为成功通过。

这是我的工作流程:

name: Test
on:
  pull_request:
    branches:
      - debug
jobs:
  xcode-tests:
    name: "Select OS"
    runs-on: macos-14-xlarge

    steps:
    - name: Checkout
      uses: actions/checkout@master

    - name: Select Xcode
      run: sudo xcode-select -switch /Applications/Xcode_15.2.app && /usr/bin/xcodebuild -version

    - name: Cache Cocoapods
      id: cache-cocoapods
      uses: actions/cache@v2
      with:
        path: Pods
        key: ${{ runner.os }}-pods-${{ hashFiles('**/Podfile.lock') }}
        restore-keys: |
          ${{ runner.os }}-pods-

    - name: Install Cocoapods
      run: pod install --repo-update

    - name: Build and Test
      env:
        scheme: ${{ 'ExampleApp' }}
        platform: ${{ 'iOS Simulator' }}
        device: ${{ 'iPhone 15' }}
        os_version: ${{ '17.4' }}
      run: xcodebuild test -workspace ExampleApp.xcworkspace -scheme ExampleApp -destination "platform=$platform,name=$device,OS=$os_version" -enableCodeCoverage YES build test | xcpretty --test

    - name: Upload coverage to Codecov
      uses: codecov/codecov-action@v4
      with:
        token: ${{ secrets.CODECOV_TOKEN }}
swift xcode github-actions
1个回答
0
投票

实现这一目标的最简单方法是

set -o pipefail

如果管道中的任何命令失败 - 整个管道都会失败 - 不仅仅是最后一个命令。

set -o pipefail && xcodebuild ... | xcpretty --test

© www.soinside.com 2019 - 2024. All rights reserved.