dtc_rake 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,58 @@
1
+ require "rake"
2
+ require "dtc_rake/ui"
3
+ require "uu/os/attachment"
4
+ require "uu/os/rest/binary_value"
5
+ require "uu/os/search"
6
+ require "uu/os/security/session"
7
+ require "uu/os/uesuri_builder"
8
+
9
+ module DtcRake
10
+ include DtcRake::UI
11
+
12
+ def mv_to_output_dir(src_dir, src_file)
13
+ output_dir = DtcRake::Config.instance.output_dir
14
+ FileUtils.mkpath output_dir
15
+ src_file_path = File.join(src_dir, output_dir, src_file)
16
+ dest_file = File.expand_path(File.join(".", output_dir, src_file))
17
+ FileUtils.mv src_file_path, dest_file
18
+ success "#{dest_file} created"
19
+ end
20
+ module_function :mv_to_output_dir
21
+
22
+ # Checks if JRuby is being used. This check is important when building .war
23
+ # files - gems with native extensions (like json, bson) must be added to the
24
+ # output .war file for Java platform. Otherwise certain gems (e.g.
25
+ # uu_os_persistence) cannot be loaded when deployed on servlet container
26
+ # (Tomcat).
27
+ def check_jruby!
28
+ error(".war files must be built using JRuby!") unless RUBY_PLATFORM == "java"
29
+ end
30
+ module_function :check_jruby!
31
+
32
+ def upload_pack(attrs)
33
+ file = attrs[:file]
34
+ artifact_uri = attrs[:appbox_uri] || DtcRake::Product.instance.appbox_uri
35
+ attachment_code = attrs[:attachment_code]
36
+ credentials = attrs[:credentials]
37
+
38
+ abort "Specify login credentials" unless credentials
39
+ UU::OS::Security::Session.login(credentials)
40
+
41
+ attch_uri = UU::OS::UESURIBuilder.parse_uesuri(artifact_uri).set_object_code(attachment_code).to_uesuri
42
+
43
+ if UU::OS::Search.exists(attch_uri)
44
+ File.open(file, "rb") do |f|
45
+ UU::OS::Attachment.check_in(attch_uri, data: UU::OS::REST::BinaryValue.new(f))
46
+ end
47
+ else
48
+ File.open(file, "rb") do |f|
49
+ attch_uri = UU::OS::Attachment.create(artifact_uri, code: attachment_code,
50
+ data: UU::OS::REST::BinaryValue.new(f)
51
+ )
52
+ end
53
+ end
54
+
55
+ attch_uri
56
+ end
57
+ module_function :upload_pack
58
+ end
@@ -0,0 +1,3 @@
1
+ module DtcRake
2
+ VERSION = "0.1.0"
3
+ end
data/lib/dtc_rake.rb ADDED
@@ -0,0 +1,4 @@
1
+ require "rake"
2
+ require "dtc_rake/tasks"
3
+
4
+ DtcRake::Tasks.load_tasks
@@ -0,0 +1,90 @@
1
+ require "rake"
2
+ require "fileutils"
3
+ require "dtc_rake/config"
4
+ require "dtc_rake/product"
5
+ require "dtc_rake/ui"
6
+
7
+ require "uu/os/security/session"
8
+ require "uu/os/artifact"
9
+ require "uu/os/sheet"
10
+ require "uu/os/rest/binary_value"
11
+
12
+ include DtcRake::UI
13
+
14
+ def uesuri(art_code)
15
+ config = DtcRake::Config.instance
16
+ error("Territory code is not set. Set it in DtcRake.configure (attribute appbox_territory_code) in your Rakefile.") if config.appbox_territory_code.nil?
17
+ UU::OS::UESURI.create(
18
+ territory_code: config.appbox_territory_code,
19
+ artifact_code: art_code
20
+ )
21
+ end
22
+
23
+ def create_appbox(attrs)
24
+ config = DtcRake::Config.instance
25
+ product = DtcRake::Product.instance
26
+ credentials = attrs[:credentials]
27
+ version = attrs.fetch(:version, product.version)
28
+ icon = attrs.fetch(:icon, %q(ues:#{system}:#{ues_v5.core_v1.codetable_v1.base_v1.CodeTable_Icons}:#{ART_364}))
29
+
30
+ error("Specify appbox location code - set it in DtcRake.configure block (attribute appbox_location_code) in your Rakefile") unless config.appbox_location_code
31
+ error("Specify appbox meta artifact code - set it in DtcRake.configure block (attribute appbox_meta_artifact_code) in your Rakefile") unless config.appbox_meta_artifact_code
32
+
33
+ location = uesuri(config.appbox_location_code)
34
+ meta_artifact = uesuri(config.appbox_meta_artifact_code)
35
+
36
+ error("Specify login credentials") unless credentials
37
+ UU::OS::Security::Session.login(credentials)
38
+
39
+ config = DtcRake::Config.instance
40
+ art_name = "#{product.app_descriptor[:data][:name]} #{version}"
41
+ art_code = "#{product.app_descriptor[:data][:code]}_#{version}"
42
+ announce "Creating appbox #{art_code} in territory #{config.appbox_territory_code}"
43
+
44
+ appbox_uri = UU::OS::Artifact.create(location,
45
+ name: art_name,
46
+ code: art_code,
47
+ metaArtifactUri: meta_artifact,
48
+ iconUri: icon
49
+ )
50
+
51
+ appbox_uarchive = config.appbox_uarchive
52
+ unless appbox_uarchive.nil?
53
+ begin
54
+ sheet_uri = UU::OS::Sheet.get_sheet_list(appbox_uri, query: "main = true").first.uri
55
+ File.open(appbox_uarchive, "rb") do |f|
56
+ data = UU::OS::REST::BinaryValue.new(f)
57
+ data.content_type = UU::OS::Sheet::MimeType::UARCHIVE
58
+ UU::OS::Sheet.check_in(sheet_uri, :content => data)
59
+ end
60
+ rescue StandardError => e
61
+ warning "WARNING: Failed to fill in appbox content, skipping (cause: #{e.message})"
62
+ end
63
+ end
64
+
65
+ appbox_uri
66
+ end
67
+
68
+ desc <<-DESC.gsub(/^ {2}/, '')
69
+ Creates new appbox artifact; requires path to password file.
70
+ Vendor, app name and version are read from uuApp deployment descriptor.
71
+ Optionally, version can be overriden. Examples:
72
+
73
+ rake appbox DTC_RAKE_PASSWD=12-345-6
74
+ ("~/.uu/12-345-6" will be used)
75
+ (version from client gem will be used)
76
+
77
+ rake appbox DTC_RAKE_PASSWD=/path/to/12-345-6
78
+ (password file from the specified path will be used)
79
+
80
+ rake appbox DTC_RAKE_PASSWD=12-345-6 VERSION=1.2.3
81
+ (the specified version will be used)
82
+ DESC
83
+ task :appbox do
84
+ error("Specify password file in env variable DTC_RAKE_PASSWD, e.g. rake appbox DTC_RAKE_PASSWD=12-345-6") unless ENV["DTC_RAKE_PASSWD"]
85
+ art_uri = create_appbox(
86
+ credentials: ENV["DTC_RAKE_PASSWD"],
87
+ version: ENV["VERSION"] || DtcRake::Product.instance.version
88
+ )
89
+ success "Appbox #{art_uri} created"
90
+ end
@@ -0,0 +1,20 @@
1
+ require "rake"
2
+ require "fileutils"
3
+ require "dtc_rake/config"
4
+ require "dtc_rake/product"
5
+
6
+ product = DtcRake::Product.instance
7
+
8
+ deps = []
9
+ if product.has_gem
10
+ deps << :gem
11
+ deps << :yardoc
12
+ end
13
+ deps << :cmd if product.has_cmd
14
+ deps << :vuc if product.has_vuc
15
+ deps << :dockerfiles if product.has_dockerfiles
16
+
17
+ namespace :build do
18
+ desc "Builds all packs"
19
+ task :all => deps
20
+ end
@@ -0,0 +1,25 @@
1
+ require "rake"
2
+ require "fileutils"
3
+ require "dtc_rake/config"
4
+ require "dtc_rake/product"
5
+ require "dtc_rake/ui"
6
+ require "dtc_rake/util"
7
+
8
+ include DtcRake::UI
9
+ product = DtcRake::Product.instance
10
+
11
+ if product.has_cmd
12
+ namespace :build do
13
+ desc "Builds pack with command server"
14
+ task :cmd do
15
+ DtcRake.check_jruby!
16
+ announce "Building command server pack"
17
+
18
+ FileUtils.cd product.cmd_project do
19
+ system "rake package"
20
+ end
21
+
22
+ DtcRake.mv_to_output_dir(product.cmd_project, product.cmd_file_name)
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,51 @@
1
+ require "rake"
2
+ require "fileutils"
3
+ require "dtc_rake/config"
4
+ require "dtc_rake/product"
5
+ require "dtc_rake/ui"
6
+ require "dtc_rake/util"
7
+
8
+ include DtcRake::UI
9
+ product = DtcRake::Product.instance
10
+
11
+ def build_dockerfiles(product)
12
+ begin
13
+ require "zip"
14
+ rescue LoadError
15
+ error "Gem rubyzip is not available. In order to use this task, you must: gem install rubyzip"
16
+ end
17
+
18
+ announce "Building Dockerfiles pack"
19
+
20
+ output_dir = DtcRake::Config.instance.output_dir
21
+ base_name = File.basename(product.dockerfiles_file_name, ".zip")
22
+ tmp_dir = File.join(output_dir, base_name)
23
+ FileUtils.rm_rf tmp_dir if File.directory? tmp_dir
24
+ FileUtils.mkdir_p tmp_dir
25
+
26
+ %w[
27
+ ../docker
28
+ ].each do |dir|
29
+ FileUtils.cp_r dir, tmp_dir
30
+ end
31
+
32
+ archive = File.join(output_dir, product.dockerfiles_file_name)
33
+ info "Creating #{archive}"
34
+ FileUtils.rm_f archive
35
+ Zip::File.open(archive, "w") do |zip|
36
+ Dir["#{tmp_dir}/**/**"].reject { |f| f == archive }.each do |file|
37
+ zip.add(file.sub("#{tmp_dir}/", ""), file)
38
+ end
39
+ end
40
+
41
+ FileUtils.rm_rf tmp_dir
42
+ end
43
+
44
+ if product.has_dockerfiles
45
+ namespace :build do
46
+ desc "Builds pack with Dockerfiles"
47
+ task :dockerfiles do
48
+ build_dockerfiles(product)
49
+ end
50
+ end
51
+ end
@@ -0,0 +1,23 @@
1
+ require "rake"
2
+ require "fileutils"
3
+ require "dtc_rake/config"
4
+ require "dtc_rake/product"
5
+ require "dtc_rake/ui"
6
+ require "dtc_rake/util"
7
+
8
+ include DtcRake::UI
9
+ product = DtcRake::Product.instance
10
+
11
+ if product.has_gem
12
+ namespace :build do
13
+ desc "Builds pack with command client Ruby gem"
14
+ task :gem do
15
+ announce "Building command client Ruby gem pack"
16
+ FileUtils.cd product.gem_project do
17
+ system "rake package"
18
+ end
19
+
20
+ DtcRake.mv_to_output_dir(product.gem_project, product.gem_file_name)
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,25 @@
1
+ require "rake"
2
+ require "fileutils"
3
+ require "dtc_rake/config"
4
+ require "dtc_rake/product"
5
+ require "dtc_rake/ui"
6
+ require "dtc_rake/util"
7
+
8
+ include DtcRake::UI
9
+ product = DtcRake::Product.instance
10
+
11
+ if product.has_vuc
12
+ namespace :build do
13
+ desc "Builds pack with visual use cases"
14
+ task :vuc do
15
+ DtcRake.check_jruby!
16
+ announce "Building visual use cases pack"
17
+
18
+ FileUtils.cd product.vuc_project do
19
+ system "rake package"
20
+ end
21
+
22
+ DtcRake.mv_to_output_dir(product.vuc_project, product.vuc_file_name)
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,57 @@
1
+ require "rake"
2
+ require "fileutils"
3
+ require "dtc_rake/config"
4
+ require "dtc_rake/product"
5
+ require "dtc_rake/ui"
6
+ require "dtc_rake/util"
7
+
8
+ include DtcRake::UI
9
+ product = DtcRake::Product.instance
10
+
11
+ def build_yardoc(product)
12
+ begin
13
+ require "zip"
14
+ rescue LoadError
15
+ error "Gem rubyzip is not available. In order to use this task, you must: gem install rubyzip"
16
+ end
17
+
18
+ announce "Building command client yardoc pack"
19
+
20
+ output_dir = DtcRake::Config.instance.output_dir
21
+ archive = product.yardoc_file_name
22
+ tmp_dir = File.basename(archive, ".zip")
23
+
24
+ FileUtils.cd product.gem_project do
25
+ [
26
+ File.join(output_dir, tmp_dir),
27
+ File.join(output_dir, "doc")
28
+ ].each do |dir|
29
+ FileUtils.rm_rf dir if File.directory? dir
30
+ end
31
+
32
+ system "yardoc"
33
+
34
+ FileUtils.cd output_dir do
35
+ FileUtils.mv "doc", tmp_dir
36
+
37
+ info "Creating #{archive}"
38
+ FileUtils.rm_f archive
39
+ Zip::File.open(archive, "w") do |zip|
40
+ Dir["#{tmp_dir}/**/**"].reject { |f| f == archive }.each do |file|
41
+ zip.add(file.sub("target/", ""), file)
42
+ end
43
+ end
44
+ end
45
+ end
46
+
47
+ DtcRake.mv_to_output_dir(product.gem_project, archive)
48
+ end
49
+
50
+ if product.has_gem
51
+ namespace :build do
52
+ desc "Builds pack with command client yardoc"
53
+ task :yardoc do
54
+ build_yardoc(product)
55
+ end
56
+ end
57
+ end
@@ -0,0 +1,22 @@
1
+ require "rake"
2
+ require "fileutils"
3
+ require "dtc_rake/config"
4
+ require "dtc_rake/product"
5
+
6
+ product = DtcRake::Product.instance
7
+ config = DtcRake::Config.instance
8
+
9
+ deps = []
10
+ if product.has_gem
11
+ deps << :gem
12
+ deps << :yardoc
13
+ end
14
+ deps << :cmd if product.has_cmd
15
+ deps << :vuc if product.has_vuc
16
+ deps << :dockerfiles if product.has_dockerfiles
17
+ deps << :descriptor if config.upload_app_descriptor
18
+
19
+ namespace :upload do
20
+ desc "Uploads all packs to appbox artifact; requires path to password file"
21
+ task :all => deps
22
+ end
@@ -0,0 +1,40 @@
1
+ require "rake"
2
+ require "fileutils"
3
+ require "dtc_rake/config"
4
+ require "dtc_rake/product"
5
+ require "dtc_rake/ui"
6
+ require "dtc_rake/util"
7
+
8
+ include DtcRake::UI
9
+ product = DtcRake::Product.instance
10
+
11
+ if product.has_cmd
12
+ namespace :upload do
13
+ desc <<-DESC.gsub(/^ {4}/, '')
14
+ Uploads pack with command server to appbox artifact; requires path to password file.
15
+
16
+ rake upload:cmd DTC_RAKE_PASSWD=12-345-6
17
+ ("~/.uu/12-345-6" will be used)
18
+
19
+ rake upload:cmd DTC_RAKE_PASSWD=/path/to/12-345-6
20
+ (password file from the specified path will be used)
21
+ DESC
22
+ task :cmd => ["build:cmd"] do
23
+ error("Specify password file in env variable DTC_RAKE_PASSWD, e.g. rake upload:cmd DTC_RAKE_PASSWD=12-345-6") unless ENV["DTC_RAKE_PASSWD"]
24
+
25
+ pack_file = File.join(DtcRake::Config.instance.output_dir, product.cmd_file_name)
26
+ error("File #{pack_file} does not exist") unless File.file?(pack_file)
27
+
28
+ art_uri = product.appbox_uri
29
+ attch_code = product.cmd_attachment_code
30
+ announce "Uploading #{pack_file} to #{art_uri}:#{attch_code}..."
31
+ attch_uri = DtcRake.upload_pack(
32
+ file: pack_file,
33
+ appbox_uri: art_uri,
34
+ attachment_code: attch_code,
35
+ credentials: ENV["DTC_RAKE_PASSWD"]
36
+ )
37
+ success "File #{pack_file} uploaded to #{attch_uri}"
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,41 @@
1
+ require "rake"
2
+ require "fileutils"
3
+ require "dtc_rake/config"
4
+ require "dtc_rake/product"
5
+ require "dtc_rake/ui"
6
+ require "dtc_rake/util"
7
+
8
+ include DtcRake::UI
9
+ product = DtcRake::Product.instance
10
+ config = DtcRake::Config.instance
11
+
12
+ if config.upload_app_descriptor
13
+ namespace :upload do
14
+ desc <<-DESC.gsub(/^ {4}/, '')
15
+ Uploads uuApp deployment descriptor to appbox artifact; requires path to password file.
16
+
17
+ rake upload:descriptor DTC_RAKE_PASSWD=12-345-6
18
+ ("~/.uu/12-345-6" will be used)
19
+
20
+ rake upload:descriptor DTC_RAKE_PASSWD=/path/to/12-345-6
21
+ (password file from the specified path will be used)
22
+ DESC
23
+ task :descriptor do
24
+ error("Specify password file in env variable DTC_RAKE_PASSWD, e.g. rake upload:descriptor DTC_RAKE_PASSWD=12-345-6") unless ENV["DTC_RAKE_PASSWD"]
25
+
26
+ the_file = File.join(config.output_dir, config.app_descriptor_path)
27
+ error("File #{the_file} does not exist") unless File.file?(the_file)
28
+
29
+ art_uri = product.appbox_uri
30
+ attch_code = product.app_descriptor_attachment_code
31
+ announce "Uploading #{the_file} to #{art_uri}:#{attch_code}..."
32
+ attch_uri = DtcRake.upload_pack(
33
+ file: the_file,
34
+ appbox_uri: art_uri,
35
+ attachment_code: attch_code,
36
+ credentials: ENV["DTC_RAKE_PASSWD"]
37
+ )
38
+ success "File #{the_file} uploaded to #{attch_uri}"
39
+ end
40
+ end
41
+ end
@@ -0,0 +1,40 @@
1
+ require "rake"
2
+ require "fileutils"
3
+ require "dtc_rake/config"
4
+ require "dtc_rake/product"
5
+ require "dtc_rake/ui"
6
+ require "dtc_rake/util"
7
+
8
+ include DtcRake::UI
9
+ product = DtcRake::Product.instance
10
+
11
+ if product.has_dockerfiles
12
+ namespace :upload do
13
+ desc <<-DESC.gsub(/^ {4}/, '')
14
+ Uploads pack with Dockerfiles to appbox artifact; requires path to password file.
15
+
16
+ rake upload:dockerfiles DTC_RAKE_PASSWD=12-345-6
17
+ ("~/.uu/12-345-6" will be used)
18
+
19
+ rake upload:dockerfiles DTC_RAKE_PASSWD=/path/to/12-345-6
20
+ (password file from the specified path will be used)
21
+ DESC
22
+ task :dockerfiles => ["build:dockerfiles"] do
23
+ error("Specify password file in env variable DTC_RAKE_PASSWD, e.g. rake upload:dockerfiles DTC_RAKE_PASSWD=12-345-6") unless ENV["DTC_RAKE_PASSWD"]
24
+
25
+ pack_file = File.join(DtcRake::Config.instance.output_dir, product.dockerfiles_file_name)
26
+ error("File #{pack_file} does not exist") unless File.file?(pack_file)
27
+
28
+ art_uri = product.appbox_uri
29
+ attch_code = product.dockerfiles_attachment_code
30
+ announce "Uploading #{pack_file} to #{art_uri}:#{attch_code}..."
31
+ attch_uri = DtcRake.upload_pack(
32
+ file: pack_file,
33
+ appbox_uri: art_uri,
34
+ attachment_code: attch_code,
35
+ credentials: ENV["DTC_RAKE_PASSWD"]
36
+ )
37
+ success "File #{pack_file} uploaded to #{attch_uri}"
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,40 @@
1
+ require "rake"
2
+ require "fileutils"
3
+ require "dtc_rake/config"
4
+ require "dtc_rake/product"
5
+ require "dtc_rake/ui"
6
+ require "dtc_rake/util"
7
+
8
+ include DtcRake::UI
9
+ product = DtcRake::Product.instance
10
+
11
+ if product.has_gem
12
+ namespace :upload do
13
+ desc <<-DESC.gsub(/^ {4}/, '')
14
+ Uploads pack with command client Ruby gem to appbox artifact; requires path to password file.
15
+
16
+ rake upload:gem DTC_RAKE_PASSWD=12-345-6
17
+ ("~/.uu/12-345-6" will be used)
18
+
19
+ rake upload:gem DTC_RAKE_PASSWD=/path/to/12-345-6
20
+ (password file from the specified path will be used)
21
+ DESC
22
+ task :gem => ["build:gem"] do
23
+ error("Specify password file in env variable DTC_RAKE_PASSWD, e.g. rake upload:gem DTC_RAKE_PASSWD=12-345-6") unless ENV["DTC_RAKE_PASSWD"]
24
+
25
+ pack_file = File.join(DtcRake::Config.instance.output_dir, product.gem_file_name)
26
+ error("File #{pack_file} does not exist") unless File.file?(pack_file)
27
+
28
+ art_uri = product.appbox_uri
29
+ attch_code = product.gem_attachment_code
30
+ announce "Uploading #{pack_file} to #{art_uri}:#{attch_code}..."
31
+ attch_uri = DtcRake.upload_pack(
32
+ file: pack_file,
33
+ appbox_uri: art_uri,
34
+ attachment_code: attch_code,
35
+ credentials: ENV["DTC_RAKE_PASSWD"]
36
+ )
37
+ success "File #{pack_file} uploaded to #{attch_uri}"
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,40 @@
1
+ require "rake"
2
+ require "fileutils"
3
+ require "dtc_rake/config"
4
+ require "dtc_rake/product"
5
+ require "dtc_rake/ui"
6
+ require "dtc_rake/util"
7
+
8
+ include DtcRake::UI
9
+ product = DtcRake::Product.instance
10
+
11
+ if product.has_vuc
12
+ namespace :upload do
13
+ desc <<-DESC.gsub(/^ {4}/, '')
14
+ Uploads pack with visual use cases to appbox artifact; requires path to password file.
15
+
16
+ rake upload:vuc DTC_RAKE_PASSWD=12-345-6
17
+ ("~/.uu/12-345-6" will be used)
18
+
19
+ rake upload:vuc DTC_RAKE_PASSWD=/path/to/12-345-6
20
+ (password file from the specified path will be used)
21
+ DESC
22
+ task :vuc => ["build:vuc"] do
23
+ error("Specify password file in env variable DTC_RAKE_PASSWD, e.g. rake upload:vuc DTC_RAKE_PASSWD=12-345-6") unless ENV["DTC_RAKE_PASSWD"]
24
+
25
+ pack_file = File.join(DtcRake::Config.instance.output_dir, product.vuc_file_name)
26
+ error("File #{pack_file} does not exist") unless File.file?(pack_file)
27
+
28
+ art_uri = product.appbox_uri
29
+ attch_code = product.vuc_attachment_code
30
+ announce "Uploading #{pack_file} to #{art_uri}:#{attch_code}..."
31
+ attch_uri = DtcRake.upload_pack(
32
+ file: pack_file,
33
+ appbox_uri: art_uri,
34
+ attachment_code: attch_code,
35
+ credentials: ENV["DTC_RAKE_PASSWD"]
36
+ )
37
+ success "File #{pack_file} uploaded to #{attch_uri}"
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,40 @@
1
+ require "rake"
2
+ require "fileutils"
3
+ require "dtc_rake/config"
4
+ require "dtc_rake/product"
5
+ require "dtc_rake/ui"
6
+ require "dtc_rake/util"
7
+
8
+ include DtcRake::UI
9
+ product = DtcRake::Product.instance
10
+
11
+ if product.has_gem
12
+ namespace :upload do
13
+ desc <<-DESC.gsub(/^ {4}/, '')
14
+ Uploads pack with command client yardoc to appbox artifact; requires path to password file.
15
+
16
+ rake upload:yardoc DTC_RAKE_PASSWD=12-345-6
17
+ ("~/.uu/12-345-6" will be used)
18
+
19
+ rake upload:yardoc DTC_RAKE_PASSWD=/path/to/12-345-6
20
+ (password file from the specified path will be used)
21
+ DESC
22
+ task :yardoc => ["build:yardoc"] do
23
+ error("Specify password file in env variable DTC_RAKE_PASSWD, e.g. rake upload:yardoc DTC_RAKE_PASSWD=12-345-6") unless ENV["DTC_RAKE_PASSWD"]
24
+
25
+ pack_file = File.join(DtcRake::Config.instance.output_dir, product.yardoc_file_name)
26
+ error("File #{pack_file} does not exist") unless File.file?(pack_file)
27
+
28
+ art_uri = product.appbox_uri
29
+ attch_code = product.yardoc_attachment_code
30
+ announce "Uploading #{pack_file} to #{art_uri}:#{attch_code}..."
31
+ attch_uri = DtcRake.upload_pack(
32
+ file: pack_file,
33
+ appbox_uri: art_uri,
34
+ attachment_code: attch_code,
35
+ credentials: ENV["DTC_RAKE_PASSWD"]
36
+ )
37
+ success "File #{pack_file} uploaded to #{attch_uri}"
38
+ end
39
+ end
40
+ end