-
-
Notifications
You must be signed in to change notification settings - Fork 871
134 lines (134 loc) · 4.5 KB
/
ci.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
---
name: ci
on:
push:
branches:
- master
pull_request:
branches:
- "**"
env:
CI_XCODE_14: /Applications/Xcode_14.2.app/Contents/Developer
jobs:
tests:
env:
GITHUB_ACCESS_TOKEN: ${{ secrets.GITHUB_TOKEN }}
timeout-minutes: 60
strategy:
matrix:
script:
- test:ios
- test:macos
- test:facebook_utils:ios
- test:twitter_utils:ios
- test:parseui:all
- test:parse_live_query:all
- build:starters
fail-fast: true
runs-on: macos-12
steps:
- uses: actions/checkout@v3
- name: Cache SPM
uses: actions/cache@v3
with:
path: ~/Library/Developer/Xcode/DerivedData/Parse*/SourcePackages/
key: ${{ runner.os }}-spm-${{ hashFiles('Parse.xcworkspace/xcshareddata/swiftpm/Package.resolved') }}
restore-keys: |
${{ runner.os }}-spm-
- name: Setup Ruby
uses: ruby/setup-ruby@359bebbc29cbe6c87da6bc9ea3bc930432750108
- name: Cache Gems
id: cache-gems
uses: actions/cache@v3
with:
path: vendor/bundle
key: ${{ runner.os }}-gem-${{ hashFiles('**/Gemfile.lock') }}
restore-keys: |
${{ runner.os }}-gem-
- name: Create and set the default keychain
run: |
security create-keychain -p "" temporary
security default-keychain -s temporary
security unlock-keychain -p "" temporary
security set-keychain-settings -lut 7200 temporary
- name: Submodules
run: |
git submodule update --init --recursive
sudo gem install bundler
bundle config set path 'vendor/bundle'
- name: Bundle Install
if: steps.cache-gems.outputs.cache-hit != 'true'
run: bundle install
- name: Cache Carthage
uses: actions/cache@v3
id: carthage-cache
with:
path: Carthage
key: ${{ runner.os }}-carthage-${{ hashFiles('**/Cartfile.resolved') }}
restore-keys: |
${{ runner.os }}-carthage-
- name: Carthage
if: ${{ steps.carthage-cache.outputs.cache-hit != 'true' }}
run: |
carthage bootstrap --use-xcframeworks
- name: Build-Test
run: set -o pipefail && env NSUnbufferedIO=YES bundle exec rake ${{ matrix.script }}
env:
DEVELOPER_DIR: ${{ env.CI_XCODE_14 }}
- name: Generate Environment Variables
if: ${{ always() }}
env:
ARTIFACT_NAME: ${{ matrix.script }}-logs
TEST_RESULTS: ${{ matrix.script }}.xcresult
run: |
ARTIFACT_NAME=${{ env.ARTIFACT_NAME }}
TEST_RESULTS=$(find ~/Library/Developer/Xcode/DerivedData -name "*.xcresult")
BUILD_RESULTS=$(find ~/Library/Developer/Xcode/DerivedData -name "*.xcactivitylog")
echo ARTIFACT_NAME=${ARTIFACT_NAME//:/-} >> $GITHUB_ENV # replace colon with dashes
echo TEST_RESULTS=${TEST_RESULTS} >> $GITHUB_ENV
echo "Artifact Name: $ARTIFACT_NAME"
echo "Test Result Location: $TEST_RESULTS"
echo "Build Result Location: $BUILD_RESULTS"
- name: Upload Artifact Logs
if: ${{ failure() }}
uses: actions/upload-artifact@v3
with:
name: ${{ env.ARTIFACT_NAME }}
path: |
~/Library/Developer/Xcode/DerivedData/Parse-*/Logs/Test
~/Library/Developer/Xcode/DerivedData/**/Logs/Build
- name: Upload Coverage
uses: codecov/[email protected]
with:
xcode: true
xcode_archive_path: ${{ env.TEST_RESULTS }}
docs:
runs-on: macos-12
steps:
- uses: actions/checkout@v3
- name: Setup Ruby
uses: ruby/setup-ruby@359bebbc29cbe6c87da6bc9ea3bc930432750108
- name: Cache Gems
id: cache-gems
uses: actions/cache@v3
with:
path: vendor/bundle
key: ${{ runner.os }}-gem-${{ hashFiles('**/Gemfile.lock') }}
restore-keys: |
${{ runner.os }}-gem-
- name: Submodules
run: |
git submodule update --init --recursive
sudo gem install bundler
bundle config path vendor/bundle
- name: Bundle Install
if: steps.cache-gems.outputs.cache-hit != 'true'
run: bundle install
- name: Create Jazzy Docs
run: |
./Scripts/jazzy.sh
env:
DEVELOPER_DIR: ${{ env.CI_XCODE_14 }}
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true