mirror of
https://github.com/kickstarter/android-oss.git
synced 2026-03-13 09:11:01 +08:00
* Removing pre21/min21 product flavors from build.gradle (#487) Moved Google services and laucher icons to proper folders. Updated Milkrun, circle, Fastfile and bootstrap scripts. * Bumping minSdkVersion to 23. (#488) * Removing unused checks in ApiCapabilities and updating LeakCanary so it's actually useable. * Removing resources in from api folders below 23 and into main files. * Adding a lot of ignores for VectorPath but we have some pretty inefficient vectors. * Removing unnecessary UnusedAttribute (#489) * Removing parent activity metadata for Android 4.0 and cleaning up manifest. (#490)
124 lines
4.6 KiB
Ruby
Executable File
124 lines
4.6 KiB
Ruby
Executable File
#!/usr/bin/env ruby
|
|
|
|
$:.unshift File.expand_path(File.join(File.dirname(__FILE__), '..', 'lib'))
|
|
require 'milkrun'
|
|
require_relative '../config/initializer'
|
|
require 'commander'
|
|
require 'fileutils'
|
|
|
|
class MilkrunApplication
|
|
include Commander::Methods
|
|
|
|
def run
|
|
program :name, 'Milkrun'
|
|
program :version, '0.0.1'
|
|
program :description, 'Command-line tool for deploying the Kickstarter Android app'
|
|
|
|
command :builds do |c|
|
|
c.syntax = "milkrun builds"
|
|
c.description = "Show list of published builds"
|
|
c.action do |args, options|
|
|
puts Milkrun::BuildList.new.fetch.to_yaml
|
|
end
|
|
end
|
|
|
|
command :"create-string-resources" do |c|
|
|
c.syntax = "milkrun create-string-resources"
|
|
c.description = "create string resources from local config file"
|
|
c.action do |args, options|
|
|
Milkrun::I18nStringResources.new.create
|
|
end
|
|
end
|
|
|
|
command :external do |c|
|
|
c.syntax = 'milkrun external'
|
|
c.description = 'Prepare a .apk and update HockeyApp in preparation for submitting to the Play Store'
|
|
c.action do |args, options|
|
|
audience = 'external'
|
|
build_type = 'release'
|
|
|
|
Milkrun::Git.new.check
|
|
|
|
Milkrun::ServerConfigRefresher.new.refresh
|
|
Milkrun::I18nStringResources.new.create
|
|
|
|
version_code = Milkrun::VersionCode.new(audience: audience).bump
|
|
version_name = Milkrun::VersionName.new(audience: audience).prompt
|
|
Milkrun.prompt <<-CHECKLIST
|
|
Release checklist!
|
|
|
|
1) Make sure the build passes in CircleCI.
|
|
2) Build and run locally in externalRelease mode, test core features on a real device.
|
|
CHECKLIST
|
|
output_path = Milkrun::Build.new(audience: audience, build_type: build_type).compile
|
|
pretty_path = File.join(File.dirname(output_path), "kickstarter-#{version_name}.apk")
|
|
FileUtils.cp(output_path, pretty_path)
|
|
Milkrun::HockeyApp.new(audience: audience, version_code: version_code, version_name: version_name).create_version
|
|
Milkrun.say "HockeyApp updated, now upload the .apk at #{pretty_path} to the Google Play Console 👌"
|
|
end
|
|
end
|
|
|
|
command :internal do |c|
|
|
c.syntax = 'milkrun internal'
|
|
c.description = "Submit a new internal build to S3"
|
|
c.action do |args, options|
|
|
audience = 'internal'
|
|
build_type = 'release'
|
|
|
|
Milkrun::Git.new.check
|
|
|
|
Milkrun::ServerConfigRefresher.new.refresh
|
|
Milkrun::I18nStringResources.new.create
|
|
|
|
version_code = Milkrun::VersionCode.new(audience: audience).bump
|
|
version_name = Milkrun::VersionName.new(audience: audience).prompt
|
|
Milkrun.prompt <<-CHECKLIST
|
|
Release checklist!
|
|
|
|
1) Make sure the build passes in CircleCI.
|
|
2) Build and run locally in internalRelease mode, test core features on a real device.
|
|
CHECKLIST
|
|
file_path = Milkrun::Build.new(audience: audience, build_type: build_type).compile
|
|
Milkrun::HockeyApp.new(audience: audience, version_code: version_code, version_name: version_name).create_version
|
|
Milkrun::S3Package.new(version_code: version_code, file_path: file_path).upload
|
|
Milkrun::Changelog.new(audience: audience, build_type: build_type, version_code: version_code).publish
|
|
Milkrun.say "All done, now commit your local version changes! 👌"
|
|
end
|
|
end
|
|
|
|
command :quality do |c|
|
|
c.syntax = "milkrun quality"
|
|
c.description = "run checkstyle, lint"
|
|
c.action do
|
|
checkstyle = Milkrun::Checkstyle.new
|
|
checkstyle.run
|
|
lint = Milkrun::Lint.new
|
|
lint.run
|
|
|
|
{ "Lint" => lint, "Checkstyle" => checkstyle }.each do |name, report|
|
|
if report.result
|
|
Milkrun.say "#{name} successful 👌"
|
|
else
|
|
Milkrun.error "#{name} failed, see #{report.report_path} for report 🍤"
|
|
system("open #{report.report_path}")
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
command :"update-strings" do |c|
|
|
c.syntax = "milkrun update-strings"
|
|
c.description = "refresh config and create string resources"
|
|
c.option "--local", "Use local development server instead of production. Config generated from the local server should not be committed; your local environment may not have the latest translations. Useful if you have a branch in the Kickstarter app and you want the keys to be pulled in to Android while waiting for the code to be deployed to production."
|
|
c.action do |args, options|
|
|
Milkrun::ServerConfigRefresher.new(local: (options.local || false)).refresh
|
|
Milkrun::I18nStringResources.new.create
|
|
end
|
|
end
|
|
|
|
run!
|
|
end
|
|
end
|
|
|
|
MilkrunApplication.new.run if $0 == __FILE__
|