Skip to content

Commit e35b320

Browse files
committed
[CI] Creates zip file with built gems
1 parent 920c3d8 commit e35b320

File tree

1 file changed

+26
-15
lines changed

1 file changed

+26
-15
lines changed

rake_tasks/unified_release_tasks.rake

Lines changed: 26 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -15,47 +15,58 @@
1515
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
1616
# KIND, either express or implied. See the License for the
1717
# specific language governing permissions and limitations
18+
require 'fileutils'
1819
require_relative '../elasticsearch/lib/elasticsearch/version'
1920

2021
namespace :unified_release do
2122
desc 'Build gem snapshot'
2223
task :assemble_snapshot, [:version_qualifier, :output_dir] do |_, args|
23-
qualifier = "#{args[:version_qualifier]}-SNAPSHOT"
24-
@version = determine_version(qualifier)
25-
Rake::Task['update_version'].invoke(Elasticsearch::VERSION, @version) unless @version == Elasticsearch::VERSION
24+
qualifier = if args[:version_qualifier].nil? || args[:version_qualifier].empty?
25+
Time.now.strftime('%Y%m%d%H%M%S')
26+
else
27+
args[:version_qualifier]
28+
end
29+
@version = "#{Elasticsearch::VERSION}.#{qualifier}-SNAPSHOT"
30+
@zip_filename = "elasticsearch-ruby-#{Elasticsearch::VERSION}-SNAPSHOT"
2631

32+
Rake::Task['update_version'].invoke(Elasticsearch::VERSION, @version) unless @version == Elasticsearch::VERSION
2733
build_gems(args[:output_dir])
34+
zip_files(args[:output_dir])
2835
end
2936

3037
desc 'Build gem release'
3138
task :assemble, [:version_qualifier, :output_dir] do |_, args|
32-
@version = determine_version(args[:version_qualifier])
39+
version = [Elasticsearch::VERSION]
40+
version << args[:version_qualifier] unless args[:version_qualifier].nil? || args[:version_qualifier].empty?
41+
42+
@version = version.join('.')
43+
@zip_filename = "elasticsearch-ruby-#{version.join('-')}"
3344
Rake::Task['update_version'].invoke(Elasticsearch::VERSION, @version) unless @version == Elasticsearch::VERSION
3445

3546
build_gems(args[:output_dir])
47+
zip_files(args[:output_dir])
3648
end
3749

3850
def build_gems(output_dir)
3951
raise ArgumentError, 'You must specify an output dir' unless output_dir
4052

53+
# Create dir if it doesn't exist
54+
dir = CURRENT_PATH.join(output_dir).to_s
55+
FileUtils.mkdir_p(dir) unless File.exist?(dir)
56+
4157
RELEASE_TOGETHER.each do |gem|
4258
puts '-' * 80
4359
puts "Building #{gem} v#{@version} to #{output_dir}"
44-
sh "cd #{CURRENT_PATH.join(gem)} && gem build --silent && mv *.gem #{CURRENT_PATH.join(output_dir)}"
60+
sh "cd #{CURRENT_PATH.join(gem)} " \
61+
"&& gem build --silent -o #{gem}-#{@version}.gem && " \
62+
"mv *.gem #{CURRENT_PATH.join(output_dir)}"
4563
end
4664
puts '-' * 80
4765
end
4866

49-
def determine_version(version_qualifier)
50-
if !(version_qualifier.nil? || version_qualifier.empty?)
51-
if version_qualifier =~ /^-SNAPSHOT$/
52-
Elasticsearch::VERSION + version_qualifier
53-
else
54-
Elasticsearch::VERSION + "-#{version_qualifier}"
55-
end
56-
else
57-
Elasticsearch::VERSION
58-
end
67+
def zip_files(output_dir)
68+
sh "cd #{CURRENT_PATH.join(output_dir)} && " \
69+
"zip -r #{@zip_filename}.zip * " \
5970
end
6071

6172
desc 'Publish gems to Rubygems'

0 commit comments

Comments
 (0)