update_fastlane platform :android do desc 'Deploy to play store' lane :beta do |options| # update csproj version update_version( solution_path: 'osu.Android.sln', version: options[:version], build: options[:build], ) build() supply( apk: './osu.Android/bin/Release/sh.ppy.osulazer-Signed.apk', package_name: 'sh.ppy.osulazer', track: 'alpha', # upload to alpha, we can promote it later json_key: options[:json_key], ) end desc 'Compile the project' lane :build do nuget_restore( project_path: 'osu.Android.sln' ) souyuz( build_configuration: 'Release', solution_path: 'osu.Android.sln', platform: "android", ) end lane :update_version do |options| app_version(options) end end platform :ios do 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: 1800, 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 lane :update_version do |options| options[:plist_path] = '../osu.iOS/Info.plist' app_version(options) end lane :testflight_prune_dry do clean_testflight_testers(days_of_inactivity:45, dry_run: true) end lane :testflight_prune do clean_testflight_testers(days_of_inactivity: 45) end end