diff --git a/Gemfile b/Gemfile index 5bd02a13d..6a3045614 100644 --- a/Gemfile +++ b/Gemfile @@ -7,6 +7,7 @@ source "https://rubygems.org" gem 'fastlane' gem "xcode-install" gem 'slather' +gem 'semantic' plugins_path = File.join(File.dirname(__FILE__), 'fastlane', 'Pluginfile') eval_gemfile('fastlane/Pluginfile') if File.exist?(plugins_path) diff --git a/Gemfile.lock b/Gemfile.lock index 42311168d..0125903af 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -210,6 +210,7 @@ GEM ruby2_keywords (0.0.5) rubyzip (2.3.2) security (0.1.3) + semantic (1.6.1) signet (0.17.0) addressable (~> 2.8) faraday (>= 0.17.5, < 3.a) @@ -266,6 +267,7 @@ DEPENDENCIES fastlane-plugin-sentry fastlane-plugin-xcconfig fastlane-plugin-xcodegen + semantic slather xcode-install diff --git a/fastlane/Fastfile b/fastlane/Fastfile index f13ba2d0d..ca34288d8 100644 --- a/fastlane/Fastfile +++ b/fastlane/Fastfile @@ -1,4 +1,5 @@ require 'yaml' +require 'semantic' require_relative 'changelog' before_all do @@ -256,11 +257,14 @@ lane :prepare_next_release do data = YAML.load_file target_file_path current_version = data["settings"]["MARKETING_VERSION"] - new_version = current_version.next + + version = Semantic::Version.new(current_version) + + new_version = version.increment!(:patch) # Bump the patch version. The empty string after -i is so that sed doesn't # create a backup file on macOS - sh("sed -i '' 's/#{current_version}/#{new_version}/g' #{target_file_path}") + sh("sed -i '' 's/MARKETING_VERSION: #{current_version}/MARKETING_VERSION: #{new_version.to_string}/g' #{target_file_path}") xcodegen(spec: "project.yml")