mirror of
https://github.com/ppy/osu.git
synced 2025-01-06 08:22:56 +08:00
Merge pull request #4380 from peppy/fastlane
Add iOS build automation via fastlane
This commit is contained in:
commit
c9bd4f6c4c
1
.gitignore
vendored
1
.gitignore
vendored
@ -14,6 +14,7 @@
|
|||||||
tools/**
|
tools/**
|
||||||
build/tools/**
|
build/tools/**
|
||||||
|
|
||||||
|
fastlane/report.xml
|
||||||
|
|
||||||
# Build results
|
# Build results
|
||||||
bin/[Dd]ebug/
|
bin/[Dd]ebug/
|
||||||
|
6
Gemfile
Normal file
6
Gemfile
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
source "https://rubygems.org"
|
||||||
|
|
||||||
|
gem "fastlane"
|
||||||
|
|
||||||
|
plugins_path = File.join(File.dirname(__FILE__), 'fastlane', 'Pluginfile')
|
||||||
|
eval_gemfile(plugins_path) if File.exist?(plugins_path)
|
173
Gemfile.lock
Normal file
173
Gemfile.lock
Normal file
@ -0,0 +1,173 @@
|
|||||||
|
GEM
|
||||||
|
remote: https://rubygems.org/
|
||||||
|
specs:
|
||||||
|
CFPropertyList (3.0.0)
|
||||||
|
addressable (2.6.0)
|
||||||
|
public_suffix (>= 2.0.2, < 4.0)
|
||||||
|
atomos (0.1.3)
|
||||||
|
babosa (1.0.2)
|
||||||
|
claide (1.0.2)
|
||||||
|
colored (1.2)
|
||||||
|
colored2 (3.1.2)
|
||||||
|
commander-fastlane (4.4.6)
|
||||||
|
highline (~> 1.7.2)
|
||||||
|
declarative (0.0.10)
|
||||||
|
declarative-option (0.1.0)
|
||||||
|
digest-crc (0.4.1)
|
||||||
|
domain_name (0.5.20180417)
|
||||||
|
unf (>= 0.0.5, < 1.0.0)
|
||||||
|
dotenv (2.7.1)
|
||||||
|
emoji_regex (1.0.1)
|
||||||
|
excon (0.62.0)
|
||||||
|
faraday (0.15.4)
|
||||||
|
multipart-post (>= 1.2, < 3)
|
||||||
|
faraday-cookie_jar (0.0.6)
|
||||||
|
faraday (>= 0.7.4)
|
||||||
|
http-cookie (~> 1.0.0)
|
||||||
|
faraday_middleware (0.13.1)
|
||||||
|
faraday (>= 0.7.4, < 1.0)
|
||||||
|
fastimage (2.1.5)
|
||||||
|
fastlane (2.117.0)
|
||||||
|
CFPropertyList (>= 2.3, < 4.0.0)
|
||||||
|
addressable (>= 2.3, < 3.0.0)
|
||||||
|
babosa (>= 1.0.2, < 2.0.0)
|
||||||
|
bundler (>= 1.12.0, < 3.0.0)
|
||||||
|
colored
|
||||||
|
commander-fastlane (>= 4.4.6, < 5.0.0)
|
||||||
|
dotenv (>= 2.1.1, < 3.0.0)
|
||||||
|
emoji_regex (>= 0.1, < 2.0)
|
||||||
|
excon (>= 0.45.0, < 1.0.0)
|
||||||
|
faraday (~> 0.9)
|
||||||
|
faraday-cookie_jar (~> 0.0.6)
|
||||||
|
faraday_middleware (~> 0.9)
|
||||||
|
fastimage (>= 2.1.0, < 3.0.0)
|
||||||
|
gh_inspector (>= 1.1.2, < 2.0.0)
|
||||||
|
google-api-client (>= 0.21.2, < 0.24.0)
|
||||||
|
google-cloud-storage (>= 1.15.0, < 2.0.0)
|
||||||
|
highline (>= 1.7.2, < 2.0.0)
|
||||||
|
json (< 3.0.0)
|
||||||
|
mini_magick (~> 4.5.1)
|
||||||
|
multi_json
|
||||||
|
multi_xml (~> 0.5)
|
||||||
|
multipart-post (~> 2.0.0)
|
||||||
|
plist (>= 3.1.0, < 4.0.0)
|
||||||
|
public_suffix (~> 2.0.0)
|
||||||
|
rubyzip (>= 1.2.2, < 2.0.0)
|
||||||
|
security (= 0.1.3)
|
||||||
|
simctl (~> 1.6.3)
|
||||||
|
slack-notifier (>= 2.0.0, < 3.0.0)
|
||||||
|
terminal-notifier (>= 1.6.2, < 2.0.0)
|
||||||
|
terminal-table (>= 1.4.5, < 2.0.0)
|
||||||
|
tty-screen (>= 0.6.3, < 1.0.0)
|
||||||
|
tty-spinner (>= 0.8.0, < 1.0.0)
|
||||||
|
word_wrap (~> 1.0.0)
|
||||||
|
xcodeproj (>= 1.6.0, < 2.0.0)
|
||||||
|
xcpretty (~> 0.3.0)
|
||||||
|
xcpretty-travis-formatter (>= 0.0.3)
|
||||||
|
fastlane-plugin-clean_testflight_testers (0.2.0)
|
||||||
|
fastlane-plugin-souyuz (0.8.1)
|
||||||
|
souyuz (>= 0.8.1)
|
||||||
|
fastlane-plugin-xamarin (0.6.3)
|
||||||
|
gh_inspector (1.1.3)
|
||||||
|
google-api-client (0.23.9)
|
||||||
|
addressable (~> 2.5, >= 2.5.1)
|
||||||
|
googleauth (>= 0.5, < 0.7.0)
|
||||||
|
httpclient (>= 2.8.1, < 3.0)
|
||||||
|
mime-types (~> 3.0)
|
||||||
|
representable (~> 3.0)
|
||||||
|
retriable (>= 2.0, < 4.0)
|
||||||
|
signet (~> 0.9)
|
||||||
|
google-cloud-core (1.3.0)
|
||||||
|
google-cloud-env (~> 1.0)
|
||||||
|
google-cloud-env (1.0.5)
|
||||||
|
faraday (~> 0.11)
|
||||||
|
google-cloud-storage (1.16.0)
|
||||||
|
digest-crc (~> 0.4)
|
||||||
|
google-api-client (~> 0.23)
|
||||||
|
google-cloud-core (~> 1.2)
|
||||||
|
googleauth (>= 0.6.2, < 0.10.0)
|
||||||
|
googleauth (0.6.7)
|
||||||
|
faraday (~> 0.12)
|
||||||
|
jwt (>= 1.4, < 3.0)
|
||||||
|
memoist (~> 0.16)
|
||||||
|
multi_json (~> 1.11)
|
||||||
|
os (>= 0.9, < 2.0)
|
||||||
|
signet (~> 0.7)
|
||||||
|
highline (1.7.10)
|
||||||
|
http-cookie (1.0.3)
|
||||||
|
domain_name (~> 0.5)
|
||||||
|
httpclient (2.8.3)
|
||||||
|
json (2.2.0)
|
||||||
|
jwt (2.1.0)
|
||||||
|
memoist (0.16.0)
|
||||||
|
mime-types (3.2.2)
|
||||||
|
mime-types-data (~> 3.2015)
|
||||||
|
mime-types-data (3.2018.0812)
|
||||||
|
mini_magick (4.5.1)
|
||||||
|
mini_portile2 (2.4.0)
|
||||||
|
multi_json (1.13.1)
|
||||||
|
multi_xml (0.6.0)
|
||||||
|
multipart-post (2.0.0)
|
||||||
|
nanaimo (0.2.6)
|
||||||
|
naturally (2.2.0)
|
||||||
|
nokogiri (1.10.1)
|
||||||
|
mini_portile2 (~> 2.4.0)
|
||||||
|
os (1.0.0)
|
||||||
|
plist (3.5.0)
|
||||||
|
public_suffix (2.0.5)
|
||||||
|
representable (3.0.4)
|
||||||
|
declarative (< 0.1.0)
|
||||||
|
declarative-option (< 0.2.0)
|
||||||
|
uber (< 0.2.0)
|
||||||
|
retriable (3.1.2)
|
||||||
|
rouge (2.0.7)
|
||||||
|
rubyzip (1.2.2)
|
||||||
|
security (0.1.3)
|
||||||
|
signet (0.11.0)
|
||||||
|
addressable (~> 2.3)
|
||||||
|
faraday (~> 0.9)
|
||||||
|
jwt (>= 1.5, < 3.0)
|
||||||
|
multi_json (~> 1.10)
|
||||||
|
simctl (1.6.5)
|
||||||
|
CFPropertyList
|
||||||
|
naturally
|
||||||
|
slack-notifier (2.3.2)
|
||||||
|
souyuz (0.8.1)
|
||||||
|
fastlane (>= 2.29.0)
|
||||||
|
highline (~> 1.7)
|
||||||
|
nokogiri (~> 1.7)
|
||||||
|
terminal-notifier (1.8.0)
|
||||||
|
terminal-table (1.8.0)
|
||||||
|
unicode-display_width (~> 1.1, >= 1.1.1)
|
||||||
|
tty-cursor (0.6.1)
|
||||||
|
tty-screen (0.6.5)
|
||||||
|
tty-spinner (0.9.0)
|
||||||
|
tty-cursor (~> 0.6.0)
|
||||||
|
uber (0.1.0)
|
||||||
|
unf (0.1.4)
|
||||||
|
unf_ext
|
||||||
|
unf_ext (0.0.7.5)
|
||||||
|
unicode-display_width (1.4.1)
|
||||||
|
word_wrap (1.0.0)
|
||||||
|
xcodeproj (1.8.1)
|
||||||
|
CFPropertyList (>= 2.3.3, < 4.0)
|
||||||
|
atomos (~> 0.1.3)
|
||||||
|
claide (>= 1.0.2, < 2.0)
|
||||||
|
colored2 (~> 3.1)
|
||||||
|
nanaimo (~> 0.2.6)
|
||||||
|
xcpretty (0.3.0)
|
||||||
|
rouge (~> 2.0.7)
|
||||||
|
xcpretty-travis-formatter (1.0.0)
|
||||||
|
xcpretty (~> 0.2, >= 0.0.7)
|
||||||
|
|
||||||
|
PLATFORMS
|
||||||
|
ruby
|
||||||
|
|
||||||
|
DEPENDENCIES
|
||||||
|
fastlane
|
||||||
|
fastlane-plugin-clean_testflight_testers
|
||||||
|
fastlane-plugin-souyuz
|
||||||
|
fastlane-plugin-xamarin
|
||||||
|
|
||||||
|
BUNDLED WITH
|
||||||
|
2.0.1
|
2
fastlane/Appfile
Normal file
2
fastlane/Appfile
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
app_identifier("sh.ppy.osulazer") # The bundle identifier of your app
|
||||||
|
apple_id("apple-dev@ppy.sh") # Your Apple email address
|
65
fastlane/Fastfile
Normal file
65
fastlane/Fastfile
Normal file
@ -0,0 +1,65 @@
|
|||||||
|
update_fastlane
|
||||||
|
|
||||||
|
default_platform(:ios)
|
||||||
|
|
||||||
|
platform :ios do
|
||||||
|
lane :testflight_prune_dry do
|
||||||
|
clean_testflight_testers(days_of_inactivity:45, dry_run: true)
|
||||||
|
end
|
||||||
|
|
||||||
|
# Specify a custom number for what's "inactive"
|
||||||
|
lane :testflight_prune do
|
||||||
|
clean_testflight_testers(days_of_inactivity: 45) # 120 days, so about 4 months
|
||||||
|
end
|
||||||
|
|
||||||
|
lane :update_version do |options|
|
||||||
|
options[:plist_path] = '../osu.iOS/Info.plist'
|
||||||
|
app_version(options)
|
||||||
|
end
|
||||||
|
|
||||||
|
desc 'Deploy to testflight'
|
||||||
|
lane :beta do |options|
|
||||||
|
update_version(options)
|
||||||
|
|
||||||
|
provision(
|
||||||
|
type: 'appstore'
|
||||||
|
)
|
||||||
|
|
||||||
|
build(
|
||||||
|
build_configuration: 'Release',
|
||||||
|
build_platform: 'iPhone'
|
||||||
|
)
|
||||||
|
|
||||||
|
client = HTTPClient.new
|
||||||
|
changelog = client.get_content 'https://gist.githubusercontent.com/peppy/ab89c29dcc0dce95f39eb218e8fad197/raw'
|
||||||
|
changelog.gsub!('$BUILD_ID', options[:build])
|
||||||
|
|
||||||
|
pilot(
|
||||||
|
wait_processing_interval: 900,
|
||||||
|
changelog: changelog,
|
||||||
|
ipa: './osu.iOS/bin/iPhone/Release/osu.iOS.ipa'
|
||||||
|
)
|
||||||
|
end
|
||||||
|
|
||||||
|
desc 'Compile the project'
|
||||||
|
lane :build do
|
||||||
|
nuget_restore(
|
||||||
|
project_path: 'osu.iOS.sln'
|
||||||
|
)
|
||||||
|
|
||||||
|
souyuz(
|
||||||
|
platform: "ios",
|
||||||
|
build_target: "osu_iOS",
|
||||||
|
plist_path: "../osu.iOS/Info.plist"
|
||||||
|
)
|
||||||
|
end
|
||||||
|
|
||||||
|
desc 'Install provisioning profiles using match'
|
||||||
|
lane :provision do |options|
|
||||||
|
if Helper.is_ci?
|
||||||
|
options[:readonly] = true
|
||||||
|
end
|
||||||
|
|
||||||
|
match(options)
|
||||||
|
end
|
||||||
|
end
|
1
fastlane/Matchfile
Normal file
1
fastlane/Matchfile
Normal file
@ -0,0 +1 @@
|
|||||||
|
git_url('https://github.com/peppy/apple-certificates')
|
7
fastlane/Pluginfile
Normal file
7
fastlane/Pluginfile
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
# Autogenerated by fastlane
|
||||||
|
#
|
||||||
|
# Ensure this file is checked in to source control!
|
||||||
|
|
||||||
|
gem 'fastlane-plugin-clean_testflight_testers'
|
||||||
|
gem 'fastlane-plugin-souyuz'
|
||||||
|
gem 'fastlane-plugin-xamarin'
|
54
fastlane/README.md
Normal file
54
fastlane/README.md
Normal file
@ -0,0 +1,54 @@
|
|||||||
|
fastlane documentation
|
||||||
|
================
|
||||||
|
# Installation
|
||||||
|
|
||||||
|
Make sure you have the latest version of the Xcode command line tools installed:
|
||||||
|
|
||||||
|
```
|
||||||
|
xcode-select --install
|
||||||
|
```
|
||||||
|
|
||||||
|
Install _fastlane_ using
|
||||||
|
```
|
||||||
|
[sudo] gem install fastlane -NV
|
||||||
|
```
|
||||||
|
or alternatively using `brew cask install fastlane`
|
||||||
|
|
||||||
|
# Available Actions
|
||||||
|
## iOS
|
||||||
|
### ios testflight_prune_dry
|
||||||
|
```
|
||||||
|
fastlane ios testflight_prune_dry
|
||||||
|
```
|
||||||
|
|
||||||
|
### ios testflight_prune
|
||||||
|
```
|
||||||
|
fastlane ios testflight_prune
|
||||||
|
```
|
||||||
|
|
||||||
|
### ios update_version
|
||||||
|
```
|
||||||
|
fastlane ios update_version
|
||||||
|
```
|
||||||
|
|
||||||
|
### ios beta
|
||||||
|
```
|
||||||
|
fastlane ios beta
|
||||||
|
```
|
||||||
|
Deploy to testflight
|
||||||
|
### ios build
|
||||||
|
```
|
||||||
|
fastlane ios build
|
||||||
|
```
|
||||||
|
Compile the project
|
||||||
|
### ios provision
|
||||||
|
```
|
||||||
|
fastlane ios provision
|
||||||
|
```
|
||||||
|
Install provisioning profiles using match
|
||||||
|
|
||||||
|
----
|
||||||
|
|
||||||
|
This README.md is auto-generated and will be re-generated every time [fastlane](https://fastlane.tools) is run.
|
||||||
|
More information about fastlane can be found on [fastlane.tools](https://fastlane.tools).
|
||||||
|
The documentation of fastlane can be found on [docs.fastlane.tools](https://docs.fastlane.tools).
|
@ -35,7 +35,7 @@
|
|||||||
<DefineConstants></DefineConstants>
|
<DefineConstants></DefineConstants>
|
||||||
<ErrorReport>prompt</ErrorReport>
|
<ErrorReport>prompt</ErrorReport>
|
||||||
<WarningLevel>4</WarningLevel>
|
<WarningLevel>4</WarningLevel>
|
||||||
<CodesignKey>iPhone Developer</CodesignKey>
|
<CodesignKey>iPhone Distribution</CodesignKey>
|
||||||
<MtouchUseLlvm>true</MtouchUseLlvm>
|
<MtouchUseLlvm>true</MtouchUseLlvm>
|
||||||
<MtouchFloat32>true</MtouchFloat32>
|
<MtouchFloat32>true</MtouchFloat32>
|
||||||
<CodesignEntitlements>Entitlements.plist</CodesignEntitlements>
|
<CodesignEntitlements>Entitlements.plist</CodesignEntitlements>
|
||||||
@ -113,4 +113,4 @@
|
|||||||
<PackageReference Include="System.ComponentModel.Annotations" Version="4.5.0" />
|
<PackageReference Include="System.ComponentModel.Annotations" Version="4.5.0" />
|
||||||
<PackageReference Include="ppy.osu.Framework.NativeLibs" Version="2019.208.0" ExcludeAssets="all" />
|
<PackageReference Include="ppy.osu.Framework.NativeLibs" Version="2019.208.0" ExcludeAssets="all" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
</Project>
|
</Project>
|
||||||
|
@ -2,6 +2,14 @@
|
|||||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
<plist version="1.0">
|
<plist version="1.0">
|
||||||
<dict>
|
<dict>
|
||||||
|
<key>CFBundleIdentifier</key>
|
||||||
|
<string>sh.ppy.osulazer</string>
|
||||||
|
<key>CFBundleName</key>
|
||||||
|
<string>osu!</string>
|
||||||
|
<key>CFBundleShortVersionString</key>
|
||||||
|
<string>0.1</string>
|
||||||
|
<key>CFBundleVersion</key>
|
||||||
|
<string>0.1.0</string>
|
||||||
<key>LSRequiresIPhoneOS</key>
|
<key>LSRequiresIPhoneOS</key>
|
||||||
<true/>
|
<true/>
|
||||||
<key>MinimumOSVersion</key>
|
<key>MinimumOSVersion</key>
|
||||||
@ -17,6 +25,10 @@
|
|||||||
<array>
|
<array>
|
||||||
<string>armv7</string>
|
<string>armv7</string>
|
||||||
</array>
|
</array>
|
||||||
|
<key>UIRequiresFullScreen</key>
|
||||||
|
<true/>
|
||||||
|
<key>UIStatusBarHidden</key>
|
||||||
|
<true/>
|
||||||
<key>UISupportedInterfaceOrientations</key>
|
<key>UISupportedInterfaceOrientations</key>
|
||||||
<array>
|
<array>
|
||||||
<string>UIInterfaceOrientationPortrait</string>
|
<string>UIInterfaceOrientationPortrait</string>
|
||||||
@ -26,17 +38,5 @@
|
|||||||
</array>
|
</array>
|
||||||
<key>XSAppIconAssets</key>
|
<key>XSAppIconAssets</key>
|
||||||
<string>Assets.xcassets/AppIcon.appiconset</string>
|
<string>Assets.xcassets/AppIcon.appiconset</string>
|
||||||
<key>UIStatusBarHidden</key>
|
|
||||||
<true/>
|
|
||||||
<key>UIRequiresFullScreen</key>
|
|
||||||
<true/>
|
|
||||||
<key>CFBundleIdentifier</key>
|
|
||||||
<string>sh.ppy.osulazer</string>
|
|
||||||
<key>CFBundleName</key>
|
|
||||||
<string>osu!</string>
|
|
||||||
<key>CFBundleShortVersionString</key>
|
|
||||||
<string>0.1</string>
|
|
||||||
<key>CFBundleVersion</key>
|
|
||||||
<string>0.1.1</string>
|
|
||||||
</dict>
|
</dict>
|
||||||
</plist>
|
</plist>
|
||||||
|
Loading…
Reference in New Issue
Block a user