test_name 'Install beaker and checkout branch if necessary' do

  step 'Download the beaker git repo' do
   on default, 'git clone https://github.com/puppetlabs/beaker.git /opt/beaker/'
  end

  step 'Detect if checking out branch for testing and checkout' do
    if ENV['BEAKER_PULL_ID']
      logger.notify "Pull Request detected, checking out PR branch"
      on(default, 'cd /opt/beaker/;git -c core.askpass=true fetch --tags --progress https://github.com/puppetlabs/beaker.git +refs/pull/*:refs/remotes/origin/pr/*')
      on(default, "cd /opt/beaker/;git merge origin/pr/#{ENV['BEAKER_PULL_ID']}/head --no-edit")
    else
      logger.notify 'No PR branch detected, building from master'
    end
  end

  step 'Build the gem and install it on the local system' do
    build_output = on(default, 'cd /opt/beaker/;gem build beaker.gemspec').stdout
    version = build_output.match(/^  File: (.+)$/)[1]
    on(default, "cd /opt/beaker/;gem install #{version} --no-rdoc --no-ri; gem install beaker-vmpooler")
  end
end
