From b75ee68d9f6305646a55d816fb1173210e36eab9 Mon Sep 17 00:00:00 2001 From: John Chilton Date: Thu, 5 Jan 2017 14:53:10 -0500 Subject: [PATCH] Run Galaxy tests in --dockerize mode as UID of tester. Fixes #1541 and should really help Jenkins clean up after itself. --- run_tests.sh | 2 ++ test/docker/base/run_test_wrapper.sh | 16 ++++++++++++---- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/run_tests.sh b/run_tests.sh index cb892cc371bb..0144f7b17912 100755 --- a/run_tests.sh +++ b/run_tests.sh @@ -246,6 +246,8 @@ then DOCKER_RUN_EXTRA_ARGS="-v ${tmp}:/tmp ${DOCKER_RUN_EXTRA_ARGS}" shift fi + UID=$(id -u) + DOCKER_RUN_EXTRA_ARGS="-e GALAXY_TEST_UID=${UID} ${DOCKER_RUN_EXTRA_ARGS}" echo "Launching docker container for testing..." docker $DOCKER_EXTRA_ARGS run $DOCKER_RUN_EXTRA_ARGS -e "BUILD_NUMBER=$BUILD_NUMBER" -e "GALAXY_TEST_DATABASE_TYPE=$db_type" --rm -v `pwd`:/galaxy $DOCKER_IMAGE "$@" exit $? diff --git a/test/docker/base/run_test_wrapper.sh b/test/docker/base/run_test_wrapper.sh index 8943006145a3..27195f843a3f 100644 --- a/test/docker/base/run_test_wrapper.sh +++ b/test/docker/base/run_test_wrapper.sh @@ -1,6 +1,12 @@ #!/bin/bash set -e +deluser galaxy | true +groupadd -r galaxy -g "$GALAXY_TEST_UID" +useradd -u $GALAXY_TEST_UID -r -g galaxy -d /home/galaxy -c "Galaxy User" galaxy -s /bin/bash +echo "galaxy:galaxy" | chpasswd +chown -R galaxy:galaxy /galaxy_venv + GALAXY_TEST_DATABASE_TYPE=${GALAXY_TEST_DATABASE_TYPE:-"postgres"} if [ "$GALAXY_TEST_DATABASE_TYPE" = "postgres" ]; then @@ -36,17 +42,19 @@ export TOOL_SHED_CONFIG_OVERRIDE_DATABASE_CONNECTION : ${GALAXY_VIRTUAL_ENV:=.venv} -./scripts/common_startup.sh || { echo "common_startup.sh failed"; exit 1; } +sudo -E -u galaxy ./scripts/common_startup.sh || { echo "common_startup.sh failed"; exit 1; } dev_requirements=./lib/galaxy/dependencies/dev-requirements.txt [ -f $dev_requirements ] && $GALAXY_VIRTUAL_ENV/bin/pip install -r $dev_requirements -sh manage_db.sh upgrade -sh manage_db.sh upgrade tool_shed +echo "Upgrading test database..." +sudo -E -u galaxy sh manage_db.sh upgrade +echo "Upgrading tool shed database... $TOOL_SHED_CONFIG_OVERRIDE_DATABASE_CONNECTION" +sudo -E -u galaxy sh manage_db.sh upgrade tool_shed if [ -z "$GALAXY_NO_TESTS" ]; then - sh run_tests.sh --skip-common-startup $@ + sudo -E -u galaxy sh run_tests.sh --skip-common-startup $@ else GALAXY_CONFIG_MASTER_API_KEY=${GALAXY_CONFIG_MASTER_API_KEY:-"testmasterapikey"} GALAXY_CONFIG_FILE=${GALAXY_CONFIG_FILE:-config/galaxy.ini.sample}