mirror of
https://github.com/gabrie30/ghorg.git
synced 2025-09-21 13:41:11 +02:00
Introduce scripts, configs, and Go tools for local Gitea integration testing. Includes workflow for GitHub Actions, seeding and test scenario configuration, runner and seeder binaries, and supporting shell scripts. Updates .gitignore to exclude Gitea test binaries.
74 lines
2.4 KiB
Bash
Executable File
74 lines
2.4 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
set -euo pipefail
|
|
|
|
# Go-based seeding script for Gitea
|
|
# Usage: ./seed.sh [API_TOKEN] [GITEA_URL] [LOCAL_GITEA_GHORG_DIR]
|
|
|
|
LOCAL_GITEA_GHORG_DIR=${3:-"${HOME}/ghorg"}
|
|
API_TOKEN=${1:-$(cat "${LOCAL_GITEA_GHORG_DIR}/gitea_token" 2>/dev/null || echo "test-token")}
|
|
GITEA_URL=${2:-"http://gitea.example.com:3000"}
|
|
|
|
# Also read username and password for fallback authentication
|
|
ADMIN_USERNAME=$(cat "${LOCAL_GITEA_GHORG_DIR}/gitea_username" 2>/dev/null || echo "testuser")
|
|
ADMIN_PASSWORD=$(cat "${LOCAL_GITEA_GHORG_DIR}/gitea_password" 2>/dev/null || echo "testpass")
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
SEEDER_DIR="${SCRIPT_DIR}/seeder"
|
|
CONFIG_PATH="${SCRIPT_DIR}/configs/seed-data.json"
|
|
|
|
echo "Starting Gitea seeding with Go-based seeder..."
|
|
echo "Gitea URL: ${GITEA_URL}"
|
|
echo "Ghorg Dir: ${LOCAL_GITEA_GHORG_DIR}"
|
|
echo "Config: ${CONFIG_PATH}"
|
|
|
|
# Build the seeder if it doesn't exist or if source files are newer
|
|
SEEDER_BINARY="${SEEDER_DIR}/gitea-seeder"
|
|
|
|
# Force rebuild in CI environments or if binary doesn't exist or is newer
|
|
FORCE_BUILD=false
|
|
if [[ "${CI:-}" == "true" ]] || [[ "${GITHUB_ACTIONS:-}" == "true" ]]; then
|
|
echo "CI environment detected - forcing clean build of seeder..."
|
|
FORCE_BUILD=true
|
|
fi
|
|
|
|
if [[ ! -f "${SEEDER_BINARY}" ]] || [[ "${SEEDER_DIR}/main.go" -nt "${SEEDER_BINARY}" ]] || [[ "${FORCE_BUILD}" == "true" ]]; then
|
|
echo "Building Gitea seeder..."
|
|
cd "${SEEDER_DIR}"
|
|
|
|
# Remove existing binary to ensure clean build
|
|
rm -f gitea-seeder
|
|
|
|
go mod download
|
|
go build -o gitea-seeder main.go
|
|
|
|
# Verify binary was created and is executable
|
|
if [[ ! -f "gitea-seeder" ]]; then
|
|
echo "Error: Failed to build gitea-seeder binary"
|
|
exit 1
|
|
fi
|
|
|
|
chmod +x gitea-seeder
|
|
cd -
|
|
fi
|
|
|
|
# Run the seeder
|
|
echo "Seeding Gitea instance..."
|
|
echo "Using admin credentials: ${ADMIN_USERNAME}:${ADMIN_PASSWORD}"
|
|
echo "Using API token: ${API_TOKEN}"
|
|
|
|
"${SEEDER_BINARY}" \
|
|
-token="${API_TOKEN}" \
|
|
-username="${ADMIN_USERNAME}" \
|
|
-password="${ADMIN_PASSWORD}" \
|
|
-base-url="${GITEA_URL}" \
|
|
-config="${CONFIG_PATH}"
|
|
|
|
if [[ $? -eq 0 ]]; then
|
|
echo "Gitea seeding completed successfully!"
|
|
else
|
|
echo "Gitea seeding encountered some issues, but may have partially succeeded"
|
|
echo "Check the logs above for details"
|
|
# Don't exit with error since partial success is acceptable for testing
|
|
fi
|