Skip to content

fix ui tests

fix ui tests #661

Workflow file for this run

name: Build and Analyze
on:
pull_request:
paths:
- 'SlimHUD/**'
- 'SlimHUDTests/**'
- 'SlimHUDUITests/**'
push:
paths:
- 'SlimHUD/**'
- 'SlimHUDTests/**'
- 'SlimHUDUITests/**'
branches:
- develop
workflow_dispatch:
concurrency:
group: "unitests${{ github.head_ref || github.run_id }}"
cancel-in-progress: true
env:
test-results-check-name: Test results
jobs:
unit-tests-run:
runs-on: macos-12
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Switch Xcode version
run: sudo xcode-select -s "/Applications/Xcode_14.2.app"
- name: Build and Test
continue-on-error: true
id: run-tests
run: |
xcodebuild clean test \
-project SlimHUD.xcodeproj \
-scheme SlimHUD-Unit-Only \
-destination platform=macOS \
-resultBundlePath TestResults \
-test-iterations 20 -retry-tests-on-failure \
CODE_SIGNING_ALLOWED=NO || exit 1
- name: Post test results
uses: AlexPerathoner/xcresulttool-alternative-action@v0.2
if: ${{ (success() || failure()) && github.event_name == 'pull_request' }}
with:
path: "TestResults.xcresult"
title: ${{ env.test-results-check-name }}
upload-bundles: never
show-code-coverage: true
- name: Generate coverage report
run: |
bash ./Configuration/xccov-to-sonarqube-generic.sh TestResults.xcresult/ > sonarqube-generic-coverage.xml
sed -i '' "s/projectVersion=1.0/projectVersion=$(xcrun agvtool what-version -terse) /g" sonar-project.properties
- name: Save coverage report
uses: actions/upload-artifact@master
with:
name: sonarqube-generic-coverage
path: sonarqube-generic-coverage.xml
- name: Checkout
uses: actions/checkout@v3
with:
# Disabling shallow clone is recommended for improving relevancy of reporting
fetch-depth: 0
- name: Replace version
run: sed -i '' "s/projectVersion=1.0/projectVersion=$(xcrun agvtool what-version -terse)/g" sonar-project.properties
- uses: actions/download-artifact@master # download all previously generated artifacts
with:
name: sonarqube-generic-coverage
- name: Setup sonarqube
uses: warchant/setup-sonar-scanner@v3
- name: Run sonarqube
run: |
sonar-scanner
- name: Check failures
# Flaky tests make the output status generated by xcresulttool not reliable. Using xcodebuild's status directly.
# This means that this workflow could and will fail if some test don't pass, even after retrying them
if: steps.run-tests.outcome != 'success'
run: exit 1