Sha256: 083587d4f77da0123b93a3186f86e7325ca4cd2325e7329812e11114a25bd79a
Contents?: true
Size: 1.51 KB
Versions: 4
Compression:
Stored size: 1.51 KB
Contents
require 'vx/common' module Vx class Router class ScriptBuilder Prepare = Struct.new(:app) do include Helper::TraceShCommand include Common::Helper::UploadShCommand def call(env) name = env.build.message.name deploy_key = env.build.message.deploy_key repo_path = "code/#{name}" data_path = "data/#{name}" key_file = "#{data_path}/key" git_ssh_file = "#{data_path}/git_ssh" sha = env.build.message.sha scm = build_scm(env, sha, repo_path) git_ssh = scm.git_ssh.class.template(deploy_key && "$PWD/#{key_file}") env.init.tap do |i| i << "mkdir -p #{data_path}" i << "mkdir -p #{repo_path}" if deploy_key i << "echo instaling keys" i << upload_sh_command(key_file, deploy_key) i << "chmod 0600 #{key_file}" end i << upload_sh_command(git_ssh_file, git_ssh) i << "chmod 0750 #{git_ssh_file}" i << "export GIT_SSH=$PWD/#{git_ssh_file}" i << scm.make_fetch_command i << "unset GIT_SSH" end app.call env end private def build_scm(env, sha, path) SCM::Git.new(env.build.message.src, sha, "$PWD/#{path}", branch: env.build.message.branch) end end end end end
Version data entries
4 entries across 4 versions & 1 rubygems