Skip to content

Commit 0b01cf9

Browse files
ps2budsterblue
andauthored
FastLane + GitHub Actions + TestFlight = Mac-free Loop install (LoopKit#26)
FastLane + GitHub Actions + TestFlight supporting changes. Co-authored-by: budsterblue <budsterblue@gmail.com>
1 parent 5e13d94 commit 0b01cf9

File tree

8 files changed

+687
-0
lines changed

8 files changed

+687
-0
lines changed

.github/workflows/add_identifiers.yml

+30
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
name: Add Identifiers
2+
on:
3+
workflow_dispatch:
4+
5+
jobs:
6+
identifiers:
7+
runs-on: macos-12
8+
steps:
9+
# Uncomment to manually select latest Xcode if needed
10+
#- name: Select Latest Xcode
11+
# run: "sudo xcode-select --switch /Applications/Xcode_13.0.app/Contents/Developer"
12+
13+
# Checks-out the repo
14+
- name: Checkout Repo
15+
uses: actions/checkout@v2
16+
17+
# Patch Fastlane Match to not print tables
18+
- name: Patch Match Tables
19+
run: find /usr/local/lib/ruby/gems -name table_printer.rb | xargs sed -i "" "/puts(Terminal::Table.new(params))/d"
20+
21+
# Create or update identifiers for app
22+
- name: Fastlane Provision
23+
run: fastlane identifiers
24+
env:
25+
TEAMID: ${{ secrets.TEAMID }}
26+
GH_PAT: ${{ secrets.GH_PAT }}
27+
MATCH_PASSWORD: ${{ secrets.MATCH_PASSWORD }}
28+
FASTLANE_KEY_ID: ${{ secrets.FASTLANE_KEY_ID }}
29+
FASTLANE_ISSUER_ID: ${{ secrets.FASTLANE_ISSUER_ID }}
30+
FASTLANE_KEY: ${{ secrets.FASTLANE_KEY }}

.github/workflows/build_loop.yml

+43
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
name: Build Loop
2+
on:
3+
workflow_dispatch:
4+
5+
jobs:
6+
build:
7+
runs-on: macos-12
8+
steps:
9+
# Uncomment to manually select latest Xcode if needed
10+
- name: Select Latest Xcode
11+
run: "sudo xcode-select --switch /Applications/Xcode_14.1.app/Contents/Developer"
12+
13+
# Checks-out the repo
14+
- name: Checkout Repo
15+
uses: actions/checkout@v2
16+
with:
17+
submodules: recursive
18+
19+
# Patch Fastlane Match to not print tables
20+
- name: Patch Match Tables
21+
run: find /usr/local/lib/ruby/gems -name table_printer.rb | xargs sed -i "" "/puts(Terminal::Table.new(params))/d"
22+
23+
# Build signed Loop IPA file
24+
- name: Fastlane Build & Archive
25+
run: fastlane build_loop
26+
env:
27+
TEAMID: ${{ secrets.TEAMID }}
28+
GH_PAT: ${{ secrets.GH_PAT }}
29+
FASTLANE_KEY_ID: ${{ secrets.FASTLANE_KEY_ID }}
30+
FASTLANE_ISSUER_ID: ${{ secrets.FASTLANE_ISSUER_ID }}
31+
FASTLANE_KEY: ${{ secrets.FASTLANE_KEY }}
32+
MATCH_PASSWORD: ${{ secrets.MATCH_PASSWORD }}
33+
34+
# Upload encrypted output as artifact
35+
- name: Fastlane upload to TestFlight
36+
run: fastlane release
37+
env:
38+
TEAMID: ${{ secrets.TEAMID }}
39+
GH_PAT: ${{ secrets.GH_PAT }}
40+
FASTLANE_KEY_ID: ${{ secrets.FASTLANE_KEY_ID }}
41+
FASTLANE_ISSUER_ID: ${{ secrets.FASTLANE_ISSUER_ID }}
42+
FASTLANE_KEY: ${{ secrets.FASTLANE_KEY }}
43+
MATCH_PASSWORD: ${{ secrets.MATCH_PASSWORD }}

.github/workflows/create_certs.yml

+30
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
name: Create Certificates
2+
on:
3+
workflow_dispatch:
4+
5+
jobs:
6+
certificates:
7+
runs-on: macos-12
8+
steps:
9+
# Uncomment to manually select latest Xcode if needed
10+
#- name: Select Latest Xcode
11+
# run: "sudo xcode-select --switch /Applications/Xcode_13.0.app/Contents/Developer"
12+
13+
# Checks-out the repo
14+
- name: Checkout Repo
15+
uses: actions/checkout@v2
16+
17+
# Patch Fastlane Match to not print tables
18+
- name: Patch Match Tables
19+
run: find /usr/local/lib/ruby/gems -name table_printer.rb | xargs sed -i "" "/puts(Terminal::Table.new(params))/d"
20+
21+
# Create or update certificates for app
22+
- name: Create Certificates
23+
run: fastlane certs
24+
env:
25+
TEAMID: ${{ secrets.TEAMID }}
26+
GH_PAT: ${{ secrets.GH_PAT }}
27+
MATCH_PASSWORD: ${{ secrets.MATCH_PASSWORD }}
28+
FASTLANE_KEY_ID: ${{ secrets.FASTLANE_KEY_ID }}
29+
FASTLANE_ISSUER_ID: ${{ secrets.FASTLANE_ISSUER_ID }}
30+
FASTLANE_KEY: ${{ secrets.FASTLANE_KEY }}

Gemfile

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
source "https://rubygems.org"
2+
3+
gem "fastlane"

Gemfile.lock

+215
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,215 @@
1+
GEM
2+
remote: https://rubygems.org/
3+
specs:
4+
CFPropertyList (3.0.4)
5+
rexml
6+
addressable (2.8.0)
7+
public_suffix (>= 2.0.2, < 5.0)
8+
artifactory (3.0.15)
9+
atomos (0.1.3)
10+
aws-eventstream (1.2.0)
11+
aws-partitions (1.516.0)
12+
aws-sdk-core (3.121.2)
13+
aws-eventstream (~> 1, >= 1.0.2)
14+
aws-partitions (~> 1, >= 1.239.0)
15+
aws-sigv4 (~> 1.1)
16+
jmespath (~> 1.0)
17+
aws-sdk-kms (1.50.0)
18+
aws-sdk-core (~> 3, >= 3.121.2)
19+
aws-sigv4 (~> 1.1)
20+
aws-sdk-s3 (1.104.0)
21+
aws-sdk-core (~> 3, >= 3.121.2)
22+
aws-sdk-kms (~> 1)
23+
aws-sigv4 (~> 1.4)
24+
aws-sigv4 (1.4.0)
25+
aws-eventstream (~> 1, >= 1.0.2)
26+
babosa (1.0.4)
27+
claide (1.0.3)
28+
colored (1.2)
29+
colored2 (3.1.2)
30+
commander (4.6.0)
31+
highline (~> 2.0.0)
32+
declarative (0.0.20)
33+
digest-crc (0.6.4)
34+
rake (>= 12.0.0, < 14.0.0)
35+
domain_name (0.5.20190701)
36+
unf (>= 0.0.5, < 1.0.0)
37+
dotenv (2.7.6)
38+
emoji_regex (3.2.3)
39+
excon (0.87.0)
40+
faraday (1.8.0)
41+
faraday-em_http (~> 1.0)
42+
faraday-em_synchrony (~> 1.0)
43+
faraday-excon (~> 1.1)
44+
faraday-httpclient (~> 1.0.1)
45+
faraday-net_http (~> 1.0)
46+
faraday-net_http_persistent (~> 1.1)
47+
faraday-patron (~> 1.0)
48+
faraday-rack (~> 1.0)
49+
multipart-post (>= 1.2, < 3)
50+
ruby2_keywords (>= 0.0.4)
51+
faraday-cookie_jar (0.0.7)
52+
faraday (>= 0.8.0)
53+
http-cookie (~> 1.0.0)
54+
faraday-em_http (1.0.0)
55+
faraday-em_synchrony (1.0.0)
56+
faraday-excon (1.1.0)
57+
faraday-httpclient (1.0.1)
58+
faraday-net_http (1.0.1)
59+
faraday-net_http_persistent (1.2.0)
60+
faraday-patron (1.0.0)
61+
faraday-rack (1.0.0)
62+
faraday_middleware (1.2.0)
63+
faraday (~> 1.0)
64+
fastimage (2.2.5)
65+
fastlane (2.196.0)
66+
CFPropertyList (>= 2.3, < 4.0.0)
67+
addressable (>= 2.8, < 3.0.0)
68+
artifactory (~> 3.0)
69+
aws-sdk-s3 (~> 1.0)
70+
babosa (>= 1.0.3, < 2.0.0)
71+
bundler (>= 1.12.0, < 3.0.0)
72+
colored
73+
commander (~> 4.6)
74+
dotenv (>= 2.1.1, < 3.0.0)
75+
emoji_regex (>= 0.1, < 4.0)
76+
excon (>= 0.71.0, < 1.0.0)
77+
faraday (~> 1.0)
78+
faraday-cookie_jar (~> 0.0.6)
79+
faraday_middleware (~> 1.0)
80+
fastimage (>= 2.1.0, < 3.0.0)
81+
gh_inspector (>= 1.1.2, < 2.0.0)
82+
google-apis-androidpublisher_v3 (~> 0.3)
83+
google-apis-playcustomapp_v1 (~> 0.1)
84+
google-cloud-storage (~> 1.31)
85+
highline (~> 2.0)
86+
json (< 3.0.0)
87+
jwt (>= 2.1.0, < 3)
88+
mini_magick (>= 4.9.4, < 5.0.0)
89+
multipart-post (~> 2.0.0)
90+
naturally (~> 2.2)
91+
optparse (~> 0.1.1)
92+
plist (>= 3.1.0, < 4.0.0)
93+
rubyzip (>= 2.0.0, < 3.0.0)
94+
security (= 0.1.3)
95+
simctl (~> 1.6.3)
96+
terminal-notifier (>= 2.0.0, < 3.0.0)
97+
terminal-table (>= 1.4.5, < 2.0.0)
98+
tty-screen (>= 0.6.3, < 1.0.0)
99+
tty-spinner (>= 0.8.0, < 1.0.0)
100+
word_wrap (~> 1.0.0)
101+
xcodeproj (>= 1.13.0, < 2.0.0)
102+
xcpretty (~> 0.3.0)
103+
xcpretty-travis-formatter (>= 0.0.3)
104+
gh_inspector (1.1.3)
105+
google-apis-androidpublisher_v3 (0.12.0)
106+
google-apis-core (>= 0.4, < 2.a)
107+
google-apis-core (0.4.1)
108+
addressable (~> 2.5, >= 2.5.1)
109+
googleauth (>= 0.16.2, < 2.a)
110+
httpclient (>= 2.8.1, < 3.a)
111+
mini_mime (~> 1.0)
112+
representable (~> 3.0)
113+
retriable (>= 2.0, < 4.a)
114+
rexml
115+
webrick
116+
google-apis-iamcredentials_v1 (0.7.0)
117+
google-apis-core (>= 0.4, < 2.a)
118+
google-apis-playcustomapp_v1 (0.5.0)
119+
google-apis-core (>= 0.4, < 2.a)
120+
google-apis-storage_v1 (0.8.0)
121+
google-apis-core (>= 0.4, < 2.a)
122+
google-cloud-core (1.6.0)
123+
google-cloud-env (~> 1.0)
124+
google-cloud-errors (~> 1.0)
125+
google-cloud-env (1.5.0)
126+
faraday (>= 0.17.3, < 2.0)
127+
google-cloud-errors (1.2.0)
128+
google-cloud-storage (1.34.1)
129+
addressable (~> 2.5)
130+
digest-crc (~> 0.4)
131+
google-apis-iamcredentials_v1 (~> 0.1)
132+
google-apis-storage_v1 (~> 0.1)
133+
google-cloud-core (~> 1.6)
134+
googleauth (>= 0.16.2, < 2.a)
135+
mini_mime (~> 1.0)
136+
googleauth (1.0.0)
137+
faraday (>= 0.17.3, < 2.0)
138+
jwt (>= 1.4, < 3.0)
139+
memoist (~> 0.16)
140+
multi_json (~> 1.11)
141+
os (>= 0.9, < 2.0)
142+
signet (>= 0.16, < 2.a)
143+
highline (2.0.3)
144+
http-cookie (1.0.4)
145+
domain_name (~> 0.5)
146+
httpclient (2.8.3)
147+
jmespath (1.4.0)
148+
json (2.6.0)
149+
jwt (2.3.0)
150+
memoist (0.16.2)
151+
mini_magick (4.11.0)
152+
mini_mime (1.1.2)
153+
multi_json (1.15.0)
154+
multipart-post (2.0.0)
155+
nanaimo (0.3.0)
156+
naturally (2.2.1)
157+
optparse (0.1.1)
158+
os (1.1.1)
159+
plist (3.6.0)
160+
public_suffix (4.0.6)
161+
rake (13.0.6)
162+
representable (3.1.1)
163+
declarative (< 0.1.0)
164+
trailblazer-option (>= 0.1.1, < 0.2.0)
165+
uber (< 0.2.0)
166+
retriable (3.1.2)
167+
rexml (3.2.5)
168+
rouge (2.0.7)
169+
ruby2_keywords (0.0.5)
170+
rubyzip (2.3.2)
171+
security (0.1.3)
172+
signet (0.16.0)
173+
addressable (~> 2.8)
174+
faraday (>= 0.17.3, < 2.0)
175+
jwt (>= 1.5, < 3.0)
176+
multi_json (~> 1.10)
177+
simctl (1.6.8)
178+
CFPropertyList
179+
naturally
180+
terminal-notifier (2.0.0)
181+
terminal-table (1.8.0)
182+
unicode-display_width (~> 1.1, >= 1.1.1)
183+
trailblazer-option (0.1.1)
184+
tty-cursor (0.7.1)
185+
tty-screen (0.8.1)
186+
tty-spinner (0.9.3)
187+
tty-cursor (~> 0.7)
188+
uber (0.1.0)
189+
unf (0.1.4)
190+
unf_ext
191+
unf_ext (0.0.8)
192+
unicode-display_width (1.8.0)
193+
webrick (1.7.0)
194+
word_wrap (1.0.0)
195+
xcodeproj (1.21.0)
196+
CFPropertyList (>= 2.3.3, < 4.0)
197+
atomos (~> 0.1.3)
198+
claide (>= 1.0.2, < 2.0)
199+
colored2 (~> 3.1)
200+
nanaimo (~> 0.3.0)
201+
rexml (~> 3.2.4)
202+
xcpretty (0.3.0)
203+
rouge (~> 2.0.7)
204+
xcpretty-travis-formatter (1.0.1)
205+
xcpretty (~> 0.2, >= 0.0.7)
206+
207+
PLATFORMS
208+
arm64-darwin-21
209+
x86_64-darwin-19
210+
211+
DEPENDENCIES
212+
fastlane
213+
214+
BUNDLED WITH
215+
2.3.26

0 commit comments

Comments
 (0)