@@ -39,8 +39,6 @@ RUNNER_WORKDIR="${RUNNER_WORKDIR:-}"
3939RUNNER_LABELS=" ${RUNNER_LABELS:- intel} "
4040RUNNER_BOARD=" 2"
4141DISABLE_AUTO_UPDATE=" ${DISABLE_AUTO_UPDATE:- false} "
42- # 普通 runners 的全局资源 ID:可选,设置后普通 runners 会通过 flock 串行执行以避免硬件竞争。多组织部署时推荐设置为相同值(如 "general-runners")
43- RUNNER_RESOURCE_ID_GENERAL=" ${RUNNER_RESOURCE_ID_GENERAL:- } "
4442# 板子级:未设置时用本板默认值(同类型板串行、不同类型板并行);多组织共享同一块板时显式设为相同 ID 即可
4543RUNNER_RESOURCE_ID_PHYTIUMPI=" ${RUNNER_RESOURCE_ID_PHYTIUMPI:- } "
4644RUNNER_RESOURCE_ID_ROC_RK3568_PC=" ${RUNNER_RESOURCE_ID_ROC_RK3568_PC:- } "
@@ -124,7 +122,6 @@ shell_usage() {
124122 printf " %-${KEYW} s %s\n" " RUNNER_NAME_PREFIX" " Container name prefix (default: <hostname>-<org>[-<repo>]-); auto includes ORG/REPO to avoid name conflicts"
125123 printf " %-${KEYW} s %s\n" " RUNNER_IMAGE" " Image used for compose generation (default ghcr.io/actions/actions-runner:latest)"
126124 printf " %-${KEYW} s %s\n" " RUNNER_CUSTOM_IMAGE" " Image tag used for auto-build (can override)"
127- printf " %-${KEYW} s %s\n" " RUNNER_RESOURCE_ID_GENERAL" " Lock ID for generic runners (optional); prevents hardware contention in multi-org deployments"
128125 printf " %-${KEYW} s %s\n" " RUNNER_RESOURCE_ID_PHYTIUMPI" " Lock ID for phytiumpi board (default: board-phytiumpi); same ID = serial across runners"
129126 printf " %-${KEYW} s %s\n" " RUNNER_RESOURCE_ID_ROC_RK3568_PC" " Lock ID for roc-rk3568-pc board (default: board-roc-rk3568-pc); same ID = serial"
130127 printf " %-${KEYW} s %s\n" " RUNNER_LOCK_DIR" " Lock dir in container (default /tmp/github-runner-locks)"
@@ -445,60 +442,52 @@ shell_get_compose_file() {
445442shell_generate_compose_file () {
446443 local general_count=$1
447444 # ════════════════════════════════════════════════════════════════
448- # 第一步:为三种 runner 类型定义资源 ID
445+ # 第一步:为两种板子 runner 类型定义资源 ID
449446 # ════════════════════════════════════════════════════════════════
450447 # 硬件板 phytiumpi - 总是启用文件锁
451448 local res_phytiumpi=" ${RUNNER_RESOURCE_ID_PHYTIUMPI:- } "
452449 # 硬件板 roc - 总是启用文件锁
453450 local res_roc=" ${RUNNER_RESOURCE_ID_ROC_RK3568_PC:- } "
454- # 普通 runners(可选)- 用户可选择启用文件锁,默认不启用(向后兼容)
455- local res_general=" ${RUNNER_RESOURCE_ID_GENERAL:- } "
456451
457452 # ════════════════════════════════════════════════════════════════
458- # 第二步:三种 runner 类型的 entrypoint 配置
453+ # 第二步:两种板子 runner 类型的 entrypoint 配置
459454 # ════════════════════════════════════════════════════════════════
460- # 设计说明:若设置了资源 ID(RUNNER_RESOURCE_ID_*),所有 runner 类型都改用
461- # runner-wrapper.sh 来管理文件锁——包括普通 runners
462- # 默认:所有 runner 类型都使用 /home/runner/run.sh(不经过 runner-wrapper)
455+ # 设计说明:若设置了资源 ID(RUNNER_RESOURCE_ID_*),板子 runner 使用
456+ # runner-wrapper.sh 来管理文件锁
457+ # 普通 runner 始终使用 /home/runner/run.sh(不经过 runner-wrapper)
463458 local runner_entrypoint_phytiumpi=" /home/runner/run.sh"
464459 local runner_entrypoint_roc=" /home/runner/run.sh"
465- local runner_entrypoint_general=" /home/runner/run.sh"
466- # 若设置了资源 ID,则改用 runner-wrapper 来处理文件锁(适用于所有 runner 类型)
460+ # 若设置了资源 ID,则改用 runner-wrapper 来处理文件锁
467461 [[ -n " $res_phytiumpi " ]] && runner_entrypoint_phytiumpi=" /home/runner/runner-wrapper/runner-wrapper.sh"
468462 [[ -n " $res_roc " ]] && runner_entrypoint_roc=" /home/runner/runner-wrapper/runner-wrapper.sh"
469- [[ -n " $res_general " ]] && runner_entrypoint_general=" /home/runner/runner-wrapper/runner-wrapper.sh"
470463
471464 # ════════════════════════════════════════════════════════════════
472- # 第三步:为三种 runner 类型准备额外的环境变量数组
465+ # 第三步:为两种板子 runner 类型准备额外的环境变量数组
473466 # ════════════════════════════════════════════════════════════════
474- # 重复模式说明:以下三部分几乎完全相同 ,都是:
467+ # 重复模式说明:以下两部分几乎完全相同 ,都是:
475468 # 1. 定义空数组:extra_env_X=()
476469 # 2. 如果有资源 ID,则添加三个环境变量:
477470 # - RUNNER_RESOURCE_ID: 用于锁机制
478471 # - RUNNER_SCRIPT: 给 runner-wrapper 使用的脚本路径
479472 # - RUNNER_LOCK_DIR: 容器内锁文件目录
480- # 原因:三种 runner 都可能需要文件锁机制,但都是可选的
473+ # 原因:两种板子 runner 都可能需要文件锁机制
481474 local extra_env_phytiumpi=()
482475 local extra_env_roc=()
483- local extra_env_general=()
484476 # 只有设置了相应的资源 ID,才为该类型 runner 添加锁相关环境变量
485477 [[ -n " $res_phytiumpi " ]] && extra_env_phytiumpi=(" RUNNER_RESOURCE_ID: \" $res_phytiumpi \" " " RUNNER_SCRIPT: \" /home/runner/run.sh\" " " RUNNER_LOCK_DIR: \" ${RUNNER_LOCK_DIR:-/ tmp/ github-runner-locks} \" " )
486478 [[ -n " $res_roc " ]] && extra_env_roc=(" RUNNER_RESOURCE_ID: \" $res_roc \" " " RUNNER_SCRIPT: \" /home/runner/run.sh\" " " RUNNER_LOCK_DIR: \" ${RUNNER_LOCK_DIR:-/ tmp/ github-runner-locks} \" " )
487- [[ -n " $res_general " ]] && extra_env_general=(" RUNNER_RESOURCE_ID: \" $res_general \" " " RUNNER_SCRIPT: \" /home/runner/run.sh\" " " RUNNER_LOCK_DIR: \" ${RUNNER_LOCK_DIR:-/ tmp/ github-runner-locks} \" " )
488479
489480 # ════════════════════════════════════════════════════════════════
490- # 第四步:为三种 runner 类型准备卷挂载配置
481+ # 第四步:为两种板子 runner 类型准备卷挂载配置
491482 # ════════════════════════════════════════════════════════════════
492- # 重复模式说明:以下三部分完全相同 (除变量名),都实现:
483+ # 重复模式说明:以下两部分完全相同 (除变量名),都实现:
493484 # 如果设置了资源 ID,则挂载主机的锁文件目录到容器内
494485 # 原因:文件锁机制需要在主机和容器间共享锁文件
495486 local extra_vol_phytiumpi=" "
496487 local extra_vol_roc=" "
497- local extra_vol_general=" "
498488 # 只有设置了相应的资源 ID,才为该类型 runner 挂载锁文件目录
499489 [[ -n " $res_phytiumpi " ]] && extra_vol_phytiumpi=" - ${RUNNER_LOCK_HOST_PATH:-/ tmp/ github-runner-locks} :${RUNNER_LOCK_DIR:-/ tmp/ github-runner-locks} "
500490 [[ -n " $res_roc " ]] && extra_vol_roc=" - ${RUNNER_LOCK_HOST_PATH:-/ tmp/ github-runner-locks} :${RUNNER_LOCK_DIR:-/ tmp/ github-runner-locks} "
501- [[ -n " $res_general " ]] && extra_vol_general=" - ${RUNNER_LOCK_HOST_PATH:-/ tmp/ github-runner-locks} :${RUNNER_LOCK_DIR:-/ tmp/ github-runner-locks} "
502491
503492 # 使用 printf 输出文件头
504493 printf ' %s\n' \
@@ -533,7 +522,7 @@ shell_generate_compose_file() {
533522 " ${RUNNER_NAME_PREFIX} runner-${i} :" \
534523 " <<: *runner_base" \
535524 " container_name: \" ${RUNNER_NAME_PREFIX} runner-${i} \" " \
536- " command: [\" ${runner_entrypoint_general} \" ]" \
525+ " command: [\" /home/runner/run.sh \" ]" \
537526 " devices:" \
538527 " - /dev/loop-control:/dev/loop-control" \
539528 " - /dev/loop0:/dev/loop0" \
@@ -547,11 +536,9 @@ shell_generate_compose_file() {
547536 " <<: *runner_env" \
548537 " RUNNER_NAME: \" ${RUNNER_NAME_PREFIX} runner-${i} \" " \
549538 " RUNNER_LABELS: \" ${RUNNER_LABELS} \" " \
550- " ${extra_env_general[@]} " \
551539 " volumes:" \
552540 " - ${RUNNER_NAME_PREFIX} runner-${i} -data:/home/runner" \
553541 " - ${RUNNER_NAME_PREFIX} runner-${i} -udev-rules:/etc/udev/rules.d" \
554- " $extra_vol_general " \
555542 " " >> " ${COMPOSE_FILE} "
556543 done
557544
0 commit comments