Skip to content

Improve some docs

Improve some docs #40

name: iOS Build and Test
permissions:
contents: read
pull-requests: write
checks: write
on:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]
jobs:
test:
name: Run iOS Tests
runs-on: macos-latest
timeout-minutes: 30
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set Xcode version
run: sudo xcode-select -s /Applications/Xcode_26.0.1.app
- name: Use the exact SPM lockfile
run: |
# Ensure we use the committed lockfile, do not re-resolve
xcodebuild -resolvePackageDependencies \
-project SnapSafe.xcodeproj \
-scheme SnapSafe
- name: Set up Ruby
uses: ruby/setup-ruby@v1
with:
bundler-cache: true
ruby-version: '3.4'
- name: Install ruby dependencies for fastlane
run: bundle install
- name: Disable macro validation
run: |
defaults write com.apple.dt.Xcode IDESkipMacroFingerprintValidation -bool YES
- name: Run tests
run: |
bundle exec fastlane test
- name: Upload test results
if: always()
uses: actions/upload-artifact@v4
with:
name: test-results
path: |
fastlane/test_output/
# 'fastlane scan' creates these
fastlane/test_output/*.junit
fastlane/test_output/*.html
# xcodebuild creates this
fastlane/test_output/*.xcresult
retention-days: 30
- name: Publish test results
if: always()
uses: EnricoMi/publish-unit-test-result-action/macos@v2
with:
files: |
fastlane/test_output/*.junit
check_name: iOS Test Results