|| fatal 'rvm gemset setup'
rvm env
+ (bundle version | grep -q 2.0.2) || gem install bundler -v 2.0.2
+ bundle="$(which bundle)"
+ echo "$bundle"
+ "$bundle" version | grep 2.0.2 || fatal 'install bundler'
else
# When our "bundle install"s need to install new gems to
# satisfy dependencies, we want them to go where "gem install
echo "Will install dependencies to $(gem env gemdir)"
echo "Will install arvados gems to $tmpdir_gem_home"
echo "Gem search path is GEM_PATH=$GEM_PATH"
+ bundle="$(gem env gempath | cut -f1 -d:)/bin/bundle"
+ (
+ export HOME=$GEMHOME
+ ("$bundle" version | grep -q 2.0.2) \
+ || gem install --user bundler -v 2.0.2
+ "$bundle" version | grep 2.0.2
+ ) || fatal 'install bundler'
fi
- bundle config || gem install bundler \
- || fatal 'install bundler'
}
with_test_gemset() {
}
install_env() {
- (
- set -e
- mkdir -p "$GOPATH/src/git.curoverse.com"
- if [[ ! -h "$GOPATH/src/git.curoverse.com/arvados.git" ]]; then
- for d in \
- "$GOPATH/src/git.curoverse.com/arvados.git/tmp/GOPATH" \
- "$GOPATH/src/git.curoverse.com/arvados.git/tmp" \
- "$GOPATH/src/git.curoverse.com/arvados.git/arvados" \
- "$GOPATH/src/git.curoverse.com/arvados.git"; do
- [[ -h "$d" ]] && rm "$d"
- [[ -d "$d" ]] && rmdir "$d"
- done
- fi
- ln -vsfT "$WORKSPACE" "$GOPATH/src/git.curoverse.com/arvados.git"
- go get -v github.com/kardianos/govendor
- cd "$GOPATH/src/git.curoverse.com/arvados.git"
- go get -v -d ...
- "$GOPATH/bin/govendor" sync
- which goimports >/dev/null || go get golang.org/x/tools/cmd/goimports
- ) || fatal "Go setup failed"
+ go mod download || fatal "Go deps failed"
+ which goimports >/dev/null || go get golang.org/x/tools/cmd/goimports || fatal "Go setup failed"
setup_virtualenv "$VENVDIR" --python python2.7
. "$VENVDIR/bin/activate"
EOF
fi
-
- if ! which bundler >/dev/null
- then
- gem install --user-install bundler || fatal 'Could not install bundler'
- fi
}
retry() {
stop_services
check_arvados_config "$1"
;;
- gofmt | govendor | doc | lib/cli | lib/cloud/azure | lib/cloud/ec2 | lib/cloud/cloudtest | lib/cmd | lib/dispatchcloud/ssh_executor | lib/dispatchcloud/worker)
+ gofmt | doc | lib/cli | lib/cloud/azure | lib/cloud/ec2 | lib/cloud/cloudtest | lib/cmd | lib/dispatchcloud/ssh_executor | lib/dispatchcloud/worker)
check_arvados_config "$1"
# don't care whether services are running
;;
go_ldflags() {
version=${ARVADOS_VERSION:-$(git log -n1 --format=%H)-dev}
- echo "-X git.curoverse.com/arvados.git/lib/cmd.version=${version} -X main.version=${version}"
+ echo "-X git.arvados.org/arvados.git/lib/cmd.version=${version} -X main.version=${version}"
}
do_test_once() {
then
covername="coverage-$(echo "$1" | sed -e 's/\//_/g')"
coverflags=("-covermode=count" "-coverprofile=$WORKSPACE/tmp/.$covername.tmp")
- # We do "go get -t" here to catch compilation errors
+ # We do "go install" here to catch compilation errors
# before trying "go test". Otherwise, coverage-reporting
# mode makes Go show the wrong line numbers when reporting
# compilation errors.
- go get -ldflags "$(go_ldflags)" -t "git.curoverse.com/arvados.git/$1" && \
- cd "$GOPATH/src/git.curoverse.com/arvados.git/$1" && \
+ go install -ldflags "$(go_ldflags)" "$WORKSPACE/$1" && \
+ cd "$WORKSPACE/$1" && \
if [[ -n "${testargs[$1]}" ]]
then
# "go test -check.vv giturl" doesn't work, but this
else
# The above form gets verbose even when testargs is
# empty, so use this form in such cases:
- go test ${short:+-short} ${coverflags[@]} "git.curoverse.com/arvados.git/$1"
+ go test ${short:+-short} ${coverflags[@]} "git.arvados.org/arvados.git/$1"
fi
result=${result:-$?}
if [[ -f "$WORKSPACE/tmp/.$covername.tmp" ]]
result=1
elif [[ "$2" == "go" ]]
then
- go get -ldflags "$(go_ldflags)" -t "git.curoverse.com/arvados.git/$1"
+ go install -ldflags "$(go_ldflags)" "$WORKSPACE/$1"
elif [[ "$2" == "pip" ]]
then
# $3 can name a path directory for us to use, including trailing
(
set -e
echo "(Running bundle install --local. 'could not find package' messages are OK.)"
- if ! bundle install --local --no-deployment; then
+ if ! "$bundle" install --local --no-deployment; then
echo "(Running bundle install again, without --local.)"
- bundle install --no-deployment
+ "$bundle" install --no-deployment
fi
- bundle package --all
+ "$bundle" package --all
)
}
install_services/api() {
stop_services
cd "$WORKSPACE/services/api" \
- && RAILS_ENV=test bundle_install_trylocal
+ && RAILS_ENV=test bundle_install_trylocal \
+ || return 1
rm -f config/environments/test.rb
cp config/environments/test.rb.example config/environments/test.rb
(cd "$WORKSPACE/services/api"
export RAILS_ENV=test
- if bundle exec rails db:environment:set ; then
- bundle exec rake db:drop
+ if "$bundle" exec rails db:environment:set ; then
+ "$bundle" exec rake db:drop
fi
- bundle exec rake db:setup \
- && bundle exec rake db:fixtures:load
+ "$bundle" exec rake db:setup \
+ && "$bundle" exec rake db:fixtures:load
)
}
cd "$WORKSPACE/apps/workbench" \
&& mkdir -p tmp/cache \
&& RAILS_ENV=test bundle_install_trylocal \
- && RAILS_ENV=test RAILS_GROUPS=assets bundle exec rake npm:install
+ && RAILS_ENV=test RAILS_GROUPS=assets "$bundle" exec rake npm:install
}
test_doc() {
ARVADOS_API_HOST=qr1hi.arvadosapi.com
# Make sure python-epydoc is installed or the next line won't
# do much good!
- PYTHONPATH=$WORKSPACE/sdk/python/ bundle exec rake linkchecker baseurl=file://$WORKSPACE/doc/.site/ arvados_workbench_host=https://workbench.$ARVADOS_API_HOST arvados_api_host=$ARVADOS_API_HOST
+ PYTHONPATH=$WORKSPACE/sdk/python/ "$bundle" exec rake linkchecker baseurl=file://$WORKSPACE/doc/.site/ arvados_workbench_host=https://workbench.$ARVADOS_API_HOST arvados_api_host=$ARVADOS_API_HOST
)
}
[[ -z "$(gofmt -e -d $dirs | tee -a /dev/stderr)" ]]
}
-test_govendor() {
- (
- set -e
- cd "$GOPATH/src/git.curoverse.com/arvados.git"
- # Remove cached source dirs in workdir. Otherwise, they will
- # not qualify as +missing or +external below, and we won't be
- # able to detect that they're missing from vendor/vendor.json.
- rm -rf vendor/*/
- go get -v -d ...
- "$GOPATH/bin/govendor" sync
- if [[ -n $("$GOPATH/bin/govendor" list +unused +missing +external | tee /dev/stderr) ]]; then
- echo >&2 "vendor/vendor.json has unused or missing dependencies -- try:
-
-(export GOPATH=\"${GOPATH}\"; cd \$GOPATH/src/git.curoverse.com/arvados.git && \$GOPATH/bin/govendor add +missing +external && \$GOPATH/bin/govendor remove +unused)
-
-"
- return 1
- fi
- )
-}
-
test_services/api() {
rm -f "$WORKSPACE/services/api/git-commit.version"
cd "$WORKSPACE/services/api" \
- && eval env RAILS_ENV=test ${short:+RAILS_TEST_SHORT=1} bundle exec rake test TESTOPTS=\'-v -d\' ${testargs[services/api]}
+ && eval env RAILS_ENV=test ${short:+RAILS_TEST_SHORT=1} "$bundle" exec rake test TESTOPTS=\'-v -d\' ${testargs[services/api]}
}
test_sdk/ruby() {
cd "$WORKSPACE/sdk/ruby" \
- && bundle exec rake test TESTOPTS=-v ${testargs[sdk/ruby]}
+ && "$bundle" exec rake test TESTOPTS=-v ${testargs[sdk/ruby]}
}
test_sdk/R() {
test_sdk/cli() {
cd "$WORKSPACE/sdk/cli" \
&& mkdir -p /tmp/keep \
- && KEEP_LOCAL_STORE=/tmp/keep bundle exec rake test TESTOPTS=-v ${testargs[sdk/cli]}
+ && KEEP_LOCAL_STORE=/tmp/keep "$bundle" exec rake test TESTOPTS=-v ${testargs[sdk/cli]}
}
test_sdk/java-v2() {
test_services/login-sync() {
cd "$WORKSPACE/services/login-sync" \
- && bundle exec rake test TESTOPTS=-v ${testargs[services/login-sync]}
+ && "$bundle" exec rake test TESTOPTS=-v ${testargs[services/login-sync]}
}
test_services/nodemanager_integration() {
test_apps/workbench_units() {
local TASK="test:units"
cd "$WORKSPACE/apps/workbench" \
- && eval env RAILS_ENV=test ${short:+RAILS_TEST_SHORT=1} bundle exec rake ${TASK} TESTOPTS=\'-v -d\' ${testargs[apps/workbench]} ${testargs[apps/workbench_units]}
+ && eval env RAILS_ENV=test ${short:+RAILS_TEST_SHORT=1} "$bundle" exec rake ${TASK} TESTOPTS=\'-v -d\' ${testargs[apps/workbench]} ${testargs[apps/workbench_units]}
}
test_apps/workbench_functionals() {
local TASK="test:functionals"
cd "$WORKSPACE/apps/workbench" \
- && eval env RAILS_ENV=test ${short:+RAILS_TEST_SHORT=1} bundle exec rake ${TASK} TESTOPTS=\'-v -d\' ${testargs[apps/workbench]} ${testargs[apps/workbench_functionals]}
+ && eval env RAILS_ENV=test ${short:+RAILS_TEST_SHORT=1} "$bundle" exec rake ${TASK} TESTOPTS=\'-v -d\' ${testargs[apps/workbench]} ${testargs[apps/workbench_functionals]}
}
test_apps/workbench_integration() {
local TASK="test:integration"
cd "$WORKSPACE/apps/workbench" \
- && eval env RAILS_ENV=test ${short:+RAILS_TEST_SHORT=1} bundle exec rake ${TASK} TESTOPTS=\'-v -d\' ${testargs[apps/workbench]} ${testargs[apps/workbench_integration]}
+ && eval env RAILS_ENV=test ${short:+RAILS_TEST_SHORT=1} "$bundle" exec rake ${TASK} TESTOPTS=\'-v -d\' ${testargs[apps/workbench]} ${testargs[apps/workbench_integration]}
}
test_apps/workbench_benchmark() {
local TASK="test:benchmark"
cd "$WORKSPACE/apps/workbench" \
- && eval env RAILS_ENV=test ${short:+RAILS_TEST_SHORT=1} bundle exec rake ${TASK} ${testargs[apps/workbench_benchmark]}
+ && eval env RAILS_ENV=test ${short:+RAILS_TEST_SHORT=1} "$bundle" exec rake ${TASK} ${testargs[apps/workbench_benchmark]}
}
test_apps/workbench_profile() {
local TASK="test:profile"
cd "$WORKSPACE/apps/workbench" \
- && eval env RAILS_ENV=test ${short:+RAILS_TEST_SHORT=1} bundle exec rake ${TASK} ${testargs[apps/workbench_profile]}
+ && eval env RAILS_ENV=test ${short:+RAILS_TEST_SHORT=1} "$bundle" exec rake ${TASK} ${testargs[apps/workbench_profile]}
}
install_deps() {
fi
do_test gofmt
- do_test govendor
do_test doc
do_test sdk/ruby
do_test sdk/R