2023-04-23 21:23:45 +05:30
|
|
|
#!/bin/bash
|
|
|
|
|
2023-06-20 00:43:36 +05:30
|
|
|
COMMIT_REF=${1:-$CI_COMMIT_SHA}
|
2023-04-23 21:23:45 +05:30
|
|
|
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
|