mirror of
https://github.com/gabrie30/ghorg.git
synced 2025-09-21 21:51:14 +02:00
87 lines
2.8 KiB
Bash
Executable File
87 lines
2.8 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
set -euo pipefail
|
|
|
|
# Refactored GitLab EE integration test script
|
|
# Usage: ./start-ee.sh [STOP_GITLAB_WHEN_FINISHED] [PERSIST_GITLAB_LOCALLY] [GITLAB_IMAGE_TAG] [GITLAB_HOME] [GITLAB_HOST] [GITLAB_URL] [LOCAL_GITLAB_GHORG_DIR]
|
|
|
|
STOP_GITLAB_WHEN_FINISHED=${1:-'true'}
|
|
PERSIST_GITLAB_LOCALLY=${2:-'false'}
|
|
GITLAB_IMAGE_TAG=${3:-'latest'}
|
|
GITLAB_HOME=${4:-"$HOME/ghorg/local-gitlab-ee-data-${GITLAB_IMAGE_TAG}"}
|
|
GITLAB_HOST=${5:-'gitlab.example.com'}
|
|
GITLAB_URL=${6:-'http://gitlab.example.com'}
|
|
LOCAL_GITLAB_GHORG_DIR=${7:-"${HOME}/ghorg"}
|
|
API_TOKEN="password"
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
|
|
echo "=== GitLab EE Integration Test (Refactored) ==="
|
|
echo "Stop when finished: ${STOP_GITLAB_WHEN_FINISHED}"
|
|
echo "Persist locally: ${PERSIST_GITLAB_LOCALLY}"
|
|
echo "GitLab tag: ${GITLAB_IMAGE_TAG}"
|
|
echo "GitLab home: ${GITLAB_HOME}"
|
|
echo "GitLab host: ${GITLAB_HOST}"
|
|
echo "GitLab URL: ${GITLAB_URL}"
|
|
echo "Ghorg dir: ${LOCAL_GITLAB_GHORG_DIR}"
|
|
|
|
if [ "${ENV:-}" == "ci" ];then
|
|
echo "127.0.0.1 gitlab.example.com" >> /etc/hosts
|
|
fi
|
|
|
|
echo "Stopping and removing any existing GitLab containers..."
|
|
docker rm gitlab --force --volumes || true
|
|
|
|
echo "Cleaning up old data..."
|
|
rm -rf "$HOME/ghorg/local-gitlab-*" || true
|
|
|
|
echo ""
|
|
echo "To follow gitlab container logs use the following command in a new window:"
|
|
echo "$ docker logs -f gitlab"
|
|
echo ""
|
|
|
|
echo "=== Starting GitLab Container ==="
|
|
"${SCRIPT_DIR}/run-ee.sh" "${GITLAB_IMAGE_TAG}" "${GITLAB_HOME}" "${GITLAB_HOST}" "${PERSIST_GITLAB_LOCALLY}"
|
|
if [ $? -ne 0 ]; then
|
|
echo "Failed to start GitLab container"
|
|
exit 1
|
|
fi
|
|
|
|
echo "=== Waiting for GitLab to be Ready and Getting Credentials ==="
|
|
"${SCRIPT_DIR}/get_credentials.sh" "${GITLAB_URL}" "${LOCAL_GITLAB_GHORG_DIR}"
|
|
if [ $? -ne 0 ]; then
|
|
echo "Failed to get GitLab credentials"
|
|
exit 1
|
|
fi
|
|
|
|
echo "=== Seeding GitLab Instance (Using Go Seeder) ==="
|
|
"${SCRIPT_DIR}/seed.sh" "${API_TOKEN}" "${GITLAB_URL}" "${LOCAL_GITLAB_GHORG_DIR}"
|
|
if [ $? -ne 0 ]; then
|
|
echo "Failed to seed GitLab instance"
|
|
exit 1
|
|
fi
|
|
|
|
echo "=== Running Integration Tests (Using Go Test Runner) ==="
|
|
"${SCRIPT_DIR}/integration-tests.sh" "${LOCAL_GITLAB_GHORG_DIR}" "${API_TOKEN}" "${GITLAB_URL}"
|
|
if [ $? -ne 0 ]; then
|
|
echo "Integration tests failed"
|
|
if [ "${STOP_GITLAB_WHEN_FINISHED}" == "true" ];then
|
|
docker rm gitlab --force --volumes
|
|
fi
|
|
exit 1
|
|
fi
|
|
|
|
echo "=== Integration Tests Completed Successfully ==="
|
|
|
|
if [ "${STOP_GITLAB_WHEN_FINISHED}" == "true" ];then
|
|
echo "Stopping and removing GitLab container..."
|
|
docker rm gitlab --force --volumes
|
|
echo "GitLab container stopped and removed"
|
|
else
|
|
echo "GitLab container is still running. You can access it at: ${GITLAB_URL}"
|
|
echo "To stop it manually, run: docker stop gitlab && docker rm gitlab"
|
|
fi
|
|
|
|
echo ""
|
|
echo "🎉 GitLab EE integration tests completed successfully!"
|