Newer
Older
DummyAnd / fastlane / Fastfile
@Benoit Donneaux Benoit Donneaux on 5 Apr 2018 5 KB Revert faulty changes merged into master
# Customise this file, documentation can be found here:
# https://github.com/fastlane/fastlane/tree/master/fastlane/docs
# All available actions: https://github.com/fastlane/fastlane/blob/master/fastlane/docs/Actions.md
# can also be listed using the `fastlane actions` command

# Change the syntax highlighting to Ruby
# All lines starting with a # are ignored when running `fastlane`

# If you want to automatically update fastlane if a new version is available:
# update_fastlane

# This is the minimum version number required.
# Update this, if you use features of a newer version
fastlane_version "2.62.1"

default_platform :android

platform :android do
  before_all do
    # ENV["SLACK_URL"] = "https://hooks.slack.com/services/..."
  end

  desc "Runs all the tests"
  lane :test do
    gradle(task: "test")
  end

  desc "Build the apk"
  lane :build do
    gradle(
      task: "clean assemble",
      flavor: "prd",
      build_type: 'Release'
    )
  end

  desc "Bump version code/build number"
  private_lane :bump do
    increment_version_code(
      var_name: "versionCode|versionBuild",
      verbose: true,
    )
  end

  desc "Tag as a new version"
  private_lane :tag do
    git_commit(
      path: "app/build.gradle",
      message: "Increment version code to #{lane_context[SharedValues::VERSION_CODE]} for next release",
    )
    add_git_tag(
      tag: "#{ENV['VERSION']}-#{lane_context[SharedValues::VERSION_CODE]}",
      message: "Create new tag for version #{ENV['VERSION']}-#{lane_context[SharedValues::VERSION_CODE]}",
    )
    push_to_git_remote(
      local_branch: "HEAD",
      remote_branch: "master",
    )
  end

  desc "Build and deploy the apk for Alpha testing in Google Play store"
  lane :deploy_alpha do
    bump
    gradle(
      task: "clean assemble",
      build_type: 'Release',
    )
    sh("cp -vf metadata/android/en-US/changelogs/latest.txt metadata/android/en-US/changelogs/#{lane_context[SharedValues::VERSION_CODE]}.txt")
    sh("git add metadata/android/en-US/changelogs/#{lane_context[SharedValues::VERSION_CODE]}.txt")
    sh("git add metadata/android/en-US/changelogs/latest.txt")
    sh("cp -vf metadata/android/nl-NL/changelogs/latest.txt metadata/android/nl-NL/changelogs/#{lane_context[SharedValues::VERSION_CODE]}.txt")
    sh("git add metadata/android/nl-NL/changelogs/#{lane_context[SharedValues::VERSION_CODE]}.txt")
    sh("git add metadata/android/nl-NL/changelogs/latest.txt")
    git_commit(
      path: [
        "fastlane/metadata/android/en-US/changelogs/latest.txt",
        "fastlane/metadata/android/en-US/changelogs/#{lane_context[SharedValues::VERSION_CODE]}.txt",
        "fastlane/metadata/android/nl-NL/changelogs/latest.txt",
        "fastlane/metadata/android/nl-NL/changelogs/#{lane_context[SharedValues::VERSION_CODE]}.txt",
      ],
      message: "Provide changelogs for this version",
    )
    supply(
      apk: 'app/build/outputs/apk/release/app-release.apk',
      mapping: 'app/build/outputs/apk/release/mapping.txt',
      track: 'alpha',
      skip_upload_apk: false,
      skip_upload_metadata: false,
      skip_upload_images: true,
      skip_upload_screenshots: true,
    )
    tag
  end

  desc "Update metadata only, including images and screenshots"
  lane :deploy_metadata do
    supply(
      skip_upload_apk: true,
      skip_upload_metadata: false,
      skip_upload_images: false,
      skip_upload_screenshots: false,
    )
  end

  desc "Submit a new build to Crashlytics Beta"
  lane :beta_crash do
    gradle(task: "assembleRelease")
    crashlytics

    # sh "your_script.sh"
    # You can also use other beta testing services here
  end

  desc "Deploy a new version to the Google Play"
  lane :alpha do
    supply(
      apk: 'app/build/outputs/apk/prd/release/app-prd-release.apk',
      mapping: 'app/build/outputs/apk/prd/release/mapping.txt',
      track: 'alpha',
      skip_upload_apk: false,
      skip_upload_metadata: false,
      skip_upload_images: false,
      skip_upload_screenshots: false,
      package_name: "nl.digital_me.dummyandroidapp",
    )
  end

  desc "Deploy a new version to the Google Play"
  lane :beta do
    supply(
      track: 'alpha',
      track_promote_to: 'beta',
      skip_upload_apk: true,
      skip_upload_metadata: true,
      skip_upload_images: true,
      skip_upload_screenshots: true,
      package_name: "nl.digital_me.dummyandroidapp",
    )
  end

  desc "Deploy a new version to the Google Play"
  lane :production do
    supply(
      track: 'beta',
      track_promote_to: 'production',
      skip_upload_apk: true,
      skip_upload_metadata: true,
      skip_upload_images: true,
      skip_upload_screenshots: true,
      package_name: "nl.digital_me.dummyandroidapp",
    )
  end

  # You can define as many lanes as you want

  after_all do |lane|
    # This block is called, only if the executed lane was successful

    # slack(
    #   message: "Successfully deployed new App Update."
    # )
  end

  error do |lane, exception|
    # slack(
    #   message: exception.message,
    #   success: false
    # )
  end
end


# More information about multiple platforms in fastlane: https://github.com/fastlane/fastlane/blob/master/fastlane/docs/Platforms.md
# All available actions: https://github.com/fastlane/fastlane/blob/master/fastlane/docs/Actions.md

# fastlane reports which actions are used
# No personal data is sent or shared. Learn more at https://github.com/fastlane/enhancer