services/fuse
services/keepproxy
services/keepstore
+services/login-sync
services/nodemanager
services/arv-git-httpd
sdk/cli
+sdk/pam
sdk/python
sdk/ruby
sdk/go/arvadosclient
virtualenv --setuptools "$VENVDIR" || fatal "virtualenv $VENVDIR failed"
. "$VENVDIR/bin/activate"
+if (pip install setuptools | grep setuptools-0) || [ "$($VENVDIR/bin/easy_install --version | cut -d\ -f2 | cut -d. -f1)" -lt 18 ]; then
+ pip install --upgrade setuptools
+fi
+
# Note: this must be the last time we change PATH, otherwise rvm will
# whine a lot.
setup_ruby_environment
|| pip install PyYAML >/dev/null \
|| fatal "pip install PyYAML failed"
+# Preinstall forked version of libcloud, because nodemanager "pip install"
+# won't pick it up by default.
+pip freeze 2>/dev/null | egrep ^apache-libcloud==0.18.1.dev2 \
+ || pip install --pre --ignore-installed https://github.com/curoverse/libcloud/archive/apache-libcloud-0.18.1.dev2.zip >/dev/null \
+ || fatal "pip install apache-libcloud failed"
+
# If Python 3 is available, set up its virtualenv in $VENV3DIR.
# Otherwise, skip dependent tests.
PYTHON3=$(which python3)
# the source dist package to avoid a pip bug.
# see https://arvados.org/issues/5766 for details.
- # Also need to install twice, because if it belives the package is
+ # Also need to install twice, because if it believes the package is
# already installed, pip it won't install it. So the first "pip
# install" ensures that the dependencies are met, the second "pip
- # install" ensures that we've actually install the local package
+ # install" ensures that we've actually installed the local package
# we just built.
cd "$WORKSPACE/$1" \
&& "${3}python" setup.py sdist rotate --keep=1 --match .tar.gz \
}
do_install doc
-install_ruby_sdk() {
- with_test_gemset gem_uninstall_if_exists arvados \
- && cd "$WORKSPACE/sdk/ruby" \
+install_gem() {
+ gemname=$1
+ srcpath=$2
+ with_test_gemset gem_uninstall_if_exists "$gemname" \
+ && cd "$WORKSPACE/$srcpath" \
&& bundle_install_trylocal \
- && gem build arvados.gemspec \
- && with_test_gemset gem install --no-ri --no-rdoc `ls -t arvados-*.gem|head -n1`
+ && gem build "$gemname.gemspec" \
+ && with_test_gemset gem install --no-ri --no-rdoc $(ls -t "$gemname"-*.gem|head -n1)
+}
+
+install_ruby_sdk() {
+ install_gem arvados sdk/ruby
}
do_install sdk/ruby ruby_sdk
do_install sdk/perl perl_sdk
install_cli() {
- with_test_gemset gem_uninstall_if_exists arvados-cli \
- && cd "$WORKSPACE/sdk/cli" \
- && bundle_install_trylocal \
- && gem build arvados-cli.gemspec \
- && with_test_gemset gem install --no-ri --no-rdoc `ls -t arvados-cli-*.gem|head -n1`
+ install_gem arvados-cli sdk/cli
}
do_install sdk/cli cli
+install_login-sync() {
+ install_gem arvados-login-sync services/login-sync
+}
+do_install services/login-sync login-sync
+
# Install the Python SDK early. Various other test suites (like
# keepproxy) bring up run_test_server.py, which imports the arvados
# module. We can't actually *test* the Python SDK yet though, because
# keepproxy).
declare -a pythonstuff
pythonstuff=(
+ sdk/pam
sdk/python
services/fuse
services/nodemanager
}
do_test sdk/cli cli
+test_login-sync() {
+ cd "$WORKSPACE/services/login-sync" \
+ && bundle exec rake test TESTOPTS=-v ${testargs[services/login-sync]}
+}
+do_test services/login-sync login-sync
+
for p in "${pythonstuff[@]}"
do
do_test "$p" pip