mirror of
https://github.com/Memo-2023/mana-monorepo.git
synced 2026-05-14 19:41:09 +02:00
49 lines
1.7 KiB
Bash
Executable file
49 lines
1.7 KiB
Bash
Executable file
#!/bin/bash
|
|
# Register Forgejo Runner on Mac Mini
|
|
# Run after Forgejo is up and admin user exists
|
|
set -e
|
|
|
|
DOCKER="${DOCKER_CMD:-/usr/local/bin/docker}"
|
|
FORGEJO_URL="http://localhost:3041"
|
|
FORGEJO_PUBLIC_URL="https://git.mana.how"
|
|
|
|
# Step 1: Get runner registration token from Forgejo API
|
|
echo "=== Getting runner registration token ==="
|
|
API_TOKEN=$(cat /Volumes/ManaData/forgejo-api-token 2>/dev/null || echo "")
|
|
if [ -z "$API_TOKEN" ]; then
|
|
echo "No API token found. Generate one:"
|
|
echo " $DOCKER exec --user git mana-core-forgejo forgejo admin user generate-access-token --username till --token-name runner-setup --scopes all"
|
|
echo " Save to: /Volumes/ManaData/forgejo-api-token"
|
|
exit 1
|
|
fi
|
|
|
|
RUNNER_TOKEN=$(curl -s -X POST "$FORGEJO_URL/api/v1/user/actions/runners/registration-token" \
|
|
-H "Authorization: token $API_TOKEN" | python3 -c "import sys,json; print(json.load(sys.stdin)['token'])")
|
|
|
|
echo "Runner token: $RUNNER_TOKEN"
|
|
|
|
# Step 2: Start runner container
|
|
echo ""
|
|
echo "=== Starting Forgejo Runner ==="
|
|
$DOCKER compose -f docker-compose.macmini.yml up -d forgejo-runner
|
|
|
|
# Step 3: Register runner
|
|
echo ""
|
|
echo "=== Registering runner ==="
|
|
sleep 5
|
|
|
|
$DOCKER exec mana-core-forgejo-runner forgejo-runner register \
|
|
--instance "$FORGEJO_PUBLIC_URL" \
|
|
--token "$RUNNER_TOKEN" \
|
|
--name "mac-mini" \
|
|
--labels "ubuntu-latest:docker://node:20,go:docker://golang:1.25-alpine,docker:docker://docker:dind" \
|
|
--no-interactive
|
|
|
|
# Step 4: Start runner daemon
|
|
echo ""
|
|
echo "=== Starting runner daemon ==="
|
|
$DOCKER restart mana-core-forgejo-runner
|
|
|
|
echo ""
|
|
echo "=== Runner registered and started ==="
|
|
echo "Check status: $FORGEJO_PUBLIC_URL/-/admin/runners"
|