refactor(gitea): 简化 runner 命名,恢复默认 Gitea URL
- 修改 runner 默认命名:从 'runner-hostname-mode' 简化为 'hostname' - 批量模式命名:从 'runner-hostname-docker/host' 改为 'hostname-docker/host' - 恢复默认 Gitea URL 配置(https://git.shigongcao.com) - 优化参数验证逻辑,使 GITEA_URL 参数可选 - 保持用户可通过 --name 参数自定义 runner 名称
This commit is contained in:
@@ -46,8 +46,8 @@ curl -s https://git.shigongcao.com/raw/ai/opencode/main/skill/gitea/create-runne
|
||||
gitea-create-runner() {
|
||||
local mode="${1:-docker}"
|
||||
local token="${2:-$GITEA_TOKEN}"
|
||||
local gitea_url="${3}"
|
||||
local name="${4:-runner-$(hostname -s)-$mode}"
|
||||
local gitea_url="${3:-https://git.shigongcao.com}"
|
||||
local name="${4:-$(hostname -s)}"
|
||||
|
||||
echo "创建 $mode runner: $name"
|
||||
|
||||
@@ -62,8 +62,8 @@ set -e
|
||||
# 参数解析
|
||||
MODE="docker"
|
||||
TOKEN=""
|
||||
GITEA_URL=""
|
||||
RUNNER_NAME="runner-$(hostname -s)-docker"
|
||||
GITEA_URL="https://git.shigongcao.com"
|
||||
RUNNER_NAME="$(hostname -s)"
|
||||
ALL_MODE=false
|
||||
|
||||
while [[ $# -gt 0 ]]; do
|
||||
@@ -84,14 +84,9 @@ if [ -z "$TOKEN" ]; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ -z "$GITEA_URL" ]; then
|
||||
echo "❌ 必须提供 --gitea-url 参数"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
create_runner() {
|
||||
local mode=$1
|
||||
local name=$2
|
||||
local name="${2:-$(hostname -s)}"
|
||||
echo "创建 $mode runner: $name"
|
||||
|
||||
if [ "$mode" = "docker" ]; then
|
||||
@@ -225,8 +220,8 @@ YAML
|
||||
}
|
||||
|
||||
if [ "$ALL_MODE" = true ]; then
|
||||
create_runner "docker" "runner-$(hostname -s)-docker"
|
||||
create_runner "host" "runner-$(hostname -s)-host"
|
||||
create_runner "docker" "$(hostname -s)-docker"
|
||||
create_runner "host" "$(hostname -s)-host"
|
||||
else
|
||||
create_runner "$MODE" "$RUNNER_NAME"
|
||||
fi
|
||||
@@ -322,17 +317,17 @@ Gitea Actions Runner 创建脚本
|
||||
--host 创建 Host runner
|
||||
--all 同时创建 Docker 和 Host runner
|
||||
--token TOKEN Gitea 注册令牌 (必需)
|
||||
--gitea-url URL Gitea 实例地址 (必需)
|
||||
--name NAME Runner 名称 (默认: runner-\$(hostname)-模式)
|
||||
--gitea-url URL Gitea 实例地址 (默认: https://git.shigongcao.com)
|
||||
--name NAME Runner 名称 (默认: hostname)
|
||||
--skip-checks 跳过依赖检查
|
||||
--interactive 交互模式 (传统方式)
|
||||
--help 显示此帮助信息
|
||||
|
||||
示例:
|
||||
$0 --docker --token "wibnIxvgeyYj3D7d53VTQvNxv0UVqArBwAtPFBWD" --gitea-url "https://git.shigongcao.com"
|
||||
$0 --docker --token "wibnIxvgeyYj3D7d53VTQvNxv0UVqArBwAtPFBWD"
|
||||
$0 --host --token "your_token" --gitea-url "https://git.example.com"
|
||||
$0 --all --token "your_token" --gitea-url "https://git.shigongcao.com"
|
||||
$0 --all --token "your_token" --gitea-url "https://git.shigongcao.com" --name "custom-runner"
|
||||
$0 --all --token "your_token"
|
||||
$0 --all --token "your_token" --name "custom-runner"
|
||||
|
||||
直接使用技能:
|
||||
# 从技能文档直接执行
|
||||
@@ -359,17 +354,10 @@ while [[ $# -gt 0 ]]; do
|
||||
done
|
||||
|
||||
# 检查必需参数
|
||||
if [ "$INTERACTIVE" = false ]; then
|
||||
if [ -z "$GITEA_TOKEN" ]; then
|
||||
echo "❌ 必须提供 --token 参数"
|
||||
echo "使用 --help 查看帮助"
|
||||
exit 1
|
||||
fi
|
||||
if [ -z "$GITEA_URL" ]; then
|
||||
echo "❌ 必须提供 --gitea-url 参数"
|
||||
echo "使用 --help 查看帮助"
|
||||
exit 1
|
||||
fi
|
||||
if [ -z "$GITEA_TOKEN" ] && [ "$INTERACTIVE" = false ]; then
|
||||
echo "❌ 必须提供 --token 参数"
|
||||
echo "使用 --help 查看帮助"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# ==========================================
|
||||
@@ -407,17 +395,16 @@ if [ -z "$GITEA_URL" ] || [ -z "$GITEA_TOKEN" ]; then
|
||||
fi
|
||||
fi
|
||||
|
||||
# 检查必需参数
|
||||
# 如果仍然缺少 URL,使用默认值
|
||||
if [ -z "$GITEA_URL" ]; then
|
||||
echo "❌ 必须提供 Gitea URL"
|
||||
echo " 使用方法: $0 --token YOUR_TOKEN --gitea-url YOUR_GITEA_URL [其他选项]"
|
||||
echo " 或创建配置文件: $HOME/.config/gitea/config.env"
|
||||
exit 1
|
||||
GITEA_URL="https://git.shigongcao.com"
|
||||
echo "⚠️ 使用默认 Gitea URL: $GITEA_URL"
|
||||
fi
|
||||
|
||||
# 检查必需参数
|
||||
if [ -z "$GITEA_TOKEN" ]; then
|
||||
echo "❌ 必须提供 Gitea 注册令牌"
|
||||
echo " 使用方法: $0 --token YOUR_TOKEN --gitea-url YOUR_GITEA_URL [其他选项]"
|
||||
echo " 使用方法: $0 --token YOUR_TOKEN [其他选项]"
|
||||
echo " 或创建配置文件: $HOME/.config/gitea/config.env"
|
||||
exit 1
|
||||
fi
|
||||
@@ -438,7 +425,118 @@ if [ -z "$RUNNER_NAME" ]; then
|
||||
# 批量模式会创建两个runner
|
||||
echo "批量模式:将创建 docker 和 host runner"
|
||||
else
|
||||
RUNNER_NAME="runner-$hostname-$RUNNER_MODE"
|
||||
RUNNER_NAME="$hostname"
|
||||
echo "生成 Runner 名称: $RUNNER_NAME"
|
||||
fi
|
||||
else
|
||||
echo "使用指定的 Runner 名称: $RUNNER_NAME"
|
||||
fi
|
||||
|
||||
# 检查名称有效性(如果不是批量模式)
|
||||
if [ "$ALL_MODE" = false ] && [[ ! "$RUNNER_NAME" =~ ^[a-zA-Z0-9_-]+$ ]]; then
|
||||
echo "❌ Runner 名称无效 (仅限字母、数字、下划线、连字符)"
|
||||
exit 1
|
||||
fi
|
||||
echo ""
|
||||
read -p "请输入选项 [1/2] (默认 1): " mode_choice
|
||||
|
||||
if [ "$mode_choice" = "2" ]; then
|
||||
RUNNER_MODE="docker"
|
||||
echo "✅ 已选择: Docker Mode"
|
||||
else
|
||||
RUNNER_MODE="host"
|
||||
echo "✅ 已选择: Host Mode"
|
||||
fi
|
||||
echo ""
|
||||
fi
|
||||
|
||||
# Check dependencies based on mode
|
||||
if [ "$RUNNER_MODE" = "host" ]; then
|
||||
echo "检查 act_runner 安装状态..."
|
||||
if command -v act_runner &> /dev/null; then
|
||||
version=$(act_runner --version 2>&1 | head -n1)
|
||||
echo "✓ act_runner 已安装: $version"
|
||||
else
|
||||
echo "⚠️ act_runner 未安装"
|
||||
echo "正在使用 Homebrew 安装..."
|
||||
if ! command -v brew &> /dev/null; then
|
||||
echo "❌ 需要先安装 Homebrew"
|
||||
exit 1
|
||||
fi
|
||||
brew install act_runner
|
||||
if [ $? -eq 0 ]; then
|
||||
echo "✓ act_runner 安装成功"
|
||||
else
|
||||
echo "❌ act_runner 安装失败"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
else
|
||||
# Docker mode checks
|
||||
echo "检查 Docker 环境..."
|
||||
if command -v docker &> /dev/null; then
|
||||
if docker info &> /dev/null; then
|
||||
docker_ver=$(docker --version)
|
||||
echo "✓ Docker 已安装并运行: $docker_ver"
|
||||
else
|
||||
echo "❌ Docker 已安装但未运行"
|
||||
echo " 请启动 Docker Desktop"
|
||||
exit 1
|
||||
fi
|
||||
else
|
||||
echo "❌ Docker 未安装"
|
||||
echo " Docker 模式需要预先安装 Docker"
|
||||
echo " 请访问 https://www.docker.com/products/docker-desktop/ 下载安装"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
echo ""
|
||||
|
||||
# ==========================================
|
||||
# 3. Load Gitea Configuration
|
||||
# ==========================================
|
||||
|
||||
# 如果未通过命令行提供,尝试从配置文件加载
|
||||
if [ -z "$GITEA_URL" ] || [ -z "$GITEA_TOKEN" ]; then
|
||||
config_file="$HOME/.config/gitea/config.env"
|
||||
|
||||
if [ -f "$config_file" ]; then
|
||||
echo "从配置文件加载 Gitea 配置..."
|
||||
source "$config_file"
|
||||
fi
|
||||
fi
|
||||
|
||||
# 如果仍然缺少 URL,使用默认值
|
||||
if [ -z "$GITEA_URL" ]; then
|
||||
GITEA_URL="https://git.shigongcao.com"
|
||||
echo "⚠️ 使用默认 Gitea URL: $GITEA_URL"
|
||||
fi
|
||||
|
||||
# 检查必需参数
|
||||
if [ -z "$GITEA_TOKEN" ]; then
|
||||
echo "❌ 必须提供 Gitea 注册令牌"
|
||||
echo " 使用方法: $0 --token YOUR_TOKEN [其他选项]"
|
||||
echo " 或创建配置文件: $HOME/.config/gitea/config.env"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "✓ Gitea 配置:"
|
||||
echo " URL: $GITEA_URL"
|
||||
echo " Token: ${GITEA_TOKEN:0:8}..."
|
||||
echo ""
|
||||
|
||||
# ==========================================
|
||||
# 4. Generate Runner Name
|
||||
# ==========================================
|
||||
|
||||
# 如果未指定名称,生成默认名称
|
||||
if [ -z "$RUNNER_NAME" ]; then
|
||||
hostname=$(hostname -s 2>/dev/null || echo "unknown")
|
||||
if [ "$ALL_MODE" = true ]; then
|
||||
# 批量模式会创建两个runner
|
||||
echo "批量模式:将创建 docker 和 host runner"
|
||||
else
|
||||
RUNNER_NAME="$hostname"
|
||||
echo "生成 Runner 名称: $RUNNER_NAME"
|
||||
fi
|
||||
else
|
||||
@@ -728,8 +826,8 @@ if [ "$ALL_MODE" = true ]; then
|
||||
host_name="${RUNNER_NAME}-host"
|
||||
else
|
||||
# 使用默认名称
|
||||
docker_name="runner-${hostname}-docker"
|
||||
host_name="runner-${hostname}-host"
|
||||
docker_name="${hostname}-docker"
|
||||
host_name="${hostname}-host"
|
||||
fi
|
||||
|
||||
echo "批量创建模式:"
|
||||
|
||||
Reference in New Issue
Block a user