forked from brycecurtis/incubator-cordova-docs
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Rakefile
70 lines (61 loc) · 2.4 KB
/
Rakefile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
# 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 do |t, args|
# get current and next version
nextVersion = args[:nextVersion].strip
prevVersion = File.read('VERSION').sub(/rc\d+$/, '').strip # remove release candidate
# update edge documentation to reference next version
_nextVersion = nextVersion.sub(/rc\d+$/, '') # cordova file references do not include the RC
unless prevVersion == _nextVersion
files = Dir.glob(File.join('docs', 'en', 'edge', '**', '*'))
files.sort.each do |file|
next if File.directory?(file) or file !~ /md|html/
content = File.read(file)
content.gsub!(prevVersion, _nextVersion)
File.open(file, 'w') { |f| f.write(content) }
end
end
# generate a release
edge_dir = File.join('docs', 'en', 'edge')
release_dir = File.join('docs', 'en', nextVersion)
FileUtils.cp_r(edge_dir, release_dir)
# 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