name: Unit Tests on: workflow_dispatch: push: branches: [ develop ] pull_request: jobs: tests: name: Tests runs-on: macos-13 concurrency: # When running on develop, use the sha to allow all runs of this workflow to run concurrently. # Otherwise only allow a single run of this workflow on each branch, automatically cancelling older runs. group: ${{ github.ref == 'refs/heads/develop' && format('unit-tests-develop-{0}', github.sha) || format('unit-tests-{0}', github.ref) }} cancel-in-progress: true steps: - uses: nschloe/action-cached-lfs-checkout@v1.2.1 with: ref: ${{ github.event.pull_request.head.sha }} - uses: actions/cache@v3 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: Link to 16.4 Simulators run: | echo "Creating Runtimes folder if needed..." sudo mkdir -p /Library/Developer/CoreSimulator/Profiles/Runtimes echo "Creating symlink of the iOS 16.4 runtime..." sudo ln -s /Applications/Xcode_14.3.1.app/Contents/Developer/Platforms/iPhoneOS.platform/Library/Developer/CoreSimulator/Profiles/Runtimes/iOS.simruntime /Library/Developer/CoreSimulator/Profiles/Runtimes/iOS\ 16.4.simruntime - name: Run tests run: bundle exec fastlane unit_tests - name: Archive artifacts uses: actions/upload-artifact@v3 # We only care about artifcats if the tests fail if: failure() with: name: test-output path: fastlane/test_output retention-days: 1 if-no-files-found: ignore - name: Upload coverage to Codecov uses: codecov/codecov-action@v3 with: flags: unittests