Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # Setup:
- # tddium config:add suite EY_API_TOKEN xxxxxxxx
- # (take EY_API_TOKEN value from ~/.eyrc)
- # tddium config:add suite EY_DEPLOY_KEY yyyyyyy
- # (EY_DEPLOY_KEY value is Base64-encoded content of your ~/.ssh/id_rsa OR any other ssh key authorised for a given EY env)
- require 'timeout'
- require 'etc'
- require 'base64'
- def current_branch
- `git symbolic-ref HEAD 2>/dev/null | cut -d"/" -f 3-`.strip
- end
- def tddium?
- ENV['TDDIUM'].present?
- end
- namespace :tddium do
- desc "Run post-build script"
- task :post_build_hook do
- print_status_info
- if deploy?
- Rake::Task["deploy:dev"].execute
- end
- end
- private
- def print_status_info
- puts "tddium? " + tddium?.inspect
- puts "passed? " + passed?.inspect
- puts "on_tracked_branch? " + on_tracked_branch?.inspect
- puts "deploy? " + deploy?.inspect
- end
- def deploy?
- tddium? && on_tracked_branch? && passed?
- end
- def passed?
- ENV['TDDIUM_BUILD_STATUS'] == 'passed'
- end
- def on_tracked_branch?
- current_branch == tracked_branch
- end
- def tracked_branch
- "develop"
- end
- end
- namespace :deploy do
- desc "Deploy master branch to dev server"
- task :dev do
- deploy_with_timeout
- end
- private
- def deploy_with_timeout
- Timeout::timeout(600) do
- deploy
- end
- end
- def ey_deploy_cmd
- "ey deploy -m -e healthism_dev -r #{current_branch}"
- end
- def write_deploy_key
- #It works. Now someone please tell me how to do it properly.
- if tddium?
- puts "We're on Tddium: writing deployment key"
- FileUtils.mkdir_p("#{home_dir}/.ssh")
- File.open("#{home_dir}/.ssh/id_rsa", "w") do |f|
- f.write(deploy_key)
- f.chmod(0600)
- end
- end
- end
- def write_eyrc
- puts "Writing .eyrc key"
- content = "---\napi_token: #{ENV['EY_API_TOKEN']}"
- File.open("#{home_dir}/.eyrc", "w") do |f|
- f.write(content)
- f.chmod(0600)
- end
- end
- def home_dir
- Etc.getpwuid.dir
- end
- def deploy_key
- Base64.decode64(ENV['EY_DEPLOY_KEY'])
- end
- def deploy
- write_deploy_key
- write_eyrc
- system ey_deploy_cmd
- end
- end
Add Comment
Please, Sign In to add comment