build: set up tuist #1381
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Tests | |
on: | |
push: | |
branches: | |
- main | |
pull_request: | |
jobs: | |
spm: | |
name: "iOS ${{ matrix.sdk }}" | |
runs-on: macos-14-xlarge | |
strategy: | |
fail-fast: false # Don’t fail-fast so that we get all snapshot test changes | |
matrix: | |
include: | |
- sdk: "15.4" | |
destination: platform=iOS Simulator,OS=15.4,name=iPhone SE (3rd generation) | |
installation_required: true | |
- sdk: "16.2" | |
destination: platform=iOS Simulator,OS=16.2,name=iPhone SE (3rd generation) | |
installation_required: true | |
- sdk: "17.2" | |
destination: platform=iOS Simulator,OS=17.2,name=iPhone SE (3rd generation) | |
# The iOS 17.2 SDK is pre-installed on the macOS 13 image. | |
# Attempting to install it will fail with an error. | |
installation_required: false | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: jdx/mise-action@v2 | |
- name: Read env | |
run: cat .github/workflows/env.properties >> $GITHUB_ENV | |
- name: Switch to Xcode ${{ env.xcode_version }} | |
run: sudo xcode-select -s /Applications/Xcode_${{ env.xcode_version }}.app | |
- name: Install xcodes | |
run: brew install aria2 xcodesorg/made/xcodes | |
- name: Install iOS ${{ matrix.sdk }} | |
if: ${{ matrix.installation_required }} | |
run: sudo xcodes runtimes install "iOS ${{ matrix.sdk }}" | |
- name: Install dependencies | |
run: tuist install --path SampleApp | |
- name: Build & Test | |
run: tuist test --path SampleApp -destination "${{ matrix.destination }}" UnitTests | |
- name: Package snapshot changes | |
if: ${{ failure() }} | |
run: | | |
git ls-files -mo BlueprintUICommonControls/Tests/Sources/Resources/ReferenceImages | xargs tar -cvf snapshot_changes_${{ matrix.sdk }}.tar | |
- name: Archive snapshot changes | |
uses: actions/upload-artifact@v4 | |
if: ${{ failure() }} | |
with: | |
name: snapshot_changes_${{ matrix.sdk }} | |
path: snapshot_changes_${{ matrix.sdk }}.tar |