diff options
Diffstat (limited to 'qa/gdk/launch')
-rwxr-xr-x | qa/gdk/launch | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/qa/gdk/launch b/qa/gdk/launch new file mode 100755 index 00000000000..4b1fc6ae191 --- /dev/null +++ b/qa/gdk/launch @@ -0,0 +1,40 @@ +#!/bin/bash + +COMMIT_REF=${1:-$CI_COMMIT_REF_SLUG} +RSPEC_ARGS=$2 + +if [ -z "${COMMIT_REF}" ]; then + echo "Please provide a commit ref with the code to be tested as the first argument" + exit 1 +fi + +# Set the GitLab license mode to "test" so that GitLab uses the appropriate encryption key +export GITLAB_LICENSE_MODE="test" + +# Create the temporary directory that screenshots are saved to +sudo install -m 777 -d /home/gdk/gdk/gitlab/qa/tmp + +# Update GDK +(cd .. ; gdk update ; cat gdk.yml) + +# Reset, fetch, and checkout the GitLab repository with the code from the ref to be tested +git reset --hard +git fetch origin $COMMIT_REF +git checkout $COMMIT_REF + +# Install the required gems +bundle install --jobs=$(nproc) --retry=3 --quiet + +# Run the database migrations +bundle exec rake db:migrate + +# Restart GDK to be sure any changes are accounted for in running services, start any stopped services, and wait until the GDK is reachable +(cd .. ; gdk restart ; ./support/test_url http://gdk.test:3000) + +# Install the required gems in the QA directory +cd qa +bundle install --jobs=$(nproc) --retry=3 --quiet + +# Run the tests +bundle exec rake "knapsack:download[test]" +bundle exec bin/qa Test::Instance::All http://gdk.test:3000 -- $RSPEC_ARGS || true |