feat: CI/CD pipeline setup complete - Ansible playbooks updated, secrets configured, workflow ready
This commit is contained in:
117
deployment/gitea-runner/register.sh
Executable file
117
deployment/gitea-runner/register.sh
Executable file
@@ -0,0 +1,117 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
# Gitea Actions Runner Registration Script
|
||||
# This script registers the runner with the Gitea instance
|
||||
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
cd "$SCRIPT_DIR"
|
||||
|
||||
# Colors for output
|
||||
RED='\033[0;31m'
|
||||
GREEN='\033[0;32m'
|
||||
YELLOW='\033[1;33m'
|
||||
NC='\033[0m' # No Color
|
||||
|
||||
echo -e "${GREEN}Gitea Actions Runner Registration${NC}"
|
||||
echo "======================================"
|
||||
|
||||
# Check if .env exists
|
||||
if [ ! -f .env ]; then
|
||||
echo -e "${RED}Error: .env file not found${NC}"
|
||||
echo "Please copy .env.example to .env and configure it"
|
||||
echo ""
|
||||
echo " cp .env.example .env"
|
||||
echo " nano .env"
|
||||
echo ""
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Load environment variables
|
||||
set -a
|
||||
source .env
|
||||
set +a
|
||||
|
||||
# Validate required variables
|
||||
if [ -z "${GITEA_INSTANCE_URL:-}" ]; then
|
||||
echo -e "${RED}Error: GITEA_INSTANCE_URL is not set in .env${NC}"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ -z "${GITEA_RUNNER_REGISTRATION_TOKEN:-}" ]; then
|
||||
echo -e "${RED}Error: GITEA_RUNNER_REGISTRATION_TOKEN is not set in .env${NC}"
|
||||
echo ""
|
||||
echo "To get registration token:"
|
||||
echo "1. Go to Gitea: ${GITEA_INSTANCE_URL}/admin/actions/runners"
|
||||
echo "2. Click 'Create New Runner'"
|
||||
echo "3. Copy the registration token"
|
||||
echo "4. Add it to .env file"
|
||||
echo ""
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo -e "${YELLOW}Configuration:${NC}"
|
||||
echo " Gitea URL: ${GITEA_INSTANCE_URL}"
|
||||
echo " Runner Name: ${GITEA_RUNNER_NAME:-dev-runner}"
|
||||
echo " Labels: ${GITEA_RUNNER_LABELS:-ubuntu-latest:docker://node:16-bullseye}"
|
||||
echo ""
|
||||
|
||||
# Check if runner is already registered
|
||||
if [ -f ./data/.runner ]; then
|
||||
echo -e "${YELLOW}Warning: Runner appears to be already registered${NC}"
|
||||
echo "Registration file exists at: ./data/.runner"
|
||||
echo ""
|
||||
read -p "Do you want to re-register? This will unregister the existing runner. (y/N): " -n 1 -r
|
||||
echo ""
|
||||
if [[ ! $REPLY =~ ^[Yy]$ ]]; then
|
||||
echo "Registration cancelled"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
echo "Removing existing registration..."
|
||||
rm -f ./data/.runner
|
||||
fi
|
||||
|
||||
# Create data directory if it doesn't exist
|
||||
mkdir -p ./data
|
||||
|
||||
# Start services
|
||||
echo ""
|
||||
echo -e "${YELLOW}Starting services...${NC}"
|
||||
docker compose up -d
|
||||
|
||||
# Wait for services to be ready
|
||||
echo "Waiting for services to start..."
|
||||
sleep 5
|
||||
|
||||
# Register runner
|
||||
echo ""
|
||||
echo -e "${YELLOW}Registering runner...${NC}"
|
||||
docker compose exec -T gitea-runner act_runner register \
|
||||
--instance "${GITEA_INSTANCE_URL}" \
|
||||
--token "${GITEA_RUNNER_REGISTRATION_TOKEN}" \
|
||||
--name "${GITEA_RUNNER_NAME:-dev-runner}" \
|
||||
--labels "${GITEA_RUNNER_LABELS:-ubuntu-latest:docker://node:16-bullseye}"
|
||||
|
||||
if [ $? -eq 0 ]; then
|
||||
echo ""
|
||||
echo -e "${GREEN}✓ Runner registered successfully!${NC}"
|
||||
echo ""
|
||||
echo "Runner is now active and will start accepting jobs."
|
||||
echo ""
|
||||
echo "Useful commands:"
|
||||
echo " docker compose logs -f gitea-runner # View runner logs"
|
||||
echo " docker compose restart gitea-runner # Restart runner"
|
||||
echo " docker compose down # Stop runner"
|
||||
echo ""
|
||||
echo "Check runner status in Gitea:"
|
||||
echo " ${GITEA_INSTANCE_URL}/admin/actions/runners"
|
||||
echo ""
|
||||
else
|
||||
echo ""
|
||||
echo -e "${RED}✗ Registration failed${NC}"
|
||||
echo "Check the logs for details:"
|
||||
echo " docker compose logs gitea-runner"
|
||||
echo ""
|
||||
exit 1
|
||||
fi
|
||||
Reference in New Issue
Block a user