Fedeproxy-git-ActivityPub-r.../tests/setup-gitlab.sh

94 lines
2.2 KiB
Bash
Executable File

#!/bin/bash
set -ex
function prepare_environment() {
if test $(id -u) != 0 ; then
SUDO=sudo
fi
DATA=$(pwd)/data
mkdir -p $DATA
}
function cleanup() {
local serial=$1
for i in test-gitlab$serial test-postgres$serial test-redis$serial ; do
docker stop $i || true
docker rm $i || true
done
}
function run_redis() {
local serial=$1
docker run --name=test-redis$serial -d sameersbn/redis:latest
}
function run_db() {
local serial=$1
$SUDO rm -fr $DATA/postgres$serial
mkdir -p $DATA/postgres$serial
docker run --name=test-postgres$serial -d \
-e 'DB_NAME=gitlabhq_production' \
-e 'DB_USER=gitlab' \
-e 'DB_PASS=Wrobyak4' \
-e 'DB_EXTENSION=pg_trgm,btree_gist' \
-v $DATA/postgres$serial/data:/var/lib/postgresql \
sameersbn/postgresql:11-20200524
}
function run_gitlab() {
local serial=$1
$SUDO rm -fr $DATA/gitlab$serial
mkdir -p $DATA/gitlab$serial
docker run --name="test-gitlab$serial" -d -it --link test-postgres$serial:postgresql --link test-redis$serial:redisio \
-e OAUTH_BLOCK_AUTO_CREATED_USERS=false \
-e 'GITLAB_SIGNUP=true' \
-e 'GITLAB_PORT=80' \
-e 'GITLAB_HOST=localhost' \
-e "GITLAB_SSH_PORT=222$serial" \
-p 222$serial:22 \
-p 818$serial:80 \
-e GITLAB_SECRETS_SECRET_KEY_BASE=4W44tm7bJFRPWNMVzKngffxVWXRpVs49dxhFwgpx7FbCj3wXCMmsz47LzWsdr7nM \
-e GITLAB_SECRETS_DB_KEY_BASE=4W44tm7bJFRPWNMVzKngffxVWXRpVs49dxhFwgpx7FbCj3wXCMmsz47LzWsdr7nM \
-e GITLAB_SECRETS_OTP_KEY_BASE=4W44tm7bJFRPWNMVzKngffxVWXRpVs49dxhFwgpx7FbCj3wXCMmsz47LzWsdr7nM \
-e GITLAB_ROOT_PASSWORD=Wrobyak4 \
-v $DATA/gitlab$serial/data:/home/git/data \
sameersbn/gitlab
}
function main() {
local action=$1
local serials="1 2"
case $action in
cleanup)
for serial in $serials ; do
cleanup $serial
done
;;
*)
prepare_environment
local serial
for serial in $serials ; do
cleanup $serial
run_redis $serial
run_db $serial
run_gitlab $serial
done
for serial in $serials ; do
while true ; do
test $(curl --silent http://localhost:818$serial -o /dev/null -w "%{http_code}") = 302 && break
sleep 5
done
done
;;
esac
}
main "$@"