mirror of
https://github.com/casjaysdevdocker/gitea
synced 2025-09-18 21:57:42 -04:00
🗃️ Committing everything that changed 🗃️
Some checks failed
release-tag / release-image (push) Failing after 11m59s
Some checks failed
release-tag / release-image (push) Failing after 11m59s
rootfs/root/docker/setup/06-post.sh rootfs/usr/local/bin/start-runners rootfs/usr/local/etc/docker/init.d/05-dockerd.sh rootfs/usr/local/etc/docker/init.d/zz-act_runner.sh
This commit is contained in:
@@ -27,7 +27,7 @@ exitCode=0
|
|||||||
|
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
# Main script
|
# Main script
|
||||||
|
mkdir -p /var/lib/docker
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
# Set the exit code
|
# Set the exit code
|
||||||
exitCode=$?
|
exitCode=$?
|
||||||
|
@@ -1,23 +1,21 @@
|
|||||||
#!/bin/bash
|
#!/usr/bin/env bash
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
set -e
|
set -e
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
# Function to log messages with timestamp
|
# Function to __log messages with timestamp
|
||||||
log() {
|
__log() { echo "[$(date '+%Y-%m-%d %H:%M:%S')] $1"; }
|
||||||
echo "[$(date '+%Y-%m-%d %H:%M:%S')] $1"
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
}
|
|
||||||
|
|
||||||
# Function to cleanup child processes on exit
|
# Function to cleanup child processes on exit
|
||||||
cleanup() {
|
__cleanup() {
|
||||||
log "Shutting down runners..."
|
__log "Shutting down runners..."
|
||||||
kill $(jobs -p) 2>/dev/null || true
|
kill $(jobs -p) 2>/dev/null || true
|
||||||
wait
|
wait
|
||||||
log "All runners stopped"
|
__log "All runners stopped"
|
||||||
}
|
}
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
# Set up signal handling
|
# Set up signal handling
|
||||||
trap cleanup SIGTERM SIGINT
|
trap __cleanup SIGTERM SIGINT
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
# Validate required environment variables
|
# Validate required environment variables
|
||||||
if [ -n "$SERVER_ADDRESS" ]; then
|
if [ -n "$SERVER_ADDRESS" ]; then
|
||||||
if ! echo "$SERVER_ADDRESS" | grep -q '://'; then
|
if ! echo "$SERVER_ADDRESS" | grep -q '://'; then
|
||||||
@@ -26,65 +24,58 @@ if [ -n "$SERVER_ADDRESS" ]; then
|
|||||||
else
|
else
|
||||||
SERVER_ADDRESS=http://$HOSTNAME
|
SERVER_ADDRESS=http://$HOSTNAME
|
||||||
fi
|
fi
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
if [ -z "$SERVER_TOKEN" ]; then
|
if [ -z "$SERVER_TOKEN" ]; then
|
||||||
log "ERROR: SERVER_TOKEN environment variable is required"
|
__log "ERROR: SERVER_TOKEN environment variable is required"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
RUNNER_LABELS="${RUNNER_LABELS:-ubuntu-latest:docker://node:16-bullseye,ubuntu-22.04:docker://node:16-bullseye}"
|
RUNNER_LABELS="${RUNNER_LABELS:-ubuntu-latest:docker://node:16-bullseye,ubuntu-22.04:docker://node:16-bullseye}"
|
||||||
# Determine number of runners to start
|
# Determine number of runners to start
|
||||||
RUNNERS_COUNT=${RUNNERS_ENABLE:-1}
|
RUNNERS_COUNT=${RUNNERS_ENABLE:-1}
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
# Validate RUNNERS_COUNT is a positive integer
|
# Validate RUNNERS_COUNT is a positive integer
|
||||||
if ! [[ "$RUNNERS_COUNT" =~ ^[0-9]+$ ]] || [ "$RUNNERS_COUNT" -lt 1 ]; then
|
if ! [[ "$RUNNERS_COUNT" =~ ^[0-9]+$ ]] || [ "$RUNNERS_COUNT" -lt 1 ]; then
|
||||||
log "WARNING: Invalid RUNNERS_ENABLE value '$RUNNERS_ENABLE', defaulting to 1"
|
__log "WARNING: Invalid RUNNERS_ENABLE value '$RUNNERS_ENABLE', defaulting to 1"
|
||||||
RUNNERS_COUNT=1
|
RUNNERS_COUNT=1
|
||||||
fi
|
fi
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
log "Starting $RUNNERS_COUNT act_runner instance(s)"
|
__log "Starting $RUNNERS_COUNT act_runner instance(s)"
|
||||||
log "Server Address: $SERVER_ADDRESS"
|
__log "Server Address: $SERVER_ADDRESS"
|
||||||
log "Runner Name Prefix: ${RUNNER_NAME_PREFIX:-runner}"
|
__log "Runner Name Prefix: ${RUNNER_NAME_PREFIX:-runner}"
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
# Function to start a single runner
|
# Function to start a single runner
|
||||||
start_runner() {
|
__start_runner() {
|
||||||
local runner_id=$1
|
local runner_id=$1
|
||||||
local runner_name="${RUNNER_NAME_PREFIX:-runner}-${runner_id}"
|
local runner_name="${RUNNER_NAME_PREFIX:-runner}-${runner_id}"
|
||||||
local runner_dir="/data/runner-${runner_id}"
|
local runner_dir="/config/act_runner/reg/${runner_name}"
|
||||||
|
|
||||||
# Create runner directory
|
# Create runner directory
|
||||||
mkdir -p "$runner_dir"
|
mkdir -p "$runner_dir"
|
||||||
cd "$runner_dir"
|
cd "$runner_dir"
|
||||||
|
__log "Starting runner: $runner_name (ID: $runner_id)"
|
||||||
log "Starting runner: $runner_name (ID: $runner_id)"
|
|
||||||
|
|
||||||
# Register the runner (this creates the .runner file)
|
# Register the runner (this creates the .runner file)
|
||||||
log "Registering runner: $runner_name"
|
__log "Registering runner: $runner_name"
|
||||||
act_runner register \
|
act_runner register --instance "$SERVER_ADDRESS" --token "$SERVER_TOKEN" --name "$runner_name" --labels "$RUNNER_LABELS" --no-interactive
|
||||||
--instance "$SERVER_ADDRESS" \
|
|
||||||
--token "$SERVER_TOKEN" \
|
|
||||||
--name "$runner_name" \
|
|
||||||
--labels "$RUNNER_LABELS" \
|
|
||||||
--no-interactive
|
|
||||||
|
|
||||||
if [ $? -ne 0 ]; then
|
if [ $? -ne 0 ]; then
|
||||||
log "ERROR: Failed to register runner $runner_name"
|
__log "ERROR: Failed to register runner $runner_name"
|
||||||
return 1
|
return 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Start the daemon
|
# Start the daemon
|
||||||
log "Starting daemon for runner: $runner_name"
|
__log "Starting daemon for runner: $runner_name"
|
||||||
exec act_runner daemon --config .runner
|
exec act_runner daemon --config .runner
|
||||||
}
|
}
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
# Start runners in background
|
# Start runners in background
|
||||||
for i in $(seq 1 $RUNNERS_COUNT); do
|
for i in $(seq 1 $RUNNERS_COUNT); do
|
||||||
(start_runner $i) &
|
(__start_runner $i) &
|
||||||
sleep 2 # Small delay between starting runners
|
sleep 2 # Small delay between starting runners
|
||||||
done
|
done
|
||||||
|
unset i
|
||||||
log "All $RUNNERS_COUNT runners started successfully"
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
log "Process IDs: $(jobs -p | tr '\n' ' ')"
|
__log "All $RUNNERS_COUNT runners started successfully"
|
||||||
|
__log "Process IDs: $(jobs -p | tr '\n' ' ')"
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
# Wait for all background processes
|
# Wait for all background processes
|
||||||
wait
|
wait
|
||||||
|
@@ -188,6 +188,7 @@ __run_pre_execute_checks() {
|
|||||||
# Put command to execute in parentheses
|
# Put command to execute in parentheses
|
||||||
{
|
{
|
||||||
[ -d "/etc/docker" ] || mkdir -p "/etc/docker"
|
[ -d "/etc/docker" ] || mkdir -p "/etc/docker"
|
||||||
|
[ -d "/data/docker" ] || mkdir -p "/data/docker"
|
||||||
[ -d "/config/docker" ] || mkdir -p "/config/docker"
|
[ -d "/config/docker" ] || mkdir -p "/config/docker"
|
||||||
[ -L "/config/docker/daemon.json" ] && unlink "/config/docker/daemon.json"
|
[ -L "/config/docker/daemon.json" ] && unlink "/config/docker/daemon.json"
|
||||||
if [ -n "$DOCKER_REGISTRIES" ]; then
|
if [ -n "$DOCKER_REGISTRIES" ]; then
|
||||||
|
@@ -362,7 +362,7 @@ __post_execute() {
|
|||||||
local postMessageST="Running post commands for $SERVICE_NAME" # message to show at start
|
local postMessageST="Running post commands for $SERVICE_NAME" # message to show at start
|
||||||
local postMessageEnd="Finished post commands for $SERVICE_NAME" # message to show at completion
|
local postMessageEnd="Finished post commands for $SERVICE_NAME" # message to show at completion
|
||||||
local sysname="${SERVER_NAME:-${FULL_DOMAIN_NAME:-$HOSTNAME}}" # set hostname
|
local sysname="${SERVER_NAME:-${FULL_DOMAIN_NAME:-$HOSTNAME}}" # set hostname
|
||||||
export SERVER_ADDRESS="$INSTANCE_HOSTNAME" SERVER_TOKEN="${RUNNER_AUTH_TOKEN:-$SYS_AUTH_TOKEN}" RUNNERS_ENABLE="${RUNNERS_START:-5}" RUNNER_LABELS
|
export SERVER_ADDRESS="$RUNNER_IP_ADDRESS:$GITEA_PORT" SERVER_TOKEN="${RUNNER_AUTH_TOKEN:-$SYS_AUTH_TOKEN}" RUNNERS_ENABLE="${RUNNERS_START:-5}" RUNNER_LABELS
|
||||||
# wait
|
# wait
|
||||||
sleep $waitTime
|
sleep $waitTime
|
||||||
# execute commands
|
# execute commands
|
||||||
|
Reference in New Issue
Block a user