Skip to content

Commit 6dbcae2

Browse files
Update TestFlight workflow with proper credentials
1 parent 0c405eb commit 6dbcae2

File tree

1 file changed

+36
-29
lines changed

1 file changed

+36
-29
lines changed
Lines changed: 36 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
name: Build and Upload to TestFlight
1+
name: TestFlight Upload
22

33
on:
4-
workflow_dispatch: # Manual trigger only for safety
4+
workflow_dispatch:
55
inputs:
66
build_type:
77
description: 'Build Type'
@@ -12,50 +12,59 @@ on:
1212
- development
1313
- release
1414

15+
env:
16+
DEVELOPER_DIR: /Applications/Xcode.app/Contents/Developer
17+
TEAMID: "5S2WW965AG"
18+
FASTLANE_ISSUER_ID: "289e8063-2271-4b0a-9e3b-6376644ca657"
19+
FASTLANE_KEY_ID: "KUT22ULSV9"
20+
1521
jobs:
1622
build-and-upload:
1723
name: Build and Upload to TestFlight
1824
runs-on: macos-latest
1925

20-
# Only run if required secrets are available
21-
if: |
22-
secrets.TEAMID != '' &&
23-
secrets.FASTLANE_KEY_ID != '' &&
24-
secrets.FASTLANE_ISSUER_ID != '' &&
25-
secrets.FASTLANE_KEY != ''
26-
2726
steps:
2827
- uses: actions/checkout@v4
2928
with:
3029
submodules: recursive
3130

32-
- name: Select Xcode
33-
run: sudo xcode-select -s /Applications/Xcode.app
34-
35-
- name: Install Fastlane
31+
- 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: |
37+
# 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
42+
43+
# Import certificate
44+
echo -n "$BUILD_CERTIFICATE_BASE64" | base64 --decode --output certificate.p12
45+
security import certificate.p12 -k build.keychain -P "$P12_PASSWORD" -T /usr/bin/codesign
46+
security set-key-partition-list -S apple-tool:,apple:,codesign: -s -k "$KEYCHAIN_PASSWORD" build.keychain
47+
48+
- name: Install Ruby and Fastlane
3649
run: |
3750
gem install bundler
3851
bundle install
3952
4053
- name: Setup Provisioning
4154
env:
42-
TEAMID: ${{ secrets.TEAMID }}
43-
FASTLANE_KEY_ID: ${{ secrets.FASTLANE_KEY_ID }}
44-
FASTLANE_ISSUER_ID: ${{ secrets.FASTLANE_ISSUER_ID }}
55+
MATCH_PASSWORD: ${{ secrets.MATCH_PASSWORD }}
4556
FASTLANE_KEY: ${{ secrets.FASTLANE_KEY }}
46-
GH_PAT: ${{ secrets.GH_PAT }}
4757
run: |
48-
bundle exec fastlane setup
58+
# Create fastlane match config
59+
echo "FASTLANE_KEY='$FASTLANE_KEY'" > .env
60+
bundle exec fastlane match appstore
4961
5062
- name: Build and Upload
5163
env:
52-
TEAMID: ${{ secrets.TEAMID }}
53-
FASTLANE_KEY_ID: ${{ secrets.FASTLANE_KEY_ID }}
54-
FASTLANE_ISSUER_ID: ${{ secrets.FASTLANE_ISSUER_ID }}
64+
MATCH_PASSWORD: ${{ secrets.MATCH_PASSWORD }}
5565
FASTLANE_KEY: ${{ secrets.FASTLANE_KEY }}
56-
BUILD_TYPE: ${{ github.event.inputs.build_type }}
5766
run: |
58-
if [ "$BUILD_TYPE" = "release" ]; then
67+
if [ "${{ github.event.inputs.build_type }}" = "release" ]; then
5968
bundle exec fastlane release
6069
else
6170
bundle exec fastlane beta
@@ -68,10 +77,8 @@ jobs:
6877
path: |
6978
Loop.ipa
7079
ExportOptions.plist
71-
72-
- name: Upload Build Logs
80+
81+
- name: Clean up keychain
7382
if: always()
74-
uses: actions/upload-artifact@v3
75-
with:
76-
name: build-logs
77-
path: buildlog/
83+
run: |
84+
security delete-keychain build.keychain

0 commit comments

Comments
 (0)