20885: Clean up run-tests Python install env
[arvados.git] / build / run-tests.sh
index 6a94d6ff1329cdd213c554827ab8768def334a0c..60b4983a50738e67fe0396854bff84e0df210ef2 100755 (executable)
@@ -109,6 +109,7 @@ services/ws
 sdk/cli
 sdk/python
 sdk/python:py3
+sdk/ruby-google-api-client
 sdk/ruby
 sdk/go/arvados
 sdk/go/arvadosclient
@@ -652,22 +653,14 @@ install_env() {
     setup_virtualenv "$VENV3DIR"
     . "$VENV3DIR/bin/activate"
 
-    # Needed for run_test_server.py which is used by certain (non-Python) tests.
-    # pdoc needed to generate the Python SDK documentation.
-    (
-        set -e
-        "${VENV3DIR}/bin/pip3" install wheel
-        "${VENV3DIR}/bin/pip3" install PyYAML
-        "${VENV3DIR}/bin/pip3" install httplib2
-        "${VENV3DIR}/bin/pip3" install future
-        "${VENV3DIR}/bin/pip3" install google-api-python-client
-        "${VENV3DIR}/bin/pip3" install ciso8601
-        "${VENV3DIR}/bin/pip3" install pycurl
-        "${VENV3DIR}/bin/pip3" install ws4py
-        "${VENV3DIR}/bin/pip3" install pdoc
-        cd "$WORKSPACE/sdk/python"
-        python3 setup.py install
-    ) || fatal "installing PyYAML and sdk/python failed"
+    # PyYAML is a test requirement used by run_test_server.py and needed for
+    # other, non-Python tests.
+    # pdoc is needed to build PySDK documentation.
+    # We run `setup.py build` first to generate _version.py.
+    env -C "$WORKSPACE/sdk/python" python3 setup.py build \
+        && python3 -m pip install "$WORKSPACE/sdk/python" \
+        && python3 -m pip install PyYAML pdoc \
+        || fatal "installing Python SDK and related dependencies failed"
 }
 
 retry() {
@@ -908,6 +901,10 @@ install_sdk/ruby() {
     install_gem arvados sdk/ruby
 }
 
+install_sdk/ruby-google-api-client() {
+    install_gem arvados-google-api-client sdk/ruby-google-api-client
+}
+
 install_sdk/R() {
   if [[ "$NEED_SDK_R" = true ]]; then
     cd "$WORKSPACE/sdk/R" \
@@ -920,6 +917,7 @@ install_sdk/cli() {
 }
 
 install_services/login-sync() {
+    install_gem arvados-google-api-client sdk/ruby-google-api-client
     install_gem arvados sdk/ruby
     install_gem arvados-login-sync services/login-sync
 }
@@ -1021,6 +1019,11 @@ test_sdk/ruby() {
         && "$bundle" exec rake test TESTOPTS=-v ${testargs[sdk/ruby]}
 }
 
+test_sdk/ruby-google-api-client() {
+    echo "*** note \`test sdk/ruby-google-api-client\` does not actually run any tests, see https://dev.arvados.org/issues/20993 ***"
+    true
+}
+
 test_sdk/R() {
   if [[ "$NEED_SDK_R" = true ]]; then
     cd "$WORKSPACE/sdk/R" \
@@ -1079,6 +1082,7 @@ install_deps() {
     do_install cmd/arvados-server go
     do_install sdk/cli
     do_install sdk/python pip "${VENV3DIR}/bin/"
+    do_install sdk/ruby-google-api-client
     do_install sdk/ruby
     do_install services/api
     do_install services/keepproxy go
@@ -1088,6 +1092,7 @@ install_deps() {
 install_all() {
     do_install env
     do_install doc
+    do_install sdk/ruby-google-api-client
     do_install sdk/ruby
     do_install sdk/R
     do_install sdk/cli
@@ -1120,6 +1125,7 @@ test_all() {
 
     do_test gofmt
     do_test doc
+    do_test sdk/ruby-google-api-client
     do_test sdk/ruby
     do_test sdk/R
     do_test sdk/cli