Copy & adapt rake infrastructure from swiftgen projects
This commit is contained in:
50
Rakefile
50
Rakefile
@@ -1,10 +1,50 @@
|
||||
#!/usr/bin/rake
|
||||
|
||||
PODSPEC_FILE = 'Stencil.podspec.json'
|
||||
CHANGELOG_FILE = 'CHANGELOG.md'
|
||||
|
||||
if ENV['BUNDLE_GEMFILE'].nil?
|
||||
puts "\u{274C} Please use bundle exec"
|
||||
unless defined?(Bundler)
|
||||
puts 'Please use bundle exec to run the rake command'
|
||||
exit 1
|
||||
end
|
||||
|
||||
require 'English'
|
||||
|
||||
## [ Constants ] ##############################################################
|
||||
|
||||
POD_NAME = 'Stencil'
|
||||
MIN_XCODE_VERSION = 13.0
|
||||
BUILD_DIR = File.absolute_path('./.build')
|
||||
|
||||
## [ Build Tasks ] ############################################################
|
||||
|
||||
namespace :files do
|
||||
desc 'Update all files containing a version'
|
||||
task :update, [:version] do |_, args|
|
||||
version = args[:version]
|
||||
|
||||
Utils.print_header "Updating files for version #{version}"
|
||||
|
||||
podspec = Utils.podspec(POD_NAME)
|
||||
podspec['version'] = version
|
||||
podspec['source']['tag'] = version
|
||||
File.write("#{POD_NAME}.podspec.json", JSON.pretty_generate(podspec) + "\n")
|
||||
|
||||
replace('CHANGELOG.md', '## Master' => "\#\# #{version}")
|
||||
replace("docs/conf.py",
|
||||
/^version = .*/ => %Q(version = '#{version}'),
|
||||
/^release = .*/ => %Q(release = '#{version}')
|
||||
)
|
||||
replace("docs/installation.rst",
|
||||
/pod 'Stencil', '.*'/ => %Q(pod 'Stencil', '~> #{version}'),
|
||||
/github "stencilproject\/Stencil" ~> .*/ => %Q(github "stencilproject/Stencil" ~> #{version})
|
||||
)
|
||||
end
|
||||
|
||||
def replace(file, replacements)
|
||||
content = File.read(file)
|
||||
replacements.each do |match, replacement|
|
||||
content.gsub!(match, replacement)
|
||||
end
|
||||
File.write(file, content)
|
||||
end
|
||||
end
|
||||
|
||||
task :default => 'release:new'
|
||||
|
||||
Reference in New Issue
Block a user