summaryrefslogtreecommitdiff
path: root/tools/build_test_env.sh
diff options
context:
space:
mode:
Diffstat (limited to 'tools/build_test_env.sh')
-rwxr-xr-xtools/build_test_env.sh158
1 files changed, 0 insertions, 158 deletions
diff --git a/tools/build_test_env.sh b/tools/build_test_env.sh
deleted file mode 100755
index a7b64b6..0000000
--- a/tools/build_test_env.sh
+++ /dev/null
@@ -1,158 +0,0 @@
-#!/bin/sh
-# Copyright (C) 2016 Gauvain Pocentek <gauvain@pocentek.net>
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
-
-pecho() { printf %s\\n "$*"; }
-log() {
- [ "$#" -eq 0 ] || { pecho "$@"; return 0; }
- while IFS= read -r log_line || [ -n "${log_line}" ]; do
- log "${log_line}"
- done
-}
-error() { log "ERROR: $@" >&2; }
-fatal() { error "$@"; exit 1; }
-try() { "$@" || fatal "'$@' failed"; }
-
-REUSE_CONTAINER=
-NOVENV=
-API_VER=4
-DEFAULT_GITLAB_IMAGE=gitlab/gitlab-ce
-DEFAULT_GITLAB_TAG=13.3.6-ce.0
-GITLAB_IMAGE="${GITLAB_IMAGE:-$DEFAULT_GITLAB_IMAGE}"
-GITLAB_TAG="${GITLAB_TAG:-$DEFAULT_GITLAB_TAG}"
-VENV_CMD="python3 -m venv"
-while getopts :knp:a:i:t: opt "$@"; do
- case $opt in
- k) REUSE_CONTAINER=1;;
- n) NOVENV=1;;
- a) API_VER=$OPTARG;;
- i) GITLAB_IMAGE=$OPTARG;;
- t) GITLAB_TAG=$OPTARG;;
- :) fatal "Option -${OPTARG} requires a value";;
- '?') fatal "Unknown option: -${OPTARG}";;
- *) fatal "Internal error: opt=${opt}";;
- esac
-done
-
-case $API_VER in
- 4) ;;
- *) fatal "Wrong API version (4 only)";;
-esac
-
-for req in \
- curl \
- docker \
- ;
-do
- command -v "${req}" >/dev/null 2>&1 || fatal "${req} is required"
-done
-
-VENV=$(pwd)/.venv || exit 1
-CONFIG=/tmp/python-gitlab.cfg
-
-cleanup() {
- rm -f "${CONFIG}"
- log "Deactivating Python virtualenv..."
- command -v deactivate >/dev/null 2>&1 && deactivate || true
- log "Deleting python virtualenv..."
- rm -rf "$VENV"
- if [ -z "$REUSE_CONTAINER" ]; then
- log "Stopping gitlab-test docker container..."
- docker rm -f gitlab-test >/dev/null
- fi
- log "Done."
-}
-[ -z "${BUILD_TEST_ENV_AUTO_CLEANUP+set}" ] || {
- trap cleanup EXIT
- trap 'exit 1' HUP INT TERM
-}
-
-if [ -z "$REUSE_CONTAINER" ] || ! docker top gitlab-test >/dev/null 2>&1; then
- try docker pull "$GITLAB_IMAGE:$GITLAB_TAG"
- GITLAB_OMNIBUS_CONFIG="external_url 'http://gitlab.test'
-gitlab_rails['initial_root_password'] = '5iveL!fe'
-gitlab_rails['initial_shared_runners_registration_token'] = 'sTPNtWLEuSrHzoHP8oCU'
-registry['enable'] = false
-nginx['redirect_http_to_https'] = false
-nginx['listen_port'] = 80
-nginx['listen_https'] = false
-pages_external_url 'http://pages.gitlab.lxd'
-gitlab_pages['enable'] = true
-gitlab_pages['inplace_chroot'] = true
-prometheus['enable'] = false
-alertmanager['enable'] = false
-node_exporter['enable'] = false
-redis_exporter['enable'] = false
-postgres_exporter['enable'] = false
-pgbouncer_exporter['enable'] = false
-gitlab_exporter['enable'] = false
-grafana['enable'] = false
-letsencrypt['enable'] = false
-"
- try docker run --name gitlab-test --detach --publish 8080:80 \
- --publish 2222:22 --env "GITLAB_OMNIBUS_CONFIG=$GITLAB_OMNIBUS_CONFIG" \
- "$GITLAB_IMAGE:$GITLAB_TAG" >/dev/null
-fi
-
-if [ -z "$NOVENV" ]; then
- log "Creating Python virtualenv..."
- try $VENV_CMD "$VENV"
- . "$VENV"/bin/activate || fatal "failed to activate Python virtual environment"
-
- log "Installing dependencies into virtualenv..."
- try pip install -r requirements.txt
-
- log "Installing into virtualenv..."
- try pip install -e .
-
- # to run generate_token.py
- pip install requests-html pytest-console-scripts
-fi
-
-log "Waiting for gitlab to come online... "
-I=0
-while :; do
- sleep 1
- docker top gitlab-test >/dev/null 2>&1 || fatal "docker failed to start"
- sleep 4
- docker logs gitlab-test 2>&1 | grep "gitlab Reconfigured!" \
- && break
- I=$((I+5))
- log "Waiting for GitLab to reconfigure.. (${I}s)"
- [ "$I" -lt 180 ] || fatal "timed out"
-done
-
-# Get the token
-TOKEN=$($(dirname $0)/generate_token.py)
-
-cat > $CONFIG << EOF
-[global]
-default = local
-timeout = 30
-
-[local]
-url = http://localhost:8080
-private_token = $TOKEN
-api_version = $API_VER
-EOF
-
-log "Config file content ($CONFIG):"
-log <$CONFIG
-
-if [ ! -z "$REUSE_CONTAINER" ]; then
- echo reset gitlab
- $(dirname $0)/reset_gitlab.py
-fi
-log "Test environment initialized."