@@ -137,3 +137,61 @@ platform :ios do
137137# )
138138# end
139139end
140+
141+ KEYSTORE_KEY_ALIAS = ENV [ "KEYSTORE_KEY_ALIAS" ]
142+ KEYSTORE_KEY_PASSWORD = ENV [ "KEYSTORE_KEY_PASSWORD" ]
143+ KEYSTORE_STORE_PASSWORD = ENV [ "KEYSTORE_STORE_PASSWORD" ]
144+
145+ platform :android do
146+ desc "Deploy a beta version to the Google Play"
147+
148+ private_lane :verify_changelog_exists do |version_code :|
149+ changelog_path = "android/metadata/en-US/changelogs/#{ version_code } .txt"
150+ UI . user_error! ( "Missing changelog file at #{ changelog_path } " ) unless File . exist? ( changelog_path )
151+ UI . message ( "Changelog exists for version code #{ version_code } " )
152+ end
153+
154+ private_lane :verify_upload_to_staging do |version_name :|
155+ UI . message "Skipping staging verification step"
156+ end
157+
158+ lane :beta do
159+ keystore_path = "#{ Dir . tmpdir } /build_keystore.keystore"
160+ File . write ( keystore_path , Base64 . decode64 ( ENV [ 'ANDROID_KEYSTORE_FILE' ] ) )
161+ json_key_data = Base64 . decode64 ( ENV [ 'PLAY_CONFIG_JSON' ] )
162+
163+ # Get previous build number and increment
164+ previous_build_number = google_play_track_version_codes (
165+ package_name : ENV [ 'DEVELOPER_PACKAGE_NAME' ] ,
166+ track : "internal" ,
167+ json_key_data : json_key_data ,
168+ ) [ 0 ]
169+ current_build_number = previous_build_number + 1
170+ sh ( "export NEW_BUILD_NUMBER=#{ current_build_number } " )
171+
172+ # Build the app
173+ gradle (
174+ task : "clean bundleRelease" ,
175+ project_dir : 'android/' ,
176+ print_command : false ,
177+ properties : {
178+ "android.injected.signing.store.file" => "#{ keystore_path } " ,
179+ "android.injected.signing.store.password" => "#{ KEYSTORE_STORE_PASSWORD } " ,
180+ "android.injected.signing.key.alias" => "#{ KEYSTORE_KEY_ALIAS } " ,
181+ "android.injected.signing.key.password" => "#{ KEYSTORE_KEY_PASSWORD } " ,
182+ 'versionCode' => current_build_number
183+ } )
184+
185+ # Upload to Play Store
186+ # upload_to_play_store(
187+ # package_name: ENV['DEVELOPER_PACKAGE_NAME'],
188+ # json_key_data: json_key_data,
189+ # track: 'internal',
190+ # release_status: 'completed',
191+ # skip_upload_metadata: true,
192+ # skip_upload_changelogs: true,
193+ # skip_upload_images: true,
194+ # skip_upload_screenshots: true,
195+ # )
196+ end
197+ end
0 commit comments