1
1
name : Build
2
-
3
- on : [push]
4
-
2
+ on :
3
+ - push
5
4
jobs :
6
- build :
7
- name : Build
8
- runs-on : macos-latest
5
+ find_schemes :
6
+ name : Find xcode schemes
7
+ runs-on : macos-14
8
+ outputs :
9
+ schemes : ${{ steps.getSchemes.outputs.schemes}}
9
10
steps :
10
11
- name : Checkout
11
- uses : actions/checkout@v3
12
+ uses : actions/checkout@v4
13
+ - name : xcode version
14
+ uses : maxim-lobanov/setup-xcode@v1
15
+ with :
16
+ xcode-version : latest-stable
17
+ - name : Get schemes
18
+ id : getSchemes
19
+ run : |
20
+ TARGETS=$(xcodebuild -list -json | tr -d "\n")
21
+ echo TARGETS: $TARGETS
22
+ SCHEMES=$(echo $TARGETS | ruby -e "require 'json'; puts JSON.generate(:scheme => JSON.parse(STDIN.gets)['project']['schemes'])")
23
+ echo Found schemes: $SCHEMES
24
+ echo "schemes=$SCHEMES" >> $GITHUB_OUTPUT
25
+ swift_build :
26
+ name : Build with swift
27
+ runs-on : macos-14
28
+ steps :
29
+ - name : Checkout
30
+ uses : actions/checkout@v4
12
31
- name : xcode version
13
32
uses : maxim-lobanov/setup-xcode@v1
14
33
with :
15
34
xcode-version : latest-stable
16
35
- name : Build Package with swift
17
36
run : swift build
18
- - name : Set Default Scheme
19
- run : |
20
- scheme_list=$(xcodebuild -list -json | tr -d "\n")
21
- default=$(echo $scheme_list | ruby -e "require 'json'; puts JSON.parse(STDIN.gets)['workspace']['schemes'][0]")
22
- echo $default | cat >default
23
- echo Using default scheme: $default
24
- - name : Build Package with xcodebuild
25
- env :
26
- scheme : ${{ 'default' }}
27
- run : |
28
- if [ $scheme = default ]; then scheme=$(cat default); fi
29
- xcodebuild -scheme $scheme -destination 'platform=iOS Simulator,name=iPhone 13'
37
+ xcode_build :
38
+ name : Build with xcode
39
+ needs : find_schemes
40
+ runs-on : macos-14
41
+ strategy :
42
+ matrix : ${{ fromJson(needs.find_schemes.outputs.schemes) }}
43
+ steps :
44
+ - name : Checkout
45
+ uses : actions/checkout@v4
46
+ - name : xcode version
47
+ uses : maxim-lobanov/setup-xcode@v1
48
+ with :
49
+ xcode-version : latest-stable
50
+ - name : Build ${{matrix.scheme}}
51
+ run : xcodebuild clean build -project ApiVideoPlayer.xcodeproj -scheme "${{matrix.scheme}}" -sdk iphoneos CODE_SIGNING_ALLOWED=NO
52
+ verify :
53
+ name : Verify package sanity
54
+ runs-on : macos-14
55
+ steps :
56
+ - name : Checkout
57
+ uses : actions/checkout@v4
58
+ - name : xcode version
59
+ uses : maxim-lobanov/setup-xcode@v1
60
+ with :
61
+ xcode-version : latest-stable
30
62
- name : Verify cocoapods
31
63
run : pod lib lint --allow-warnings
64
+ - name : Install swiftlint
65
+ run : brew install swiftlint
32
66
- name : Execute swiftlint
33
67
run : swiftlint
34
- - name : Build Example UIKit
35
- env :
36
- scheme : ${{ 'default' }}
37
- run : |
38
- if [ $scheme = default ]; then scheme=$(cat default); fi
39
- xcodebuild clean build -project Examples/PlayerUIKit/PlayerUIKit.xcodeproj -scheme $scheme -sdk iphoneos
40
- - name : Build Example SwiftUI
41
- env :
42
- scheme : ${{ 'default' }}
43
- run : |
44
- if [ $scheme = default ]; then scheme=$(cat default); fi
45
- xcodebuild clean build -project Examples/PlayerSwiftUI/PlayerSwiftUI.xcodeproj -scheme $scheme -sdk iphoneos
0 commit comments