-
Notifications
You must be signed in to change notification settings - Fork 83
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
This PR integrates Fastlane, enabling us to easily build and lint against the iOS sample apps. We use [SwiftLint](https://github.com/realm/SwiftLint) and [SwiftFormat](https://github.com/nicklockwood/SwiftFormat), which are both bundled in GitHub's Mac Runner image.
- Loading branch information
1 parent
ae1b8a2
commit f658c2e
Showing
12 changed files
with
403 additions
and
81 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
--indent 2 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
cyclomatic_complexity: | ||
warning: 15 | ||
error: 20 | ||
|
||
function_body_length: | ||
warning: 75 | ||
error: 100 | ||
|
||
line_length: | ||
warning: 150 | ||
error: 200 | ||
ignores_function_declarations: true | ||
ignores_comments: true | ||
ignores_urls: true | ||
|
||
disabled_rules: | ||
- todo | ||
|
||
opt_in_rules: | ||
- sorted_imports |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
source "https://rubygems.org" | ||
|
||
gem "fastlane" | ||
gem "fastlane-plugin-swiftformat" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,219 @@ | ||
GEM | ||
remote: https://rubygems.org/ | ||
specs: | ||
CFPropertyList (3.0.6) | ||
rexml | ||
addressable (2.8.6) | ||
public_suffix (>= 2.0.2, < 6.0) | ||
artifactory (3.0.15) | ||
atomos (0.1.3) | ||
aws-eventstream (1.3.0) | ||
aws-partitions (1.877.0) | ||
aws-sdk-core (3.190.2) | ||
aws-eventstream (~> 1, >= 1.3.0) | ||
aws-partitions (~> 1, >= 1.651.0) | ||
aws-sigv4 (~> 1.8) | ||
jmespath (~> 1, >= 1.6.1) | ||
aws-sdk-kms (1.76.0) | ||
aws-sdk-core (~> 3, >= 3.188.0) | ||
aws-sigv4 (~> 1.1) | ||
aws-sdk-s3 (1.142.0) | ||
aws-sdk-core (~> 3, >= 3.189.0) | ||
aws-sdk-kms (~> 1) | ||
aws-sigv4 (~> 1.8) | ||
aws-sigv4 (1.8.0) | ||
aws-eventstream (~> 1, >= 1.0.2) | ||
babosa (1.0.4) | ||
claide (1.1.0) | ||
colored (1.2) | ||
colored2 (3.1.2) | ||
commander (4.6.0) | ||
highline (~> 2.0.0) | ||
declarative (0.0.20) | ||
digest-crc (0.6.5) | ||
rake (>= 12.0.0, < 14.0.0) | ||
domain_name (0.6.20240107) | ||
dotenv (2.8.1) | ||
emoji_regex (3.2.3) | ||
excon (0.109.0) | ||
faraday (1.10.3) | ||
faraday-em_http (~> 1.0) | ||
faraday-em_synchrony (~> 1.0) | ||
faraday-excon (~> 1.1) | ||
faraday-httpclient (~> 1.0) | ||
faraday-multipart (~> 1.0) | ||
faraday-net_http (~> 1.0) | ||
faraday-net_http_persistent (~> 1.0) | ||
faraday-patron (~> 1.0) | ||
faraday-rack (~> 1.0) | ||
faraday-retry (~> 1.0) | ||
ruby2_keywords (>= 0.0.4) | ||
faraday-cookie_jar (0.0.7) | ||
faraday (>= 0.8.0) | ||
http-cookie (~> 1.0.0) | ||
faraday-em_http (1.0.0) | ||
faraday-em_synchrony (1.0.0) | ||
faraday-excon (1.1.0) | ||
faraday-httpclient (1.0.1) | ||
faraday-multipart (1.0.4) | ||
multipart-post (~> 2) | ||
faraday-net_http (1.0.1) | ||
faraday-net_http_persistent (1.2.0) | ||
faraday-patron (1.0.0) | ||
faraday-rack (1.0.0) | ||
faraday-retry (1.0.3) | ||
faraday_middleware (1.2.0) | ||
faraday (~> 1.0) | ||
fastimage (2.3.0) | ||
fastlane (2.219.0) | ||
CFPropertyList (>= 2.3, < 4.0.0) | ||
addressable (>= 2.8, < 3.0.0) | ||
artifactory (~> 3.0) | ||
aws-sdk-s3 (~> 1.0) | ||
babosa (>= 1.0.3, < 2.0.0) | ||
bundler (>= 1.12.0, < 3.0.0) | ||
colored | ||
commander (~> 4.6) | ||
dotenv (>= 2.1.1, < 3.0.0) | ||
emoji_regex (>= 0.1, < 4.0) | ||
excon (>= 0.71.0, < 1.0.0) | ||
faraday (~> 1.0) | ||
faraday-cookie_jar (~> 0.0.6) | ||
faraday_middleware (~> 1.0) | ||
fastimage (>= 2.1.0, < 3.0.0) | ||
gh_inspector (>= 1.1.2, < 2.0.0) | ||
google-apis-androidpublisher_v3 (~> 0.3) | ||
google-apis-playcustomapp_v1 (~> 0.1) | ||
google-cloud-env (>= 1.6.0, < 2.0.0) | ||
google-cloud-storage (~> 1.31) | ||
highline (~> 2.0) | ||
http-cookie (~> 1.0.5) | ||
json (< 3.0.0) | ||
jwt (>= 2.1.0, < 3) | ||
mini_magick (>= 4.9.4, < 5.0.0) | ||
multipart-post (>= 2.0.0, < 3.0.0) | ||
naturally (~> 2.2) | ||
optparse (>= 0.1.1) | ||
plist (>= 3.1.0, < 4.0.0) | ||
rubyzip (>= 2.0.0, < 3.0.0) | ||
security (= 0.1.3) | ||
simctl (~> 1.6.3) | ||
terminal-notifier (>= 2.0.0, < 3.0.0) | ||
terminal-table (~> 3) | ||
tty-screen (>= 0.6.3, < 1.0.0) | ||
tty-spinner (>= 0.8.0, < 1.0.0) | ||
word_wrap (~> 1.0.0) | ||
xcodeproj (>= 1.13.0, < 2.0.0) | ||
xcpretty (~> 0.3.0) | ||
xcpretty-travis-formatter (>= 0.0.3) | ||
fastlane-plugin-swiftformat (0.3.0) | ||
gh_inspector (1.1.3) | ||
google-apis-androidpublisher_v3 (0.54.0) | ||
google-apis-core (>= 0.11.0, < 2.a) | ||
google-apis-core (0.11.2) | ||
addressable (~> 2.5, >= 2.5.1) | ||
googleauth (>= 0.16.2, < 2.a) | ||
httpclient (>= 2.8.1, < 3.a) | ||
mini_mime (~> 1.0) | ||
representable (~> 3.0) | ||
retriable (>= 2.0, < 4.a) | ||
rexml | ||
webrick | ||
google-apis-iamcredentials_v1 (0.17.0) | ||
google-apis-core (>= 0.11.0, < 2.a) | ||
google-apis-playcustomapp_v1 (0.13.0) | ||
google-apis-core (>= 0.11.0, < 2.a) | ||
google-apis-storage_v1 (0.31.0) | ||
google-apis-core (>= 0.11.0, < 2.a) | ||
google-cloud-core (1.6.1) | ||
google-cloud-env (>= 1.0, < 3.a) | ||
google-cloud-errors (~> 1.0) | ||
google-cloud-env (1.6.0) | ||
faraday (>= 0.17.3, < 3.0) | ||
google-cloud-errors (1.3.1) | ||
google-cloud-storage (1.47.0) | ||
addressable (~> 2.8) | ||
digest-crc (~> 0.4) | ||
google-apis-iamcredentials_v1 (~> 0.1) | ||
google-apis-storage_v1 (~> 0.31.0) | ||
google-cloud-core (~> 1.6) | ||
googleauth (>= 0.16.2, < 2.a) | ||
mini_mime (~> 1.0) | ||
googleauth (1.8.1) | ||
faraday (>= 0.17.3, < 3.a) | ||
jwt (>= 1.4, < 3.0) | ||
multi_json (~> 1.11) | ||
os (>= 0.9, < 2.0) | ||
signet (>= 0.16, < 2.a) | ||
highline (2.0.3) | ||
http-cookie (1.0.5) | ||
domain_name (~> 0.5) | ||
httpclient (2.8.3) | ||
jmespath (1.6.2) | ||
json (2.7.1) | ||
jwt (2.7.1) | ||
mini_magick (4.12.0) | ||
mini_mime (1.1.5) | ||
multi_json (1.15.0) | ||
multipart-post (2.3.0) | ||
nanaimo (0.3.0) | ||
naturally (2.2.1) | ||
optparse (0.4.0) | ||
os (1.1.4) | ||
plist (3.7.1) | ||
public_suffix (5.0.4) | ||
rake (13.1.0) | ||
representable (3.2.0) | ||
declarative (< 0.1.0) | ||
trailblazer-option (>= 0.1.1, < 0.2.0) | ||
uber (< 0.2.0) | ||
retriable (3.1.2) | ||
rexml (3.2.6) | ||
rouge (2.0.7) | ||
ruby2_keywords (0.0.5) | ||
rubyzip (2.3.2) | ||
security (0.1.3) | ||
signet (0.18.0) | ||
addressable (~> 2.8) | ||
faraday (>= 0.17.5, < 3.a) | ||
jwt (>= 1.5, < 3.0) | ||
multi_json (~> 1.10) | ||
simctl (1.6.10) | ||
CFPropertyList | ||
naturally | ||
terminal-notifier (2.0.0) | ||
terminal-table (3.0.2) | ||
unicode-display_width (>= 1.1.1, < 3) | ||
trailblazer-option (0.1.2) | ||
tty-cursor (0.7.1) | ||
tty-screen (0.8.2) | ||
tty-spinner (0.9.3) | ||
tty-cursor (~> 0.7) | ||
uber (0.1.0) | ||
unicode-display_width (2.5.0) | ||
webrick (1.8.1) | ||
word_wrap (1.0.0) | ||
xcodeproj (1.23.0) | ||
CFPropertyList (>= 2.3.3, < 4.0) | ||
atomos (~> 0.1.3) | ||
claide (>= 1.0.2, < 2.0) | ||
colored2 (~> 3.1) | ||
nanaimo (~> 0.3.0) | ||
rexml (~> 3.2.4) | ||
xcpretty (0.3.0) | ||
rouge (~> 2.0.7) | ||
xcpretty-travis-formatter (1.0.1) | ||
xcpretty (~> 0.2, >= 0.0.7) | ||
|
||
PLATFORMS | ||
arm64-darwin-22 | ||
ruby | ||
x86_64-darwin-20 | ||
x86_64-linux | ||
|
||
DEPENDENCIES | ||
fastlane | ||
fastlane-plugin-swiftformat | ||
|
||
BUNDLED WITH | ||
2.5.3 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,61 @@ | ||
skip_docs | ||
|
||
platform :ios do | ||
projects = ["samples/counter/apps/iosApp"] | ||
|
||
lane :lint do | ||
for project in projects | ||
swiftlint( | ||
mode: :lint, | ||
path: project, | ||
strict: true, | ||
raise_if_swiftlint_error: true, | ||
config_file: ".swiftlint.yml" | ||
) | ||
|
||
swiftformat( | ||
path: project, | ||
swiftversion: "5.0", | ||
config: ".swiftformat", | ||
lint: true | ||
) | ||
end | ||
end | ||
|
||
lane :lint_fix do | ||
for project in projects | ||
swiftlint( | ||
mode: :fix, | ||
path: project, | ||
strict: true, | ||
raise_if_swiftlint_error: true, | ||
config_file: ".swiftlint.yml" | ||
) | ||
|
||
swiftformat( | ||
path: project, | ||
swiftversion: "5.0", | ||
config: ".swiftformat", | ||
) | ||
end | ||
end | ||
|
||
lane :build_counter do |options| | ||
setup_ci if ENV['CI'] | ||
# Clear any existing Xcode derived data, so that we're starting from fresh | ||
clear_derived_data if ENV['CI'] | ||
|
||
build_app( | ||
project: "samples/counter/apps/iosApp/Counter.xcodeproj", | ||
buildlog_path: "samples/counter/apps/iosApp/build/fastlane-buildlog", | ||
# We do not have signing setup, so turn off any related settings | ||
skip_package_ipa: true, | ||
skip_codesigning: true, | ||
) | ||
end | ||
|
||
lane :build do | ||
build_counter | ||
end | ||
|
||
end |
Oops, something went wrong.