Next #99
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: Prepare Release | |
on: | |
push: | |
branches: | |
- "dp/test_release" | |
env: | |
XCODE_VERSION: "['15.1']" # '14.1', '14.2', '14.3.1', '15.0.1', '15.1' | |
PLATFORM: "['ios']" # , 'osx', 'watchos', 'tvos', 'catalyst', visionos' | |
BUILD_PLATFORM: "['ios', 'iossimulator']" # , 'osx', 'watchos', 'watchossimulator', 'tvos', 'tvossimulator', 'catalyst' | |
DOC_VERSION: '14.3.1' | |
XCFRAMEWORK_VERSION: '15.0.1' | |
jobs: | |
prepare: | |
runs-on: ubuntu-latest | |
name: Prepare outputs | |
outputs: | |
XCODE_VERSIONS_MATRIX: ${{ env.XCODE_VERSION }} | |
BUILD_PLATFORM_MATRIX: ${{ env.BUILD_PLATFORM }} | |
PLATFORM_MATRIX: ${{ env.PLATFORM }} | |
steps: | |
- name: Compute outputs | |
run: | | |
echo "XCODE_VERSIONS_MATRIX=${{ env.XCODE_VERSION }}" >> $GITHUB_OUTPUT | |
echo "PLATFORM_MATRIX=${{ env.PLATFORM }}" >> $GITHUB_OUTPUT | |
echo "BUILD_PLATFORM_MATRIX=${{ env.BUILD_PLATFORM }}" >> $GITHUB_OUTPUT | |
build-docs: | |
runs-on: macos-13 | |
name: Package docs and upload them to the draft release | |
needs: prepare | |
steps: | |
- uses: maxim-lobanov/setup-xcode@v1 | |
with: | |
xcode-version: ${{ env.DOC_VERSION }} | |
- name: Install Gems | |
run: | | |
gem install jazzy -v 0.14.4 | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Package docs files | |
run: ./build.sh release-package-docs | |
- name: Upload artifact to artifacts library | |
uses: actions/upload-artifact@v3 | |
with: | |
name: realm-docs.zip | |
path: docs/realm-docs.zip | |
build-examples: | |
runs-on: macos-13 | |
name: Package examples and upload them to the draft release | |
needs: prepare | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Run release_package-examples package and uploads the example folder | |
run: ./build.sh release-package-examples | |
- name: Upload artifact to artifacts library | |
uses: actions/upload-artifact@v3 | |
with: | |
name: realm-examples.zip | |
path: realm-examples.zip | |
build-product: | |
runs-on: ubuntu-latest | |
name: Package framework | |
needs: prepare | |
strategy: | |
matrix: | |
platform: ${{ fromJSON(needs.prepare.outputs.BUILD_PLATFORM_MATRIX) }} | |
target: [Realm, RealmSwift] | |
xcode-version: ${{ fromJSON(needs.prepare.outputs.XCODE_VERSIONS_MATRIX) }} | |
configuration: [release] | |
include: | |
- platform: ios | |
target: Realm | |
xcode-version: 15.1 | |
configuration: static | |
- platform: iossimulator | |
target: Realm | |
xcode-version: 15.1 | |
configuration: static | |
- platform: visionos | |
target: Realm | |
xcode-version: 15.1 | |
configuration: release | |
- platform: visionos | |
target: Realmswift | |
xcode-version: 15.1 | |
configuration: release | |
- platform: visionossimulator | |
target: Realm | |
xcode-version: 15.1 | |
configuration: release | |
- platform: visionossimulator | |
target: Realmswift | |
xcode-version: 15.1 | |
configuration: release | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Get Token | |
id: token | |
uses: yuki0n0/[email protected] | |
with: | |
# UUID. Can get from App Store Connect. | |
issuer id: ${{ secrets.APPLE_STORE_CONNECT_ISSUER_ID }} | |
# Key ID. Can get from App Store Connect. | |
key id: ${{ secrets.APPLE_STORE_CONNECT_KEY_ID }} | |
# P8 private key. Can get from App Store Connect. | |
key: ${{ secrets.APPLE_STORE_CONNECT_API_KEY }} | |
- name: Creates on demand XCode Cloud's workflows with a build action for ${{ matrix.platform }} in ${{ matrix.xcode-version }} with configuration ${{ matrix.configuration }} | |
id: create-workflow | |
run: | | |
workflow_id=$(echo $(ruby ./scripts/xcode_cloud_helper.rb --create-build-workflow "${{ matrix.platform }}-${{ matrix.target }}-${{ matrix.configuration }}" --token ${{ steps.token.outputs.token }} --xcode-version ${{ matrix.xcode-version }})) | |
echo "WORKFLOW_ID=$workflow_id" >> $GITHUB_OUTPUT | |
- name: Runs the XCode Cloud workflow created by the prevous step which that a package for ${{ matrix.platform }} in ${{ matrix.xcode-version }} with configuration ${{ matrix.configuration }} | |
id: build-run | |
run: | | |
build_run_id=$(echo $(ruby ./scripts/xcode_cloud_helper.rb --run-release-workflow ${{ steps.create-workflow.outputs.WORKFLOW_ID }} --token ${{ steps.token.outputs.token }} --branch ${{ github.ref_name }})) | |
echo "BUILD_RUN_ID=$build_run_id" >> $GITHUB_OUTPUT | |
- name: Check build status and wait for it to finish | |
run: | | |
ruby ./scripts/xcode_cloud_helper.rb --token ${{ steps.token.outputs.token }} --check-workflow-status ${{ steps.build-run.outputs.BUILD_RUN_ID }} | |
- name: Download package from XCode Cloud artifacts ${{ matrix.platform }} in ${{ matrix.xcode-version }} with configuration ${{ matrix.configuration }} | |
run: | | |
ruby ./scripts/xcode_cloud_helper.rb --download-build-artifact ${{ steps.build-run.outputs.BUILD_RUN_ID }} --token ${{ steps.token.outputs.token }} | |
- name: Upload artifact to artifacts library | |
uses: actions/upload-artifact@v3 | |
with: | |
name: package-${{ matrix.platform }}-${{ matrix.xcode-version }}-${{ matrix.target }}-${{ matrix.configuration }}.zip | |
path: product.zip | |
package-xcframework: | |
runs-on: macos-13 | |
name: Package xcframework | |
needs: [build-product, prepare] | |
strategy: | |
matrix: | |
platform: ${{ fromJSON(needs.prepare.outputs.PLATFORM_MATRIX) }} | |
target: [RealmSwift] | |
xcode-version: ${{ fromJSON(needs.prepare.outputs.XCODE_VERSIONS_MATRIX) }} | |
configuration: [release] | |
include: | |
- platform: ios | |
target: Realm | |
xcode-version: 15.1 | |
configuration: static | |
- platform: ios | |
target: Realm | |
xcode-version: 15.1 | |
configuration: release | |
- platform: osx | |
target: Realm | |
xcode-version: 15.1 | |
configuration: release | |
- platform: catalyst | |
target: Realm | |
xcode-version: 15.1 | |
configuration: release | |
- platform: tvos | |
target: Realm | |
xcode-version: 15.1 | |
configuration: release | |
- platform: watchos | |
target: Realm | |
xcode-version: 15.1 | |
configuration: release | |
- platform: visionos | |
target: Realm | |
xcode-version: 15.1 | |
configuration: release | |
steps: | |
- name: Download ${{ matrix.target }} for ${{ matrix.platform }} | |
uses: actions/download-artifact@v3 | |
with: | |
name: package-${{ matrix.platform }}-${{ matrix.xcode-version }}-${{ matrix.target }}-${{ matrix.configuration }}.zip | |
path: build/package-${{ matrix.platform }}-${{ matrix.target }}-${{ matrix.configuration }}.zip | |
- uses: geekyeggo/delete-artifact@v2 | |
with: | |
name: package-${{ matrix.platform }}-${{ matrix.xcode-version }}-${{ matrix.target }}-${{ matrix.configuration }}.zip | |
- name: Download ${{ matrix.target }} for ${{ matrix.platform }} simulator | |
uses: actions/download-artifact@v3 | |
if: ${{ matrix.platform }} == 'ios' || ${{ matrix.platform }} == 'tvos' || ${{ matrix.platform }} == 'watchos' || ${{ matrix.platform }} == 'visionos' | |
with: | |
name: package-${{ matrix.platform }}simulator-${{ matrix.xcode-version }}-${{ matrix.target }}-${{ matrix.configuration }}.zip | |
path: build/package-${{ matrix.platform }}simulator-${{ matrix.target }}-${{ matrix.configuration }}.zip | |
- uses: geekyeggo/delete-artifact@v2 | |
if: ${{ matrix.platform }} == 'ios' || ${{ matrix.platform }} == 'tvos' || ${{ matrix.platform }} == 'watchos' || ${{ matrix.platform }} == 'visionos' | |
with: | |
name: package-${{ matrix.platform }}simulator-${{ matrix.xcode-version }}-${{ matrix.target }}-${{ matrix.configuration }}.zip | |
- name: Create xcframework for ${{ matrix.platform }} in ${{ matrix.xcode-version }} with configuration ${{ matrix.configuration }} | |
id: build-run | |
run: | | |
./build.sh release-create-xcframework-${{ matrix.configuration }} ${{ matrix.platform }} ${{ matrix.target }} | |
- name: Upload xcframework to artifacts library | |
uses: actions/upload-artifact@v3 | |
with: | |
name: realm-${{ matrix.platform }}-${{ matrix.xcode-version }}-${{ matrix.target }}-${{ matrix.configuration }}.xcframework.zip | |
path: build/xcframework/${{ matrix.target }}.xcframework.zip | |
create-xcframeworks: | |
runs-on: macos-13 | |
name: Package complete xcframework | |
needs: [package-xcframework, prepare] | |
strategy: | |
matrix: | |
xcode-version: ${{ fromJSON(needs.prepare.outputs.XCODE_VERSIONS_MATRIX) }} | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- uses: maxim-lobanov/setup-xcode@v1 | |
with: | |
xcode-version: ${{ env.XCFRAMEWORK_VERSION }} | |
- name: Download ios xcframework for ${{ matrix.xcode_version }} | |
uses: actions/download-artifact@v3 | |
with: | |
name: realm-ios-${{ matrix.xcode-version }}-RealmSwift-release.xcframework.zip | |
path: build/realm-ios-${{ matrix.xcode-version }}-RealmSwift-release.xcframework.zip | |
- uses: geekyeggo/delete-artifact@v2 | |
with: | |
name: realm-ios-${{ matrix.xcode-version }}-RealmSwift-release.xcframework.zip | |
# - name: Download osx xcframework for ${{ matrix.xcode_version }} | |
# uses: actions/download-artifact@v3 | |
# with: | |
# name: realm-osx-${{ matrix.xcode-version }}-RealmSwift-release.xcframework.zip | |
# path: build/realm-osx-${{ matrix.xcode-version }}-RealmSwift-release.xcframework.zip | |
# - uses: geekyeggo/delete-artifact@v2 | |
# with: | |
# name: realm-osx-${{ matrix.xcode-version }}-RealmSwift-release.xcframework.zip | |
# - name: Download tvos xcframework for ${{ matrix.xcode_version }} | |
# uses: actions/download-artifact@v3 | |
# with: | |
# name: realm-tvos-${{ matrix.xcode-version }}-RealmSwift-release.xcframework.zip | |
# path: build/realm-tvos-${{ matrix.xcode-version }}-RealmSwift-release.xcframework.zip | |
# - uses: geekyeggo/delete-artifact@v2 | |
# with: | |
# name: realm-tvos-${{ matrix.xcode-version }}-RealmSwift-release.xcframework.zip | |
# - name: Download watchos xcframework for ${{ matrix.xcode_version }} | |
# uses: actions/download-artifact@v3 | |
# with: | |
# name: realm-watchos-${{ matrix.xcode-version }}-RealmSwift-release.xcframework.zip | |
# path: build/realm-watchos-${{ matrix.xcode-version }}-RealmSwift-release.xcframework.zip | |
# - uses: geekyeggo/delete-artifact@v2 | |
# with: | |
# name: realm-watchos-${{ matrix.xcode-version }}-RealmSwift-release.xcframework.zip | |
# - name: Download catalyst xcframework for ${{ matrix.xcode_version }} | |
# uses: actions/download-artifact@v3 | |
# with: | |
# name: realm-catalyst-${{ matrix.xcode-version }}-RealmSwift-release.xcframework.zip | |
# path: build/realm-catalyst-${{ matrix.xcode-version }}-RealmSwift-release.xcframework.zip | |
# - uses: geekyeggo/delete-artifact@v2 | |
# with: | |
# name: realm-catalyst-${{ matrix.xcode-version }}-RealmSwift-release.xcframework.zip | |
# - name: Download visionos xcframework for ${{ matrix.xcode_version }} | |
# uses: actions/download-artifact@v3 | |
# if: ${{ matrix.xcode-version }} == '15.1' | |
# with: | |
# name: realm-visionos-${{ matrix.xcode-version }}-RealmSwift-release.xcframework.zip | |
# path: build/realm-visionos-${{ matrix.xcode-version }}-RealmSwift-release.xcframework.zip | |
# - uses: geekyeggo/delete-artifact@v2 | |
# if: ${{ matrix.xcode-version }} == '15.1' | |
# with: | |
# name: realm-visionos-${{ matrix.xcode-version }}-RealmSwift-release.xcframework.zip | |
- name: Download ios xcframework for ${{ matrix.xcode_version }} | |
uses: actions/download-artifact@v3 | |
if: ${{ matrix.xcode-version }} == '15.1' | |
with: | |
name: realm-ios-${{ matrix.xcode-version }}-Realm-release.xcframework.zip | |
path: build/realm-ios-${{ matrix.xcode-version }}-Realm-release.xcframework.zip | |
- uses: geekyeggo/delete-artifact@v2 | |
if: ${{ matrix.xcode-version }} == '15.1' | |
with: | |
name: realm-ios-${{ matrix.xcode-version }}-Realm-release.xcframework.zip | |
# - name: Download osx xcframework for ${{ matrix.xcode_version }} | |
# uses: actions/download-artifact@v3 | |
# if: ${{ matrix.xcode-version }} == '15.1' | |
# with: | |
# name: realm-osx-${{ matrix.xcode-version }}-Realm-release.xcframework.zip | |
# path: build/realm-osx-${{ matrix.xcode-version }}-RealmSwift-release.xcframework.zip | |
# - uses: geekyeggo/delete-artifact@v2 | |
# with: | |
# name: realm-osx-${{ matrix.xcode-version }}-Realm-release.xcframework.zip | |
# - name: Download tvos xcframework for ${{ matrix.xcode_version }} | |
# uses: actions/download-artifact@v3 | |
# if: ${{ matrix.xcode-version }} == '15.1' | |
# with: | |
# name: realm-tvos-${{ matrix.xcode-version }}-Realm-release.xcframework.zip | |
# path: build/realm-tvos-${{ matrix.xcode-version }}-Realm-release.xcframework.zip | |
# - uses: geekyeggo/delete-artifact@v2 | |
# if: ${{ matrix.xcode-version }} == '15.1' | |
# with: | |
# name: realm-tvos-${{ matrix.xcode-version }}-Realm-release.xcframework.zip | |
# - name: Download watchos xcframework for ${{ matrix.xcode_version }} | |
# uses: actions/download-artifact@v3 | |
# if: ${{ matrix.xcode-version }} == '15.1' | |
# with: | |
# name: realm-watchos-${{ matrix.xcode-version }}-Realm-release.xcframework.zip | |
# path: build/realm-watchos-${{ matrix.xcode-version }}-Realm-release.xcframework.zip | |
# - uses: geekyeggo/delete-artifact@v2 | |
# if: ${{ matrix.xcode-version }} == '15.1' | |
# with: | |
# name: realm-watchos-${{ matrix.xcode-version }}-Realm-release.xcframework.zip | |
# - name: Download catalyst xcframework for ${{ matrix.xcode_version }} | |
# uses: actions/download-artifact@v3 | |
# if: ${{ matrix.xcode-version }} == '15.1' | |
# with: | |
# name: realm-catalyst-${{ matrix.xcode-version }}-Realm-release.xcframework.zip | |
# path: build/realm-catalyst-${{ matrix.xcode-version }}-Realm-release.xcframework.zip | |
# - uses: geekyeggo/delete-artifact@v2 | |
# if: ${{ matrix.xcode-version }} == '15.1' | |
# with: | |
# name: realm-catalyst-${{ matrix.xcode-version }}-Realm-release.xcframework.zip | |
# - name: Download visionos xcframework for ${{ matrix.xcode_version }} | |
# uses: actions/download-artifact@v3 | |
# if: ${{ matrix.xcode-version }} == '15.1' | |
# with: | |
# name: realm-visionos-${{ matrix.xcode-version }}-Realm-release.xcframework.zip | |
# path: build/realm-visionos-${{ matrix.xcode-version }}-Realm-release.xcframework.zip | |
# - uses: geekyeggo/delete-artifact@v2 | |
# if: ${{ matrix.xcode-version }} == '15.1' | |
# with: | |
# name: realm-visionos-${{ matrix.xcode-version }}-Realm-release.xcframework.zip | |
- name: Download ios xcframework for ${{ matrix.xcode_version }} | |
uses: actions/download-artifact@v3 | |
if: ${{ matrix.xcode-version }} == '15.1' | |
with: | |
name: realm-ios-${{ matrix.xcode-version }}-Realm-static.xcframework.zip | |
path: build/realm-ios-${{ matrix.xcode-version }}-RealmSwift-static.xcframework.zip | |
- uses: geekyeggo/delete-artifact@v2 | |
if: ${{ matrix.xcode-version }} == '15.1' | |
with: | |
name: realm-ios-${{ matrix.xcode-version }}-Realm-static.xcframework.zip | |
- name: Package release | |
run: | | |
./build.sh release-package-version | |
- name: Upload package for ${{ matrix.xcode-version }} to artifacts library | |
uses: actions/upload-artifact@v3 | |
with: | |
name: realm-swift-${{ steps.token.outputs.token }}-${{ matrix.xcode-version }}.zip | |
path: pkg/realm-swift-${{ steps.token.outputs.token }}-${{ matrix.xcode-version }}.zip | |
- name: Upload RealmSwift SPM for ${{ matrix.xcode-version }} to artifacts library | |
uses: actions/upload-artifact@v3 | |
with: | |
name: RealmSwift@${{ matrix.xcode-version }}.spm.zip | |
path: pkg/RealmSwift@${{ matrix.xcode-version }}.spm.zip | |
- name: Upload Realm SPM for ${{ matrix.xcode-version }} to artifacts library | |
uses: actions/upload-artifact@v3 | |
if: ${{ matrix.xcode-version }} == '15.1' | |
with: | |
name: Realm.spm.zip | |
path: pkg/Realm.spm.zip | |
- name: Upload Carthage xcframework for ${{ matrix.xcode-version }} to artifacts library | |
uses: actions/upload-artifact@v3 | |
if: ${{ matrix.xcode-version }} == '15.1' | |
with: | |
name: Carthage.xcframework.zip | |
path: pkg/Carthage.xcframework.zip | |
package-all: | |
runs-on: macos-13 | |
name: Package final release | |
needs: [create-xcframeworks, prepare] | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- uses: maxim-lobanov/setup-xcode@v1 | |
with: | |
xcode-version: ${{ env.XCFRAMEWORK_VERSION }} | |
- name: Read SDK version | |
id: get-version | |
run: | | |
version="$(sed -n 's/^VERSION=\(.*\)$/\1/p' "${GITHUB_WORKSPACE}/dependencies.list")" | |
echo "version=$version" >> $GITHUB_OUTPUT | |
- name: Download ios xcframework for ${{ matrix.xcode_version }} | |
uses: actions/download-artifact@v3 | |
with: | |
name: realm-${{ steps.get-version.outputs.version }}-15.1.zip | |
path: build/realm-${{ steps.get-version.outputs.version }}-15.1.zip | |
- uses: geekyeggo/delete-artifact@v2 | |
with: | |
name: realm-${{ steps.get-version.outputs.version }}-15.1.zip | |
test-package-examples: | |
runs-on: ubuntu-latest | |
name: Test examples | |
needs: package-all | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Get Token | |
id: token | |
uses: yuki0n0/[email protected] | |
with: | |
# UUID. Can get from App Store Connect. | |
issuer id: ${{ secrets.APPLE_STORE_CONNECT_ISSUER_ID }} | |
# Key ID. Can get from App Store Connect. | |
key id: ${{ secrets.APPLE_STORE_CONNECT_KEY_ID }} | |
# P8 private key. Can get from App Store Connect. | |
key: ${{ secrets.APPLE_STORE_CONNECT_API_KEY }} | |
- name: Run release_test-package-examples_15.1 which runs test over the packages produces by the previous step and wait for it to complete or fail | |
run: ruby ./scripts/xcode_cloud_helper.rb --run-release-workflow release_test-package-examples_15.1 --token ${{ steps.token.outputs.token }} | |
test-ios-static: | |
runs-on: ubuntu-latest | |
name: Run tests on iOS with configuration Static | |
needs: create-xcframeworks | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Get Token | |
id: token | |
uses: yuki0n0/[email protected] | |
with: | |
# UUID. Can get from App Store Connect. | |
issuer id: ${{ secrets.APPLE_STORE_CONNECT_ISSUER_ID }} | |
# Key ID. Can get from App Store Connect. | |
key id: ${{ secrets.APPLE_STORE_CONNECT_KEY_ID }} | |
# P8 private key. Can get from App Store Connect. | |
key: ${{ secrets.APPLE_STORE_CONNECT_API_KEY }} | |
- name: Run release_ios-static_15.1 which runs test over the packages produces by the previous step and wait for it to complete or fail | |
run: ruby ./scripts/xcode_cloud_helper.rb --run-release-workflow release_test-ios-static_15.1 --token ${{ steps.token.outputs.token }} | |
test-osx-static: | |
runs-on: ubuntu-latest | |
name: Run tests on macOS | |
needs: create-xcframeworks | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Get Token | |
id: token | |
uses: yuki0n0/[email protected] | |
with: | |
# UUID. Can get from App Store Connect. | |
issuer id: ${{ secrets.APPLE_STORE_CONNECT_ISSUER_ID }} | |
# Key ID. Can get from App Store Connect. | |
key id: ${{ secrets.APPLE_STORE_CONNECT_KEY_ID }} | |
# P8 private key. Can get from App Store Connect. | |
key: ${{ secrets.APPLE_STORE_CONNECT_API_KEY }} | |
- name: Run release_osx_15.1 which runs test over the packages produces by the previous step and wait for it to complete or fail | |
run: ruby ./scripts/xcode_cloud_helper.rb --run-release-workflow release_test-osx_15.1 --token ${{ steps.token.outputs.token }} | |
test-installation: | |
runs-on: ubuntu-latest | |
name: Run installation test for ${{ matrix.platform }}, ${{ matrix.installation }} and ${{ matrix.linkage }} | |
needs: create-xcframeworks | |
env: | |
XCODE_VERSION: '14.3.1' | |
strategy: | |
matrix: | |
platform: [ios, osx, watchos, tvos, catalyst] | |
installation: [cocoapods, spm, carthage] | |
linkage: [static, dynamic] | |
exclude: | |
- platform: catalyst | |
installation: carthage | |
- installation: carthage | |
linkage: static | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Get Token | |
id: token | |
uses: yuki0n0/[email protected] | |
with: | |
# UUID. Can get from App Store Connect. | |
issuer id: ${{ secrets.APPLE_STORE_CONNECT_ISSUER_ID }} | |
# Key ID. Can get from App Store Connect. | |
key id: ${{ secrets.APPLE_STORE_CONNECT_KEY_ID }} | |
# P8 private key. Can get from App Store Connect. | |
key: ${{ secrets.APPLE_STORE_CONNECT_API_KEY }} | |
- name: Creates an XCode Cloud workflow to run the test and runs build | |
run: | | |
ruby ./scripts/xcode_cloud_helper.rb --create-release-workflow-and-run test-installation-${{ matrix.platform }}-${{ matrix.installation }}-${{ matrix.linkage }} --xcode-version "$XCODE_VERSION" --token ${{ steps.token.outputs.token }} --team-id ${{ secrets.APPLE_STORE_CONNECT_TEAM_ID }} | |
test-installation-xcode: # we run this installation tests separatly because we need xcode cloud workflows previsously created with a GITHUB token so we can download the release package for this tests | |
runs-on: ubuntu-latest | |
name: Run installation xcframework ${{ matrix.platform }}, ${{ matrix.linkage }} in ${{ matrix.xcode_version }} | |
needs: create-xcframeworks | |
strategy: | |
max-parallel: 5 | |
matrix: | |
platform: [osx] | |
xcode_version: ['14.1', '14.2', '14.3.1', '15.0.1', '15.1'] | |
linkage: [dynamic] | |
include: | |
- platform: ios | |
xcode_version: '14.3.1' | |
linkage: dynamic | |
- platform: watchos | |
xcode_version: '14.3.1' | |
linkage: dynamic | |
- platform: tvos | |
xcode_version: '14.3.1' | |
linkage: dynamic | |
- platform: catalyst | |
xcode_version: '14.3.1' | |
linkage: dynamic | |
- platform: ios | |
installation: '14.3.1' | |
linkage: static | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Get Token | |
id: token | |
uses: yuki0n0/[email protected] | |
with: | |
# UUID. Can get from App Store Connect. | |
issuer id: ${{ secrets.APPLE_STORE_CONNECT_ISSUER_ID }} | |
# Key ID. Can get from App Store Connect. | |
key id: ${{ secrets.APPLE_STORE_CONNECT_KEY_ID }} | |
# P8 private key. Can get from App Store Connect. | |
key: ${{ secrets.APPLE_STORE_CONNECT_API_KEY }} | |
- name: Run installation tests for ${{ matrix.platform }} xcframework ${{ matrix.linkage }} in xcode version ${{ matrix.xcode-version }} | |
run: | | |
ruby ./scripts/xcode_cloud_helper.rb --run-release-workflow "release_test-installation-${{ matrix.platform }}-xcframework-${{ matrix.linkage }}_${{ matrix.xcode-version }}" --token ${{ steps.token.outputs.token }} |