Skip to content

Commit a1bfdad

Browse files
Fix Fastfile formatting and clean TestFlight workflow
1 parent 6dbcae2 commit a1bfdad

File tree

3 files changed

+443
-45
lines changed

3 files changed

+443
-45
lines changed

.github/workflows/octreotide-ci.yml

Lines changed: 74 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -15,42 +15,105 @@ jobs:
1515
test:
1616
name: Run Tests
1717
runs-on: macos-latest
18+
strategy:
19+
matrix:
20+
xcode: ['14.3.1'] # Add more versions if needed
21+
device: ['iPhone 14', 'iPhone 14 Pro', 'iPad Pro (12.9-inch) (6th generation)']
1822

1923
steps:
2024
- uses: actions/checkout@v4
2125
with:
2226
submodules: recursive
2327

24-
- name: Select Xcode
25-
run: sudo xcode-select -s /Applications/Xcode.app
26-
27-
- name: List Available Schemes
28-
run: xcodebuild -workspace LoopWorkspace.xcworkspace -list
28+
- name: Select Xcode ${{ matrix.xcode }}
29+
run: sudo xcode-select -s /Applications/Xcode_${{ matrix.xcode }}.app
2930

30-
- name: Build and Test
31+
- name: Run Unit Tests
3132
run: |
3233
xcodebuild test \
3334
-workspace LoopWorkspace.xcworkspace \
3435
-scheme LoopWorkspace \
35-
-destination 'platform=iOS Simulator,name=iPhone 14,OS=latest' \
36+
-destination "platform=iOS Simulator,name=${{ matrix.device }},OS=latest" \
37+
-only-testing:OctreotideAlgorithmTests \
3638
-enableCodeCoverage YES \
3739
-resultBundlePath TestResults.xcresult
3840
3941
- name: Upload Test Results
4042
if: always()
4143
uses: actions/upload-artifact@v3
4244
with:
43-
name: test-results
45+
name: test-results-${{ matrix.device }}
4446
path: TestResults.xcresult
4547

4648
- name: Generate Coverage Report
4749
if: success()
4850
run: |
49-
xcrun xccov view --report TestResults.xcresult > coverage.txt
51+
xcrun xccov view --report TestResults.xcresult > coverage-${{ matrix.device }}.txt
5052
5153
- name: Upload Coverage
5254
if: success()
5355
uses: actions/upload-artifact@v3
5456
with:
55-
name: code-coverage
56-
path: coverage.txt
57+
name: code-coverage-${{ matrix.device }}
58+
path: coverage-${{ matrix.device }}.txt
59+
60+
integration-tests:
61+
name: Integration Tests
62+
needs: unit-tests
63+
runs-on: macos-latest
64+
65+
steps:
66+
- uses: actions/checkout@v4
67+
with:
68+
submodules: recursive
69+
70+
- name: Select Xcode
71+
run: sudo xcode-select -s /Applications/Xcode.app
72+
73+
- name: Run Simulation Tests
74+
run: |
75+
# Run simulator with different glucose patterns
76+
xcodebuild test \
77+
-workspace LoopWorkspace.xcworkspace \
78+
-scheme LoopWorkspace \
79+
-destination 'platform=iOS Simulator,name=iPhone 14,OS=latest' \
80+
-only-testing:GlucoseSimulatorTests \
81+
-resultBundlePath SimResults.xcresult
82+
83+
- name: Upload Simulation Results
84+
if: always()
85+
uses: actions/upload-artifact@v3
86+
with:
87+
name: simulation-results
88+
path: SimResults.xcresult
89+
90+
build-only:
91+
name: Build Without Signing
92+
needs: [unit-tests, integration-tests]
93+
runs-on: macos-latest
94+
95+
steps:
96+
- uses: actions/checkout@v4
97+
with:
98+
submodules: recursive
99+
100+
- name: Select Xcode
101+
run: sudo xcode-select -s /Applications/Xcode.app
102+
103+
- name: Build for Simulator
104+
run: |
105+
xcodebuild build \
106+
-workspace LoopWorkspace.xcworkspace \
107+
-scheme LoopWorkspace \
108+
-destination 'platform=iOS Simulator,name=iPhone 14,OS=latest' \
109+
-configuration Debug \
110+
CODE_SIGN_IDENTITY="" \
111+
CODE_SIGNING_REQUIRED=NO \
112+
CODE_SIGNING_ALLOWED=NO
113+
114+
- name: Archive Build Logs
115+
if: always()
116+
uses: actions/upload-artifact@v3
117+
with:
118+
name: build-logs
119+
path: ~/Library/Developer/Xcode/DerivedData/**/Logs/Build

.github/workflows/testflight-upload.yml

Lines changed: 34 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@ on:
99
default: 'development'
1010
type: choice
1111
options:
12-
- development
13-
- release
12+
- development
13+
- release
1414

1515
env:
1616
DEVELOPER_DIR: /Applications/Xcode.app/Contents/Developer
@@ -22,23 +22,23 @@ jobs:
2222
build-and-upload:
2323
name: Build and Upload to TestFlight
2424
runs-on: macos-latest
25-
25+
2626
steps:
2727
- uses: actions/checkout@v4
28-
with:
29-
submodules: recursive
30-
28+
with:
29+
submodules: recursive
30+
3131
- name: Install Apple Certificate
32-
env:
33-
BUILD_CERTIFICATE_BASE64: ${{ secrets.BUILD_CERTIFICATE_BASE64 }}
34-
P12_PASSWORD: ${{ secrets.P12_PASSWORD }}
35-
KEYCHAIN_PASSWORD: ${{ secrets.KEYCHAIN_PASSWORD }}
36-
run: |
32+
env:
33+
BUILD_CERTIFICATE_BASE64: ${{ secrets.BUILD_CERTIFICATE_BASE64 }}
34+
P12_PASSWORD: ${{ secrets.P12_PASSWORD }}
35+
KEYCHAIN_PASSWORD: ${{ secrets.KEYCHAIN_PASSWORD }}
36+
run: |
3737
# Create keychain
38-
security create-keychain -p "$KEYCHAIN_PASSWORD" build.keychain
39-
security default-keychain -s build.keychain
40-
security unlock-keychain -p "$KEYCHAIN_PASSWORD" build.keychain
41-
security set-keychain-settings -t 3600 -u build.keychain
38+
security create-keychain -p "$KEYCHAIN_PASSWORD" build.keychain
39+
security default-keychain -s build.keychain
40+
security unlock-keychain -p "$KEYCHAIN_PASSWORD" build.keychain
41+
security set-keychain-settings -t 3600 -u build.keychain
4242

4343
# Import certificate
4444
echo -n "$BUILD_CERTIFICATE_BASE64" | base64 --decode --output certificate.p12
@@ -53,32 +53,32 @@ jobs:
5353
- name: Setup Provisioning
5454
env:
5555
MATCH_PASSWORD: ${{ secrets.MATCH_PASSWORD }}
56-
FASTLANE_KEY: ${{ secrets.FASTLANE_KEY }}
57-
run: |
56+
FASTLANE_KEY: ${{ secrets.FASTLANE_KEY }}
57+
run: |
5858
# Create fastlane match config
5959
echo "FASTLANE_KEY='$FASTLANE_KEY'" > .env
6060
bundle exec fastlane match appstore
61-
61+
6262
- name: Build and Upload
63-
env:
64-
MATCH_PASSWORD: ${{ secrets.MATCH_PASSWORD }}
65-
FASTLANE_KEY: ${{ secrets.FASTLANE_KEY }}
66-
run: |
67-
if [ "${{ github.event.inputs.build_type }}" = "release" ]; then
63+
env:
64+
MATCH_PASSWORD: ${{ secrets.MATCH_PASSWORD }}
65+
FASTLANE_KEY: ${{ secrets.FASTLANE_KEY }}
66+
run: |
67+
if [ "${{ github.event.inputs.build_type }}" = "release" ]; then
6868
bundle exec fastlane release
69-
else
70-
bundle exec fastlane beta
71-
fi
72-
69+
else
70+
bundle exec fastlane beta
71+
fi
72+
7373
- name: Upload IPA
74-
uses: actions/upload-artifact@v3
75-
with:
76-
name: loop-ipa
74+
uses: actions/upload-artifact@v3
75+
with:
76+
name: loop-ipa
7777
path: |
7878
Loop.ipa
7979
ExportOptions.plist
80-
81-
- name: Clean up keychain
82-
if: always()
83-
run: |
80+
81+
- name: Clean up keychain
82+
if: always()
83+
run: |
8484
security delete-keychain build.keychain

0 commit comments

Comments
 (0)