module Vx module Builder class ScriptBuilder class Go < Base DEFAULT_GO = '1.2' def call(env) if enabled?(env) do_before_install(env) do |i| vxvm_install = "sudo vxvm install go #{go_version env}" i << trace_sh_command(%{VX_VM_SOURCE="$(#{vxvm_install})"}, trace: vxvm_install) i << %{source "$VX_VM_SOURCE"} i << trace_sh_command('export GOPATH=$VX_ROOT/gopath') i << trace_sh_command('export PATH=$GOPATH/bin:$PATH') i << trace_sh_command('export VX_ORIG_CODE_ROOT=$(pwd)') i << trace_sh_command('export VX_NEW_CODE_ROOT=$GOPATH/src/vexor.io/$CI_PROJECT_NAME') i << trace_sh_command('mkdir -p $VX_NEW_CODE_ROOT') i << trace_sh_command('rmdir $VX_NEW_CODE_ROOT') i << trace_sh_command('mv $VX_ORIG_CODE_ROOT $VX_NEW_CODE_ROOT') i << trace_sh_command('ln -s $VX_NEW_CODE_ROOT $VX_ORIG_CODE_ROOT') i << trace_sh_command('cd $VX_NEW_CODE_ROOT') end do_announce(env) do |i| i << trace_sh_command("go version") end do_install(env) do |i| i << trace_sh_command("go get -t") end do_script(env) do |i| i << trace_sh_command("go test") end end app.call(env) end private def enabled?(env) env.source.go.first || env.source.language == 'go' end def go_version(env) env.source.go.first || DEFAULT_GO end end end end end