-
Notifications
You must be signed in to change notification settings - Fork 35
91 lines (76 loc) · 2.88 KB
/
Copy pathios-testflight-release.yml
File metadata and controls
91 lines (76 loc) · 2.88 KB
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
name: ios-testflight-release
on:
workflow_dispatch:
concurrency:
group: ios-testflight-release-${{ github.ref }}
cancel-in-progress: false
permissions:
contents: read
jobs:
testflight:
runs-on: [self-hosted, macOS]
timeout-minutes: 60
defaults:
run:
shell: bash
steps:
- name: Checkout repository
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
- name: Install pnpm
uses: pnpm/action-setup@ac6db6d3c1f721f886538a378a2d73e85697340a # v6.0.8
with:
standalone: true
- name: Set up Node
uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6
with:
node-version-file: ".nvmrc"
cache: "pnpm"
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Build library + web assets
run: pnpm run build:lib && pnpm --filter @tumaet/webapp run build
- name: Add iOS platform (if missing)
working-directory: standalone/webapp
run: |
if [ ! -d "ios" ]; then
pnpm capacitor:add:ios
fi
- name: Capacitor sync (iOS)
working-directory: standalone/webapp
run: pnpm exec cap sync ios
- name: Install Gems
working-directory: standalone/webapp
run: |
eval "$(/opt/homebrew/bin/rbenv init - --no-rehash bash)"
bundle install
- name: Generate build number
run: echo "BUILD_NUMBER=$(date +'%Y%m%d%H%M')" >> "$GITHUB_ENV"
- name: Build iOS app (Fastlane)
working-directory: standalone/webapp
env:
BUILD_NUMBER: ${{ env.BUILD_NUMBER }}
MATCH_GITLAB_AUTH: ${{ secrets.IOS_MATCH_GITLAB_AUTH }}
MATCH_PASSWORD: ${{ secrets.IOS_MATCH_PASSWORD }}
MATCH_GIT_URL: ${{ vars.IOS_MATCH_GIT_URL }}
API_KEY_ID: ${{ secrets.IOS_APP_STORE_CONNECT_API_KEY_KEY_ID }}
API_KEY_ISSUER_ID: ${{ secrets.IOS_APP_STORE_CONNECT_API_KEY_ISSUER_ID }}
API_KEY_PASSWORD: ${{ secrets.IOS_APP_STORE_CONNECT_API_KEY_PASSWORD }}
run: |
eval "$(/opt/homebrew/bin/rbenv init - --no-rehash bash)"
bundle exec fastlane build
- name: Upload to TestFlight (Fastlane)
working-directory: standalone/webapp
env:
API_KEY_ID: ${{ secrets.IOS_APP_STORE_CONNECT_API_KEY_KEY_ID }}
API_KEY_ISSUER_ID: ${{ secrets.IOS_APP_STORE_CONNECT_API_KEY_ISSUER_ID }}
API_KEY_PASSWORD: ${{ secrets.IOS_APP_STORE_CONNECT_API_KEY_PASSWORD }}
run: |
eval "$(/opt/homebrew/bin/rbenv init - --no-rehash bash)"
bundle exec fastlane release
- name: Upload IPA artifact
if: always()
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7
with:
name: ios-ipa
path: standalone/webapp/build/*.ipa
retention-days: 7