darrarski/ScrollViewKeyboardAvoider

View on GitHub
Fastlane/Fastfile

Summary

Maintainability
Test Coverage
fastlane_version '2.63.0'
default_platform :ios

XC_PROJECT = 'ScrollViewKeyboardAvoider.xcodeproj'
TESTS_SCHEME = 'Tests'
CODECLIMATE_REPORTER_ID = 'c4be5f791e71b7869583fe98222bf386975b233e7d94374ddb99666626002b8c'

platform :ios do

  desc 'Bootstrap project'
  lane :setup do
    puts 'Updating CocoaPods spec-repo'
    sh 'cd .. && bundle exec pod repo update'
    puts 'Bootstraping Carthage'
    sh 'cd .. && carthage bootstrap --platform iOS'
  end

  desc 'Run CodeClimate before-build script'
  lane :codeclimate_before_build do
    sh [
      'cd ..',
      'curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-darwin-amd64 > ./cc-test-reporter',
      'chmod +x ./cc-test-reporter',
      './cc-test-reporter before-build'
    ].join(' && ')
  end

  desc 'Run unit tests'
  lane :test do
    sh [
      'cd .. && set -o pipefail &&',
      'xcodebuild test',
      "-project #{XC_PROJECT}",
      "-scheme #{TESTS_SCHEME}",
      '-sdk iphonesimulator',
      '-destination \'platform=iOS Simulator,name=iPhone 8,OS=latest\'',
      'ONLY_ACTIVE_ARCH=YES',
      '| xcpretty -f `xcpretty-travis-formatter`'
    ].join(' ')
  end

  desc 'Generate test coverage report in HTML format and open it'
  lane :coverage do
    slather(
      proj: XC_PROJECT,
      scheme: TESTS_SCHEME,
      html: true,
      show: true,
      output_directory: 'coverage_report',
      verbose: true
    )
  end

  desc 'Generate test coverage report in HTML format'
  lane :coverage_html do
    slather(
      proj: XC_PROJECT,
      scheme: TESTS_SCHEME,
      html: true,
      show: false,
      output_directory: 'coverage_report',
      verbose: true
    )
  end

  desc 'Generate test coverage report in Cobertura XML format'
  lane :coverage_xml do
    slather(
      proj: XC_PROJECT,
      scheme: TESTS_SCHEME,
      cobertura_xml: true,
      verbose: true
    )
  end

  desc 'Run CodeClimate after-build script'
  lane :codeclimate_after_build do
    sh "cd .. && ./cc-test-reporter after-build -r #{CODECLIMATE_REPORTER_ID}"
  end

  desc 'Lint pod'
  lane :pod_lint do
    sh 'cd .. && bundle exec pod lib lint'
  end

  desc 'Deploy to CocoaPods'
  lane :pod_deploy do
    sh 'cd .. && bundle exec pod trunk push'
  end

end