Files
letro-ios/.github/workflows/unit_tests.yml
Mauro Romito 72fa104fca run integration tests on gh ci
possible fix

possible fix

Revert "possible fix"

This reverts commit 6484648153bf8f05485050f544b136e6ca9f0be9.

Revert "possible fix"

This reverts commit abb3a58c630bb0abab7c86a31be022496d4f3b4c.

possible fix

possible solution using ui interrupt monitor

Revert "possible solution using ui interrupt monitor"

This reverts commit ed28c85a37744e615c4bc464b3e8962d8c953be9.

possible fix

Revert "possible fix"

This reverts commit 43039e73c1e1b70493f2e22aa20f925257d2e6de.

fix
2025-04-29 13:42:09 +02:00

88 lines
3.2 KiB
YAML

name: Unit Tests
on:
workflow_dispatch:
push:
branches: [ develop ]
pull_request:
jobs:
tests:
name: Tests
runs-on: macos-15
concurrency:
# Only allow a single run of this workflow on each branch, automatically cancelling older runs.
group: ${{ format('unit-tests-{0}', github.ref) }}
cancel-in-progress: true
steps:
# While fastlane has its own way of selecting Xcode, will only work inside fastlane, so we need to set it globally to allow other actions like xcresultparser to use the same Xcode version.
- name: Select Xcode 16.3
run: sudo xcode-select -s /Applications/Xcode_16.3.app
- uses: nschloe/action-cached-lfs-checkout@f46300cd8952454b9f0a21a3d133d4bd5684cfc2 #v1.2.3
- uses: actions/cache@v4
with:
path: vendor/bundle
key: ${{ runner.os }}-gems-${{ hashFiles('**/Gemfile.lock') }}
restore-keys: |
${{ runner.os }}-gems-
- name: Setup environment
run:
source ci_scripts/ci_common.sh && setup_github_actions_environment
- name: SwiftFormat
run:
swiftformat --lint .
- name: Run tests
run: bundle exec fastlane unit_tests
- name: Zip results # for faster upload
if: failure()
working-directory: fastlane/test_output
run: zip -r UnitTests.zip UnitTests.xcresult PreviewTests.xcresult
- name: Archive artifacts
uses: actions/upload-artifact@v4
# We only care about artefacts if the tests fail
if: failure()
with:
name: Results
path: fastlane/test_output/UnitTests.zip
retention-days: 1
if-no-files-found: ignore
- name: Collect coverage
run: |
xcresultparser -q -o cobertura -t ElementX -p $(pwd) fastlane/test_output/UnitTests.xcresult > fastlane/test_output/unit-cobertura.xml
xcresultparser -q -o cobertura -t ElementX -p $(pwd) fastlane/test_output/PreviewTests.xcresult > fastlane/test_output/preview-cobertura.xml
- name: Upload coverage to Codecov
if: ${{ github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository }} # Skip in forks
uses: codecov/codecov-action@ab904c41d6ece82784817410c45d8b8c02684457 # v3.1.6
with:
fail_ci_if_error: true
token: ${{ secrets.CODECOV_TOKEN }}
flags: unittests
- name: Collect test results
if: ${{ !cancelled() }}
run: |
xcresultparser -q -o junit -p $(pwd) fastlane/test_output/UnitTests.xcresult > fastlane/test_output/unit-junit.xml
xcresultparser -q -o junit -p $(pwd) fastlane/test_output/PreviewTests.xcresult > fastlane/test_output/preview-junit.xml
- name: Upload test results to Codecov
if: ${{ !cancelled() && (github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository) }}
uses: codecov/test-results-action@f2dba722c67b86c6caa034178c6e4d35335f6706 #v1.1.0
continue-on-error: true
with:
fail_ci_if_error: false
token: ${{ secrets.CODECOV_TOKEN }}
flags: unittests