@@ -100,6 +100,66 @@ jobs:
100100 token : ${{ secrets.CODECOV_TOKEN }}
101101 plugin : xcode
102102 file : ${{ env.COVERAGE_PATH }}
103+ test-xcode :
104+ env :
105+ GITHUB_ACCESS_TOKEN : ${{ secrets.GITHUB_TOKEN }}
106+ timeout-minutes : 45
107+ strategy :
108+ matrix :
109+ include :
110+ - name : Xcode 15
111+ developerDir : ' CI_XCODE_15'
112+ - name : Xcode 16
113+ developerDir : ' CI_XCODE_16'
114+ fail-fast : false
115+ runs-on : macos-14
116+ steps :
117+ - uses : actions/checkout@v4
118+ - name : Cache SPM
119+ uses : actions/cache@v4
120+ with :
121+ path : ~/Library/Developer/Xcode/DerivedData/Parse*/SourcePackages/
122+ key : ${{ runner.os }}-spm-${{ hashFiles('Parse.xcworkspace/xcshareddata/swiftpm/Package.resolved') }}
123+ restore-keys : |
124+ ${{ runner.os }}-spm-
125+ - name : Setup Ruby
126+ uses : ruby/setup-ruby@v1
127+ with :
128+ bundler-cache : true
129+ - name : Create and set the default keychain
130+ run : |
131+ security create-keychain -p "" temporary
132+ security default-keychain -s temporary
133+ security unlock-keychain -p "" temporary
134+ security set-keychain-settings -lut 7200 temporary
135+ - name : Submodules
136+ run : git submodule update --init --recursive
137+ - name : Build-Test
138+ run : set -o pipefail && env NSUnbufferedIO=YES bundle exec rake 'build:starters'
139+ env :
140+ DEVELOPER_DIR : ${{ env[matrix.developerDir] }}
141+ - name : Generate Environment Variables
142+ if : ${{ always() }}
143+ env :
144+ ARTIFACT_NAME : ${{ matrix.developerDir }}-logs
145+ TEST_RESULTS : ${{ matrix.developerDir }}.xcresult
146+ run : |
147+ ARTIFACT_NAME=${{ env.ARTIFACT_NAME }}
148+ TEST_RESULTS=$(find ~/Library/Developer/Xcode/DerivedData -name "*.xcresult")
149+ BUILD_RESULTS=$(find ~/Library/Developer/Xcode/DerivedData -name "*.xcactivitylog")
150+ echo ARTIFACT_NAME=${ARTIFACT_NAME//:/-} >> $GITHUB_ENV # replace colon with dashes
151+ echo TEST_RESULTS=${TEST_RESULTS} >> $GITHUB_ENV
152+ echo "Artifact Name: $ARTIFACT_NAME"
153+ echo "Test Result Location: $TEST_RESULTS"
154+ echo "Build Result Location: $BUILD_RESULTS"
155+ - name : Upload Artifact Logs
156+ if : ${{ failure() }}
157+ uses : actions/upload-artifact@v4
158+ with :
159+ name : ${{ env.ARTIFACT_NAME }}
160+ path : |
161+ ~/Library/Developer/Xcode/DerivedData/Parse-*/Logs/Test
162+ ~/Library/Developer/Xcode/DerivedData/**/Logs/Build
103163 docs :
104164 runs-on : macos-14
105165 timeout-minutes : 15
0 commit comments