Skip to content

Commit e4d1ce5

Browse files
committed
refactor CI
1 parent 7f5da14 commit e4d1ce5

File tree

1 file changed

+60
-0
lines changed

1 file changed

+60
-0
lines changed

.github/workflows/ci.yml

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)