class DeployDply::Archive
Attributes
branch[R]
name[R]
skip_depcheck[W]
Public Class Methods
new(name, branch: nil, revision: nil)
click to toggle source
# File lib/deploy_dply/archive.rb, line 10 def initialize(name, branch: nil, revision: nil) @name = name @branch = (branch || load_branch).tr("/", "_") @revision = revision validate end
Public Instance Methods
created(git: true, gnu_tar: false, &block)
click to toggle source
# File lib/deploy_dply/archive.rb, line 17 def created(git: true, gnu_tar: false, &block) create_artifacts_dir create_tar git, gnu_tar instance_eval &block add_git_commit_id add_revision add_archive_name depcheck compress end
Private Instance Methods
add(file, chdir: nil)
click to toggle source
# File lib/deploy_dply/archive.rb, line 93 def add(file, chdir: nil) if chdir helper.sh %(tar --hard-dereference -h -C #{chdir} --append -f "#{tar}" "#{file}") else helper.sh %(tar --hard-dereference -h --append -f "#{tar}" "#{file}") end end
add_archive_name()
click to toggle source
# File lib/deploy_dply/archive.rb, line 60 def add_archive_name file = "ARCHIVE_NAME" File.write(file, @name) add file end
add_bundle()
click to toggle source
# File lib/deploy_dply/archive.rb, line 66 def add_bundle add ".bundle" add "vendor/bundle" end
add_git_commit_id()
click to toggle source
# File lib/deploy_dply/archive.rb, line 47 def add_git_commit_id commit_id = `git rev-parse HEAD`.chomp! file = "GIT_COMMIT_ID" File.write(file, commit_id) add file end
add_revision()
click to toggle source
# File lib/deploy_dply/archive.rb, line 54 def add_revision file = "REVISION" File.write(file, revision) add file end
compress()
click to toggle source
# File lib/deploy_dply/archive.rb, line 110 def compress helper.sh %(#{gzip} -f -9 "#{tar}") end
create_artifacts_dir()
click to toggle source
# File lib/deploy_dply/archive.rb, line 34 def create_artifacts_dir artifacts_dir = "tmp/build_artifacts" FileUtils.mkdir artifacts_dir if not File.directory? artifacts_dir end
create_tar(git, gnu_tar)
click to toggle source
# File lib/deploy_dply/archive.rb, line 71 def create_tar(git, gnu_tar) tmp_dir = "tmp/app_code" if git if gnu_tar FileUtils.rm_rf tmp_dir if File.exists? tmp_dir FileUtils.mkdir tmp_dir helper.sh "git archive HEAD | tar xf - -C #{tmp_dir}" helper.sh "tar cf #{tar} -C #{tmp_dir} ." else helper.sh "git archive -o #{tar} HEAD" end else helper.sh "tar -cf #{tar} -T /dev/null" end ensure FileUtils.rm_rf tmp_dir if File.exists? tmp_dir end
depcheck()
click to toggle source
# File lib/deploy_dply/archive.rb, line 105 def depcheck return if @skip_depcheck helper.sh %(drake depcheck #{tar}) end
gzip()
click to toggle source
# File lib/deploy_dply/archive.rb, line 114 def gzip File.exists?("/usr/bin/pigz") ? "pigz" : "gzip" end
helper()
click to toggle source
# File lib/deploy_dply/archive.rb, line 30 def helper @helper ||= Helper.new end
load_branch()
click to toggle source
# File lib/deploy_dply/archive.rb, line 39 def load_branch ENV["BUILD_BRANCH"] || ENV["BRANCH_NAME"] || `git rev-parse --abbrev-ref HEAD`.chomp! end
remove(file)
click to toggle source
# File lib/deploy_dply/archive.rb, line 101 def remove(file) helper.sh %(tar --delete -f "#{tar}" "#{file}") end
revision()
click to toggle source
# File lib/deploy_dply/archive.rb, line 43 def revision @revision ||= ENV["BUILD_NUMBER"] end
tar()
click to toggle source
# File lib/deploy_dply/archive.rb, line 89 def tar @tar ||= "tmp/build_artifacts/#{@name}-#{@revision}-#{@branch}.tar" end
validate()
click to toggle source
# File lib/deploy_dply/archive.rb, line 118 def validate raise "BUILD_NUMBER not specified" if ( !revision || revision.strip.empty?) arr = [:name, :branch] arr.each do |k| v = send k v ||= "" raise "archive param :#{k} is empty" if v.strip.empty? end end