Fastlane/Fastfile
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