SwiftKit/Fastlane/Fastfile

107 lines
2.6 KiB
Ruby

fastlane_version "2.129.0"
default_platform :ios
platform :ios do
# Documentation ==============
desc "Build Documentation"
lane :documentation do
docc_web
end
# Lint =======================
desc "Run SwiftLint"
lane :lint do
swiftlint(strict: true)
end
# Test =======================
desc "Run unit tests"
lane :test do
sh("swift test")
end
# Version ====================
desc "Create a new version"
lane :version do |options|
ensure_git_status_clean
ensure_git_branch(branch: 'master')
lint
test
documentation
bump_type = options[:type]
version = version_bump_podspec(
path: "DSSwiftKit.podspec",
bump_type: bump_type)
git_commit(path: "*", message: "Bump to #{version}")
add_git_tag(tag: version)
push_git_tags()
push_to_git_remote()
pod_push()
end
# Docs =======================
desc "Build documentation for all platforms"
lane :docc do
sh('cd .. && rm -rf Docs')
docc_platform(destination: 'iOS', name: 'ios')
docc_platform(destination: 'OS X', name: 'osx')
docc_platform(destination: 'tvOS', name: 'tvos')
docc_platform(destination: 'watchOS', name: 'watchos')
end
desc "Build documentation for a single platform"
lane :docc_platform do |values|
sh('cd .. && mkdir -p Docs')
docc_delete_derived_data
sh('cd .. && xcodebuild docbuild \
-scheme SwiftKit \
-destination \'generic/platform=' + values[:destination] + '\'')
sh('cd .. && \
find ~/Library/Developer/Xcode/DerivedData \
-name "SwiftKit.doccarchive" \
-exec cp -R {} Docs \;')
sh('cd .. && \
mv Docs/SwiftKit.doccarchive Docs/SwiftKit_' + values[:name] + '.doccarchive')
end
desc "Delete documentation derived data (may be historic duplicates)"
lane :docc_delete_derived_data do
sh('find ~/Library/Developer/Xcode/DerivedData \
-name "SwiftKit.doccarchive" \
-exec rm -Rf {} \; || true')
end
desc "Build static documentation websites for all platforms"
lane :docc_web do
docc
docc_web_platform(name: 'ios')
docc_web_platform(name: 'osx')
docc_web_platform(name: 'tvos')
docc_web_platform(name: 'watchos')
end
desc "Build static documentation website for a single platform"
lane :docc_web_platform do |values|
sh('cd .. && $(xcrun --find docc) process-archive \
transform-for-static-hosting Docs/SwiftKit_' + values[:name] + '.doccarchive \
--output-path Docs/web_' + values[:name] + ' \
--hosting-base-path SwiftKit')
end
end