Update CI to build for visionOS (#2287) #5
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: [ master ] | |
pull_request: | |
branches: [ master ] | |
jobs: | |
build-package-no-visionOS: | |
name: "Build Package" | |
runs-on: macos-13 | |
strategy: | |
fail-fast: false | |
matrix: | |
xcode: | |
- '14.1' # Swift 5.7 | |
- '14.3' # Swift 5.8 | |
steps: | |
- uses: actions/checkout@v2 | |
- uses: ./.github/actions/setup | |
with: | |
xcode: ${{ matrix.xcode }} | |
- name: Build Package | |
# Only Xcode 15.2 and later support visionOS, so exclude it on earlier versions. | |
run: SKIP_VISION_OS=true bundle exec rake build:package:all | |
build-package: | |
name: "Build Package" | |
runs-on: macos-13 | |
strategy: | |
fail-fast: false | |
matrix: | |
xcode: | |
- '15.2' # Swift 5.9 | |
steps: | |
- uses: actions/checkout@v2 | |
- uses: ./.github/actions/setup | |
with: | |
xcode: ${{ matrix.xcode }} | |
- name: Build Package | |
run: bundle exec rake build:package:all | |
build-example: | |
name: "Build Example App" | |
runs-on: macos-13 | |
steps: | |
- uses: actions/checkout@v2 | |
- uses: ./.github/actions/setup | |
with: | |
xcode: '15.2' # Swift 5.9 | |
- name: Build Example | |
run: bundle exec rake build:example:all | |
test-package: | |
name: "Test Package" | |
runs-on: macos-13 | |
steps: | |
- uses: actions/checkout@v2 | |
- uses: ./.github/actions/setup | |
with: | |
xcode: '15.2' # Swift 5.9 | |
- name: Test Package | |
run: bundle exec rake test:package | |
- name: Process test artifacts | |
if: always() | |
run: bundle exec rake test:process | |
- name: Upload artifacts | |
if: always() | |
uses: actions/upload-artifact@v2 | |
with: | |
name: TestArtifacts | |
path: Tests/Artifacts | |
emerge-upload: | |
name: "Emerge Upload" | |
runs-on: macos-13 | |
steps: | |
- uses: actions/checkout@v2 | |
- uses: ./.github/actions/setup | |
- name: Build Package | |
run: bundle exec rake emerge:upload | |
env: | |
EMERGE_API_TOKEN: ${{ secrets.EMERGE_API_TOKEN }} | |
PR_NUMBER: ${{ github.event.number }} | |
build-xcframework-minimum-supported-version: | |
name: "Build XCFramework" | |
runs-on: macos-13 | |
strategy: | |
matrix: | |
xcode: | |
# XCFrameworks are forwards-compatible but not backwards-compatible. | |
# The Xcode version we use for this job is that oldest Xcode version that | |
# will be able to use these XCFrameworks and the lottie-spm package. | |
# This should be the minimum Xcode version permitted by the App Store. | |
# As of April 2023, this is Xcode 14.1: https://developer.apple.com/news/?id=jd9wcyov | |
# - TODO: Once this minimum supported Xcode version is 15.0 or later, | |
# we can use Xcode 15.2 here and remove the `build-xcframework-with-visionOS-support` job. | |
# Testing in https://github.com/airbnb/lottie-spm/pull/12 shows that Xcode 15.0 can | |
# use an XCFramework built by Xcode 15.2. | |
- '14.1' # Swift 5.7.1 | |
steps: | |
- uses: actions/checkout@v2 | |
- uses: apple-actions/import-codesign-certs@v2 | |
continue-on-error: true | |
with: | |
p12-file-base64: ${{ secrets.SIGNING_CERTIFICATE_BASE_64 }} | |
p12-password: ${{ secrets.SIGNING_CERTIFICATE_PASSWORD }} | |
- uses: ./.github/actions/setup | |
with: | |
xcode: ${{ matrix.xcode }} | |
- name: Build XCFramework | |
run: SKIP_VISION_OS=true bundle exec rake build:xcframework[Lottie-Xcode-${{ matrix.xcode }}] | |
- name: Upload XCFramework | |
uses: actions/upload-artifact@v2 | |
with: | |
name: BuildProducts | |
path: .build/archives | |
build-xcframework-with-visionOS-support: | |
name: "Build XCFramework" | |
runs-on: macos-13 | |
strategy: | |
matrix: | |
xcode: | |
- '15.2' # Swift 5.9, first Xcode version with visionOS support. | |
steps: | |
- uses: actions/checkout@v2 | |
- uses: apple-actions/import-codesign-certs@v2 | |
continue-on-error: true | |
with: | |
p12-file-base64: ${{ secrets.SIGNING_CERTIFICATE_BASE_64 }} | |
p12-password: ${{ secrets.SIGNING_CERTIFICATE_PASSWORD }} | |
- uses: ./.github/actions/setup | |
with: | |
xcode: ${{ matrix.xcode }} | |
- name: Build XCFramework | |
run: bundle exec rake build:xcframework[Lottie-Xcode-${{ matrix.xcode }}] | |
- name: Upload XCFramework | |
uses: actions/upload-artifact@v2 | |
with: | |
name: BuildProducts | |
path: .build/archives | |
cocoapod: | |
name: "Lint CocoaPods podspec" | |
runs-on: macos-13 | |
steps: | |
- uses: actions/checkout@v2 | |
- uses: ./.github/actions/setup | |
with: | |
install-mint: false | |
- name: Lint CocoaPod Podspec | |
run: bundle exec rake lint:podspec | |
spm-xcode-15: | |
name: "Test Swift Package Manager" | |
runs-on: macos-13 | |
strategy: | |
matrix: | |
xcode: | |
- '15.2' # Swift 5.9 | |
steps: | |
- uses: actions/checkout@v2 | |
- uses: ./.github/actions/setup | |
with: | |
install-mint: true | |
xcode: ${{ matrix.xcode }} | |
- name: Test Swift Package Manager support | |
run: bundle exec rake test:spm | |
carthage: | |
name: "Test Carthage support" | |
runs-on: macos-13 | |
steps: | |
- uses: actions/checkout@v2 | |
- uses: ./.github/actions/setup | |
with: | |
install-mint: true | |
install-carthage: true | |
xcode: '15.2' # Swift 5.9 | |
- name: Test Carthage support | |
run: bundle exec rake test:carthage | |
swiftlint: | |
name: "Lint Swift" | |
runs-on: macos-13 | |
steps: | |
- uses: actions/checkout@v2 | |
- uses: ./.github/actions/setup | |
- name: Lint Swift | |
run: bundle exec rake lint:swift | |
embedded-libraries: | |
name: "Lint Embedded Libraries" | |
runs-on: macos-13 | |
steps: | |
- uses: actions/checkout@v2 | |
- uses: ./.github/actions/setup | |
- name: Lint Embedded Libraries | |
run: bundle exec rake lint:EmbeddedLibraries |