blob: 2a5d0bc9f462510601cd460421b051496dc8fcf0 [file] [log] [blame]
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
require 'rubygems'
require 'rake'
require 'spec/rake/spectask'
require 'fileutils'
task :default => :spec
desc "Run specs"
Spec::Rake::SpecTask.new('spec') do |t|
t.spec_opts = %w(-fs --color)
t.warning = true
t.spec_files = FileList['spec/**/*.rb']
end
task :spec
desc "Increment the version - generates a release and updates the edge documentation"
task :version, :nextVersion, :lang do |t, args|
# get current and next version
nextVersion = args[:nextVersion].strip
lang = args[:lang].strip
prevVersion = File.read('VERSION').sub(/rc\d+$/, '').strip # remove release candidate
# generate a release
edge_dir = File.join('docs', lang, 'edge')
release_dir = File.join('docs', lang, nextVersion)
FileUtils.cp_r(edge_dir, release_dir)
# update version number in new release directory
_nextVersion = nextVersion.sub(/rc\d+$/, '') # cordova file references do not include the RC
unless prevVersion == _nextVersion
files = Dir.glob(File.join('docs', lang, nextVersion, '**', '*'))
files.sort.each do |file|
next if File.directory?(file) or file !~ /md|html/
content = File.read(file)
content.gsub!('x.x.x', _nextVersion)
File.open(file, 'w') { |f| f.write(content) }
end
end
# update VERSION file
File.open('VERSION', 'w') do |f|
f.write(nextVersion)
end
# echo results
puts "Generated version #{nextVersion}"
puts ""
puts "Next steps:"
puts " 1. Review the update using `git status`"
puts " 2. Commit the changes as 'Version #{nextVersion}'"
puts " 3. Tag the commit as '#{nextVersion}'"
puts ""
end