Add support for visionOS, drop support for Swift 5.5 #1187
Workflow file for this run
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-macos-12: | |
name: "Build Package" | |
runs-on: macos-12 | |
strategy: | |
fail-fast: false | |
matrix: | |
xcode: | |
- '13.4.1' # Swift 5.6 | |
steps: | |
- uses: actions/checkout@v2 | |
- uses: ./.github/actions/setup | |
with: | |
xcode: ${{ matrix.xcode }} | |
- name: Build Package | |
run: SKIP_VISION_OS=true bundle exec rake build:package:all | |
build-package-macos-13: | |
name: "Build Package" | |
runs-on: macos-13 | |
strategy: | |
fail-fast: false | |
matrix: | |
xcode: | |
- '14.2' # Swift 5.7 | |
- '14.3' # Swift 5.8 | |
steps: | |
- uses: actions/checkout@v2 | |
- uses: ./.github/actions/setup | |
with: | |
xcode: ${{ matrix.xcode }} | |
- name: Build Package | |
run: SKIP_VISION_OS=true bundle exec rake build:package:all | |
build-package-macos-13-xcode-15: | |
name: "Build Package" | |
runs-on: macos-13 | |
strategy: | |
fail-fast: false | |
matrix: | |
xcode: | |
- '15.0' # Swift 5.9, first version that includes visionOS SDK. | |
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.0' # 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: '14.3' # Swift 5.8 | |
- 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-macos-12: | |
name: "Build XCFramework" | |
runs-on: macos-12 | |
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. | |
- '13.4.1' # Swift 5.6.1 | |
steps: | |
- uses: actions/checkout@v2 | |
- 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 | |
# The xcframework is at the path `.build/archives/Lottie.xcframework.zip`. | |
# GitHub always zips the artifacts before uploading, so if we uploaded the .xframework.zip | |
# directly then it would actually upload a double-zip (a .zip containing our `Lottie.xcframework.zip`). | |
# This is confusing especially since macOS Archive Utility automatially unzips both layers at once. | |
# Instead, we upload the entire archives folder, resulting in an `XCFramework.zip` that unzips | |
# to an `archives` directory containing our `Lottie.xcframework.zip`. | |
path: .build/archives | |
build-xcframework-macos-13: | |
name: "Build XCFramework" | |
runs-on: macos-13 | |
strategy: | |
matrix: | |
xcode: | |
- '15.0' # Swift 5.9, and the first Xcode version with the visionOS SDK. | |
steps: | |
- uses: actions/checkout@v2 | |
- 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 | |
# The xcframework is at the path `.build/archives/Lottie.xcframework.zip`. | |
# GitHub always zips the artifacts before uploading, so if we uploaded the .xframework.zip | |
# directly then it would actually upload a double-zip (a .zip containing our `Lottie.xcframework.zip`). | |
# This is confusing especially since macOS Archive Utility automatially unzips both layers at once. | |
# Instead, we upload the entire archives folder, resulting in an `XCFramework.zip` that unzips | |
# to an `archives` directory containing our `Lottie.xcframework.zip`. | |
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.0' # Swift 5.9, first version with visionOS SDK. | |
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 | |
spm-xcode-14: | |
name: "Test Swift Package Manager" | |
runs-on: macos-13 | |
strategy: | |
matrix: | |
xcode: | |
- '14.3' # Swift 5.8 | |
steps: | |
- uses: actions/checkout@v2 | |
- uses: ./.github/actions/setup | |
with: | |
install-mint: true | |
xcode: ${{ matrix.xcode }} | |
- name: Test Swift Package Manager support | |
run: SKIP_VISION_OS=true bundle exec rake test:spm | |
spm-xcode-13: | |
name: "Test Swift Package Manager" | |
runs-on: macos-12 | |
strategy: | |
matrix: | |
xcode: | |
- '13.4.1' # Swift 5.6 | |
steps: | |
- uses: actions/checkout@v2 | |
- uses: ./.github/actions/setup | |
with: | |
install-mint: true | |
xcode: ${{ matrix.xcode }} | |
- name: Test Swift Package Manager support | |
run: SKIP_VISION_OS=true 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: '14.3' # Swift 5.8 | |
- 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 |