--- name: iOS test screenshots on: pull_request: types: - closed branches: - main paths: - .github/workflows/ios.yml - ios/.swift-format - ios/**/*.swift - ios/**/*.xctestplan workflow_dispatch: permissions: {} jobs: test: if: github.event.pull_request.merged || github.event_name == 'workflow_dispatch' name: Screenshot tests runs-on: macos-15-xlarge env: SOURCE_PACKAGES_PATH: .spm TEST_ACCOUNT: ${{ secrets.IOS_TEST_ACCOUNT_NUMBER }} steps: - name: Checkout repository uses: actions/checkout@v4 - name: Setup project uses: ./.github/actions/ios/setup-project-toolchain - name: Add test account to config run: | sed -i "" \ "/HAS_TIME_ACCOUNT_NUMBER =/ s#= .*#= 1234123412341234#" \ UITests.xcconfig working-directory: ios/Configurations - name: Install zip run: | brew update brew install zip - name: Run screenshot tests run: | set -o pipefail && env NSUnbufferedIO=YES xcodebuild \ -project MullvadVPN.xcodeproj \ -scheme MullvadVPNScreenshotTests \ -testPlan MullvadVPNScreenshots \ -destination "platform=iOS Simulator,name=iPhone 16" \ -clonedSourcePackagesDirPath "$SOURCE_PACKAGES_PATH" \ -disableAutomaticPackageResolution \ -resultBundlePath xcode-test-report \ test 2>&1 | xcbeautify working-directory: ios/ - name: Archive test report if: always() run: zip -r test-report.zip ios/xcode-test-report.xcresult - name: Store test report artifact if: always() uses: actions/upload-artifact@v4 with: name: test-report path: test-report.zip