From 40fa747a941cffe87239eca31391545a0d330984 Mon Sep 17 00:00:00 2001 From: csh Date: Fri, 22 May 2026 13:19:09 +0800 Subject: [PATCH] :wrench: chore(runner): allow preset identity overrides via env --- .../presets/buildx-archlinux/.env.example | 2 ++ .../buildx-archlinux/docker-compose.yml | 4 +-- .../presets/buildx-ubuntu-22/.env.example | 2 ++ .../buildx-ubuntu-22/docker-compose.yml | 4 +-- .../presets/standard-ubuntu-22/.env.example | 2 ++ .../standard-ubuntu-22/docker-compose.yml | 4 +-- tests/template_defaults_test.sh | 26 +++++++++++++++++++ 7 files changed, 38 insertions(+), 6 deletions(-) diff --git a/docker-runner/presets/buildx-archlinux/.env.example b/docker-runner/presets/buildx-archlinux/.env.example index 6d57191..a986776 100644 --- a/docker-runner/presets/buildx-archlinux/.env.example +++ b/docker-runner/presets/buildx-archlinux/.env.example @@ -1,2 +1,4 @@ GITEA_INSTANCE=https://git.mytsl.cn GITEA_TOKEN= +DEFAULT_RUNNER_NAME=buildx-archlinux +DEFAULT_RUNNER_LABEL=archlinux:host://archlinux:latest,company-server:host://archlinux:latest,buildx-archlinux:host://archlinux:latest diff --git a/docker-runner/presets/buildx-archlinux/docker-compose.yml b/docker-runner/presets/buildx-archlinux/docker-compose.yml index 832ffb0..f967ea9 100644 --- a/docker-runner/presets/buildx-archlinux/docker-compose.yml +++ b/docker-runner/presets/buildx-archlinux/docker-compose.yml @@ -23,8 +23,8 @@ services: - BINFMT_METHOD=tonistiigi - GITEA_INSTANCE=${GITEA_INSTANCE} - GITEA_TOKEN=${GITEA_TOKEN} - - DEFAULT_RUNNER_NAME=buildx-archlinux - - DEFAULT_RUNNER_LABEL=archlinux:host://archlinux:latest,company-server:host://archlinux:latest,buildx-archlinux:host://archlinux:latest + - DEFAULT_RUNNER_NAME=${DEFAULT_RUNNER_NAME:-buildx-archlinux} + - DEFAULT_RUNNER_LABEL=${DEFAULT_RUNNER_LABEL:-archlinux:host://archlinux:latest,company-server:host://archlinux:latest,buildx-archlinux:host://archlinux:latest} # 如果需要使用代理,取消下面的注释并修改为你的代理地址 # 注意:容器内访问宿主机需要使用 host.docker.internal 或宿主机IP diff --git a/docker-runner/presets/buildx-ubuntu-22/.env.example b/docker-runner/presets/buildx-ubuntu-22/.env.example index 6d57191..7ee76b9 100644 --- a/docker-runner/presets/buildx-ubuntu-22/.env.example +++ b/docker-runner/presets/buildx-ubuntu-22/.env.example @@ -1,2 +1,4 @@ GITEA_INSTANCE=https://git.mytsl.cn GITEA_TOKEN= +DEFAULT_RUNNER_NAME=buildx-ubuntu-22 +DEFAULT_RUNNER_LABEL=ubuntu-22.04:host://ubuntu:22.04,company-server:host://ubuntu:22.04,buildx-ubuntu-22:host://ubuntu:22.04 diff --git a/docker-runner/presets/buildx-ubuntu-22/docker-compose.yml b/docker-runner/presets/buildx-ubuntu-22/docker-compose.yml index ce08810..99dce76 100644 --- a/docker-runner/presets/buildx-ubuntu-22/docker-compose.yml +++ b/docker-runner/presets/buildx-ubuntu-22/docker-compose.yml @@ -22,8 +22,8 @@ services: - ENABLE_BUILDX=true - GITEA_INSTANCE=${GITEA_INSTANCE} - GITEA_TOKEN=${GITEA_TOKEN} - - DEFAULT_RUNNER_NAME=buildx-ubuntu-22 - - DEFAULT_RUNNER_LABEL=ubuntu-22.04:host://ubuntu:22.04,company-server:host://ubuntu:22.04,buildx-ubuntu-22:host://ubuntu:22.04 + - DEFAULT_RUNNER_NAME=${DEFAULT_RUNNER_NAME:-buildx-ubuntu-22} + - DEFAULT_RUNNER_LABEL=${DEFAULT_RUNNER_LABEL:-ubuntu-22.04:host://ubuntu:22.04,company-server:host://ubuntu:22.04,buildx-ubuntu-22:host://ubuntu:22.04} # 如果需要使用代理,取消下面的注释并修改为你的代理地址 # 注意:容器内访问宿主机需要使用 host.docker.internal 或宿主机IP diff --git a/docker-runner/presets/standard-ubuntu-22/.env.example b/docker-runner/presets/standard-ubuntu-22/.env.example index 6d57191..3a17b7a 100644 --- a/docker-runner/presets/standard-ubuntu-22/.env.example +++ b/docker-runner/presets/standard-ubuntu-22/.env.example @@ -1,2 +1,4 @@ GITEA_INSTANCE=https://git.mytsl.cn GITEA_TOKEN= +DEFAULT_RUNNER_NAME=standard-ubuntu-22 +DEFAULT_RUNNER_LABEL=ubuntu-22.04:host://ubuntu:22.04,company-server:host://ubuntu:22.04,standard-ubuntu-22:host://ubuntu:22.04 diff --git a/docker-runner/presets/standard-ubuntu-22/docker-compose.yml b/docker-runner/presets/standard-ubuntu-22/docker-compose.yml index 9579e90..8828ead 100644 --- a/docker-runner/presets/standard-ubuntu-22/docker-compose.yml +++ b/docker-runner/presets/standard-ubuntu-22/docker-compose.yml @@ -21,8 +21,8 @@ services: - ENABLE_BUILDX=false - GITEA_INSTANCE=${GITEA_INSTANCE} - GITEA_TOKEN=${GITEA_TOKEN} - - DEFAULT_RUNNER_NAME=standard-ubuntu-22 - - DEFAULT_RUNNER_LABEL=ubuntu-22.04:host://ubuntu:22.04,company-server:host://ubuntu:22.04,standard-ubuntu-22:host://ubuntu:22.04 + - DEFAULT_RUNNER_NAME=${DEFAULT_RUNNER_NAME:-standard-ubuntu-22} + - DEFAULT_RUNNER_LABEL=${DEFAULT_RUNNER_LABEL:-ubuntu-22.04:host://ubuntu:22.04,company-server:host://ubuntu:22.04,standard-ubuntu-22:host://ubuntu:22.04} # 如果需要使用代理,取消下面的注释并修改为你的代理地址 # 注意:容器内访问宿主机需要使用 host.docker.internal 或宿主机IP diff --git a/tests/template_defaults_test.sh b/tests/template_defaults_test.sh index 6a6ba1a..0cd6e1a 100644 --- a/tests/template_defaults_test.sh +++ b/tests/template_defaults_test.sh @@ -124,9 +124,34 @@ test_preset_env_examples_exist() { test -f "${file}" || fail "missing env example: ${file}" grep -q '^GITEA_INSTANCE=https://git.mytsl.cn$' "${file}" || fail "${file} should include company default instance" grep -q '^GITEA_TOKEN=$' "${file}" || fail "${file} should include empty token placeholder" + grep -q '^DEFAULT_RUNNER_NAME=' "${file}" || fail "${file} should define DEFAULT_RUNNER_NAME override example" + grep -q '^DEFAULT_RUNNER_LABEL=' "${file}" || fail "${file} should define DEFAULT_RUNNER_LABEL override example" done } +test_preset_compose_supports_runner_identity_overrides() { + grep -q 'DEFAULT_RUNNER_NAME=${DEFAULT_RUNNER_NAME:-standard-ubuntu-22}' \ + "${REPO_ROOT}/docker-runner/presets/standard-ubuntu-22/docker-compose.yml" || \ + fail "standard preset should allow DEFAULT_RUNNER_NAME override via env" + grep -q 'DEFAULT_RUNNER_LABEL=${DEFAULT_RUNNER_LABEL:-ubuntu-22.04:host://ubuntu:22.04,company-server:host://ubuntu:22.04,standard-ubuntu-22:host://ubuntu:22.04}' \ + "${REPO_ROOT}/docker-runner/presets/standard-ubuntu-22/docker-compose.yml" || \ + fail "standard preset should allow DEFAULT_RUNNER_LABEL override via env" + + grep -q 'DEFAULT_RUNNER_NAME=${DEFAULT_RUNNER_NAME:-buildx-ubuntu-22}' \ + "${REPO_ROOT}/docker-runner/presets/buildx-ubuntu-22/docker-compose.yml" || \ + fail "buildx ubuntu preset should allow DEFAULT_RUNNER_NAME override via env" + grep -q 'DEFAULT_RUNNER_LABEL=${DEFAULT_RUNNER_LABEL:-ubuntu-22.04:host://ubuntu:22.04,company-server:host://ubuntu:22.04,buildx-ubuntu-22:host://ubuntu:22.04}' \ + "${REPO_ROOT}/docker-runner/presets/buildx-ubuntu-22/docker-compose.yml" || \ + fail "buildx ubuntu preset should allow DEFAULT_RUNNER_LABEL override via env" + + grep -q 'DEFAULT_RUNNER_NAME=${DEFAULT_RUNNER_NAME:-buildx-archlinux}' \ + "${REPO_ROOT}/docker-runner/presets/buildx-archlinux/docker-compose.yml" || \ + fail "buildx arch preset should allow DEFAULT_RUNNER_NAME override via env" + grep -q 'DEFAULT_RUNNER_LABEL=${DEFAULT_RUNNER_LABEL:-archlinux:host://archlinux:latest,company-server:host://archlinux:latest,buildx-archlinux:host://archlinux:latest}' \ + "${REPO_ROOT}/docker-runner/presets/buildx-archlinux/docker-compose.yml" || \ + fail "buildx arch preset should allow DEFAULT_RUNNER_LABEL override via env" +} + test_preset_compose_uses_env_for_instance test_workflows_do_not_hardcode_company_server test_stats_workflow_uses_workflow_secret_consistently @@ -138,5 +163,6 @@ test_readme_has_project_intro_and_navigation test_deployment_doc_stays_runner_focused test_presets_define_expected_hostname test_preset_env_examples_exist +test_preset_compose_supports_runner_identity_overrides echo "template_defaults_test.sh: PASS"