lib/dockly/rake_task.rb in dockly-2.2.0 vs lib/dockly/rake_task.rb in dockly-2.3.0
- old
+ new
@@ -51,50 +51,99 @@
namespace :dockly do
task :load do
raise "No dockly.rb found!" unless File.exist?('dockly.rb')
end
+ prepare_targets = []
+ upload_targets = []
build_targets = []
namespace :deb do
Dockly.debs.values.each do |inst|
- deb inst.name => 'dockly:load' do |name|
- Thread.current[:rake_task] = name
- inst.build
+ namespace :prepare do
+ task inst.name => 'dockly:load' do |name|
+ inst.create_package!
+ end
end
+
+ namespace :upload do
+ deb inst.name => 'dockly:load' do |name|
+ inst.upload_to_s3
+ end
+ end
+
+ deb inst.name => [
+ 'dockly:load',
+ "dockly:deb:prepare:#{inst.name}",
+ "dockly:deb:upload:#{inst.name}"
+ ]
+ prepare_targets << "dockly:deb:prepare:#{inst.name}"
+ upload_targets << "dockly:deb:upload:#{inst.name}"
build_targets << "dockly:deb:#{inst.name}"
end
end
namespace :rpm do
Dockly.rpms.values.each do |inst|
- rpm inst.name => 'dockly:load' do |name|
- Thread.current[:rake_task] = name
- inst.build
+ namespace :prepare do
+ task inst.name => 'dockly:load' do |name|
+ inst.create_package!
+ end
end
+
+ namespace :upload do
+ rpm inst.name => 'dockly:load' do |name|
+ inst.upload_to_s3
+ end
+ end
+
+ rpm inst.name => [
+ 'dockly:load',
+ "dockly:rpm:prepare:#{inst.name}",
+ "dockly:rpm:upload:#{inst.name}"
+ ]
+ prepare_targets << "dockly:rpm:prepare:#{inst.name}"
+ upload_targets << "dockly:rpm:upload:#{inst.name}"
build_targets << "dockly:rpm:#{inst.name}"
end
end
namespace :docker do
Dockly.dockers.values.each do |inst|
- docker inst.name => 'dockly:load' do
- Thread.current[:rake_task] = inst.name
- inst.generate!
+ # For backwards compatibility
+ namespace :noexport do
+ task inst.name => "dockly:docker:prepare:#{inst.name}"
end
- namespace :noexport do
+ namespace :prepare do
task inst.name => 'dockly:load' do
Thread.current[:rake_task] = inst.name
inst.generate_build
end
end
+ namespace :upload do
+ task inst.name => 'dockly:load' do
+ Thread.current[:rake_task] = inst.name
+ inst.export_only
+ end
+ end
+
+ docker inst.name => [
+ 'dockly:load',
+ "dockly:docker:prepare:#{inst.name}",
+ "dockly:docker:upload:#{inst.name}"
+ ]
+
# Docker image will be generated by 'dockly:deb:package'
unless inst.s3_bucket.nil?
+ prepare_targets << "dockly:docker:prepare:#{inst.name}"
+ upload_targets << "dockly:docker:upload:#{inst.name}"
build_targets << "dockly:docker:#{inst.name}"
end
end
end
+ multitask :prepare_all => prepare_targets
+ multitask :upload_all => upload_targets
multitask :build_all => build_targets
end