| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145 |
- fastlane_version "1.37.0"
- default_platform :ios
- platform :ios do
- desc "Runs all the tests"
- lane :tests do
- test(destination: "platform=macOS")
- test(destination: "platform=iOS Simulator,name=iPhone 14")
- test(destination: "platform=tvOS Simulator,name=Apple TV")
- build(destination: "platform=watchOS Simulator,name=Apple Watch Series 8 (41mm)")
- end
-
- lane :test_ci do
- if ENV["DESTINATION"].include? "watchOS" then
- build(destination: ENV["DESTINATION"])
- else
- test(destination: ENV["DESTINATION"])
- end
- end
- lane :test do |options|
- scan(
- scheme: "Kingfisher",
- clean: true,
- destination: options[:destination]
- )
- end
- lane :build do |options|
- gym(
- workspace: "Kingfisher.xcworkspace",
- configuration: "Debug",
- scheme: "Kingfisher",
- destination: options[:destination]
- )
- end
- desc "Lint"
- lane :lint do
- pod_lib_lint
- spm
- end
-
- desc "Release new version"
- lane :release do |options|
- target_version = options[:version]
- raise "The version is missed. Use `fastlane release version:{version_number}`.`" if target_version.nil?
-
- ensure_git_branch
- ensure_git_status_clean
-
- skip_tests = options[:skip_tests]
- tests unless skip_tests
-
- lint
- sync_build_number_to_git
- increment_version_number(version_number: target_version)
- version_bump_podspec(path: "Kingfisher.podspec", version_number: target_version)
-
- log = extract_current_change_log(version: target_version)
- release_log = update_change_log(log: log)
-
- git_commit_all(message: "Bump version to #{target_version}")
-
- Actions.sh("git tag -s #{target_version} -m ''")
-
- push_to_git_remote
-
- xcframework(version: target_version)
- set_github_release(
- repository_name: "onevcat/Kingfisher",
- api_token: ENV['GITHUB_TOKEN'],
- name: release_log[:title],
- tag_name: target_version,
- description: release_log[:text],
- upload_assets: ["build/Kingfisher-#{target_version}.zip"]
- )
-
- pod_push
- end
- lane :xcframework do |options|
- target_version = "Kingfisher-#{options[:version]}"
-
- xcversion(version: "~> 15.4")
- FileUtils.rm_rf '../build'
-
- frameworks = {}
-
- ["macosx",
- "iphoneos",
- "iphonesimulator",
- "appletvos",
- "appletvsimulator",
- "watchos",
- "watchsimulator",
- "xros",
- "xrsimulator"
- ].each do |sdk|
- archive_path = "build/Kingfisher-#{sdk}.xcarchive"
- xcodebuild(
- archive: true,
- archive_path: archive_path,
- scheme: "Kingfisher",
- sdk: sdk,
- build_settings: {
- "BUILD_LIBRARY_FOR_DISTRIBUTION" => "YES",
- "SKIP_INSTALL" => "NO"
- }
- )
- dSYM_path = "#{Dir.pwd}/../#{archive_path}/dSYMs/Kingfisher.framework.dSYM"
- frameworks["#{archive_path}/Products/Library/Frameworks/Kingfisher.framework"] = { dsyms: dSYM_path }
- end
- create_xcframework(
- frameworks_with_dsyms: frameworks,
- output: "build/#{target_version}/Kingfisher.xcframework"
- )
- Actions.sh("codesign --timestamp -v --sign 'Apple Distribution: Wei Wang (A4YJ9MRZ66)' ../build/#{target_version}/Kingfisher.xcframework")
- zip(
- path: "build/#{target_version}",
- output_path: "build/#{target_version}.zip",
- symlinks: true
- )
- end
- before_all do |lane|
- xcode_version = ENV["XCODE_VERSION"] || "15.4"
- xcodes(version: xcode_version, select_for_current_build_only: true)
- end
- after_all do |lane|
-
- end
- error do |lane, exception|
-
- end
- end
|