CI #843
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: CI | |
on: | |
push: | |
branches: | |
- main | |
pull_request: | |
branches: | |
- "**" | |
schedule: | |
- cron: '3 3 * * 2' # 3:03 AM, every Tuesday | |
concurrency: | |
group: ci-${{ github.ref }} | |
cancel-in-progress: true | |
jobs: | |
lint-podspec: | |
name: Lint Podspec | |
runs-on: macos-latest | |
steps: | |
- name: Git Checkout | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 # required to be able to find Git tags | |
- name: Lint Podspec | |
run: | | |
set -eo pipefail | |
export LIB_VERSION=$(git describe --tags `git rev-list --tags --max-count=1`) | |
pod lib lint SwiftUIIntrospect.podspec --allow-warnings | |
ci: | |
name: ${{ matrix.platform[0] }} ${{ matrix.platform[1] }} | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
- platform: [iOS, 13] | |
runtime: iOS 13.7 | |
os: macos-12 | |
xcode: 14.2 | |
install: true | |
- platform: [iOS, 14] | |
runtime: iOS 14.5 | |
os: macos-13 | |
xcode: 14.3.1 | |
install: true | |
- platform: [iOS, 15] | |
runtime: iOS 15.5 | |
os: macos-13 | |
xcode: 15.0.1 | |
install: true | |
- platform: [iOS, 16] | |
runtime: iOS 16.4 | |
os: macos-13 | |
xcode: 14.3.1 | |
- platform: [iOS, 17] | |
runtime: iOS 17.0 | |
os: macos-13 | |
xcode: 15.0.1 | |
- platform: [tvOS, 13] | |
runtime: tvOS 13.4 | |
os: macos-12 | |
xcode: 14.2 | |
install: true | |
- platform: [tvOS, 14] | |
runtime: tvOS 14.5 | |
os: macos-13 | |
xcode: 14.3.1 | |
install: true | |
- platform: [tvOS, 15] | |
runtime: tvOS 15.4 | |
os: macos-13 | |
xcode: 15.0.1 | |
install: true | |
- platform: [tvOS, 16] | |
runtime: tvOS 16.4 | |
os: macos-13 | |
xcode: 15.0.1 | |
- platform: [tvOS, 17] | |
runtime: tvOS 17.0 | |
os: macos-13 | |
xcode: 15.0.1 | |
- platform: [watchOS, 7] | |
runtime: watchOS 7.4 | |
os: macos-13 | |
xcode: 14.3.1 | |
install: true | |
- platform: [watchOS, 8] | |
runtime: watchOS 8.5 | |
os: macos-13 | |
xcode: 15.0.1 | |
install: true | |
- platform: [watchOS, 9] | |
runtime: watchOS 9.4 | |
os: macos-13 | |
xcode: 14.3.1 | |
- platform: [watchOS, 10] | |
runtime: watchOS 10.0 | |
os: macos-13 | |
xcode: 15.0.1 | |
- platform: [macOS, 12] | |
runtime: macOS 12 | |
os: macos-12 | |
xcode: 14.2 | |
- platform: [macOS, 13] | |
runtime: macOS 13 | |
os: macos-13 | |
xcode: 15.0.1 | |
# FIXME: this currently hangs on CI | |
# - platform: [visionos, 1] | |
# runtime: visionOS 1.0-beta2 | |
# os: macos-13 | |
# xcode: 15.0 | |
# install: true | |
steps: | |
- name: Git Checkout | |
uses: actions/checkout@v4 | |
- name: Set up pkgx environment | |
uses: pkgxdev/setup@v1 | |
with: | |
+: fastlane xcodes | |
- name: Set environment variables | |
run: echo "SKIP_SLOW_FASTLANE_WARNING=1" >> $GITHUB_ENV | |
- name: Select Xcode version | |
run: sudo xcodes select ${{ matrix.xcode }} | |
- if: ${{ matrix.install }} | |
name: Install Required Runtime (${{ matrix.runtime }}) | |
uses: nick-fields/retry@v2 | |
with: | |
timeout_minutes: 15 | |
max_attempts: 3 | |
command: sudo xcodes runtimes install '${{ matrix.runtime }}' | |
- if: false | |
name: '[Debug] List Available Runtimes, Simulators, and Destinations' | |
run: | | |
xcrun simctl list | |
xcodebuild -scheme "SwiftUIIntrospect" -showdestinations | |
- if: ${{ matrix.platform[0] != 'watchOS' }} | |
name: Build Showcase | |
run: fastlane build platform:${{ matrix.platform[0] }} version:${{ matrix.platform[1] }} scheme:Showcase | |
- if: ${{ matrix.platform[0] == 'watchOS' }} | |
name: Build Library | |
run: fastlane build platform:${{ matrix.platform[0] }} version:${{ matrix.platform[1] }} scheme:SwiftUIIntrospect | |
- if: ${{ matrix.platform[0] != 'watchOS' }} | |
name: Run Tests | |
run: fastlane test platform:${{ matrix.platform[0] }} version:${{ matrix.platform[1] }} scheme:SwiftUIIntrospectTests configuration:Debug | |
- if: ${{ matrix.platform[0] == 'iOS' && matrix.platform[1] <= '16' }} | |
name: Run UI Tests | |
run: fastlane test platform:${{ matrix.platform[0] }} version:${{ matrix.platform[1] }} scheme:SwiftUIIntrospectUITests configuration:Debug |