Skip to content
 
 

Repository files navigation

Configuration Manager (qa-guru fork)

Configuration Manager

CM stats

CM metrics

Allure 3 dashboard — pyramid, stability, success distribution Dashboard PNG updates after each orchestrator run on `main` (Playwright screenshot of Allure 3 dashboard).
Link Description
Dashboard Full pyramid — filter epic cm in awesome
Awesome CM integration test details
selenoid-tests Orchestrator + merged Allure

Стабильные билды

Prod cm/hub: релизы с mainv3.0.0+ (selenoid.qa.guru). UI — отдельная v3.x линия на selenoid-ui main.

Pin-ветки 2.x (selenoid2-…-react16 / react18) — заморожены (rollback reference only).

Ветка Semver Назначение
main v3.0.0+ Активная prod-линия cm
selenoid2-1.55-…-react18 v2.3.0 frozen
selenoid2-1.45-…-react16 v2.2.1 frozen

Monorepo SSOT: projects/selenoid-home/README.md.

Установщик стека qa-guru/selenoid — форк aerokube/cm. Одна команда на чистом сервере с Docker поднимает hub, UI, browsers.json и browser-образы.

Build Status Go Report Card Release Docker Pulls

GitHub qa-guru/cm
Docker Hub qaguru/cm
Текущий релиз v3.0.3docs/RELEASE_v3.0.3.md · qaguru/cm:v3.0.3

Роль в экосистеме

cm не содержит логику hub — он оркестрирует установку компонентов из других репозиториев:

cm selenoid start
    ├── скачивает qaguru/selenoid (hub) из GitHub Releases
    ├── записывает browsers.json (Chrome/Firefox + Playwright)
    ├── docker pull qaguru/webdriver-chrome + qaguru/playwright-*
    └── запускает контейнер hub

cm selenoid start --warm-pool     # alias: --pool
    ├── то же, что start
    ├── docker compose: warm 4/4 + orchestrator :9090
    └── hub: -warm-pool-url http://127.0.0.1:9090  (host network)

cm selenoid start --hot-pool
    └── то же + compose profile `hot` (2/2 min slots, тот же оркестратор)

cm selenoid-ui start
    ├── скачивает qaguru/selenoid-ui из GitHub Releases
    └── запускает контейнер UI, связанный с hub

Экосистема qa-guru Selenoid

Ресурс Ссылка Роль
selenoid github.com/qa-guru/selenoid Hub
selenoid-ui github.com/qa-guru/selenoid-ui Web UI
cm (этот) github.com/qa-guru/cm Установщик
browser-image github.com/qa-guru/browser-image Docker browser nodes
selenoid-tests github.com/qa-guru/selenoid-tests E2e/integration ethalon
selenoid-pool github.com/qa-guru/selenoid-pool Warm/hot sidecar
Docker Hub hub.docker.com/u/qaguru Образы qaguru/*

browsers.json — SSOT (Docker)

Где Назначение
dev/browsers.json (selenoid-home) SSOT полный Docker-каталог (qaguru/* images)
selenoid/data/browsers.json (этот репо, go:embed) Копия SSOT для cm selenoid configure / start без -j
selenoid/config/browsers.json Копия SSOT на hub
selenoid.qa.guru/deploy/browsers-production.json Prod overlay (только по явному prod-запросу)

Правки Docker-каталога — в dev/browsers.json, затем dev/scripts/sync-cm-browsers.sh.

Режим --use-drivers (локальные chromedriver/geckodriver без Docker) не поддерживается из коробки — нужен свой JSON-каталог и флаг --drivers-info <url>. Для стека qa-guru используйте Docker-режим (по умолчанию).

Установка

Предварительные условия: Docker Engine 29.x (API 1.55, moby/moby client), доступ пользователя к docker, опубликованные релизы qa-guru/selenoid и qa-guru/selenoid-ui. Для сборки cm — Go 1.26.6. Warm/hot sidecar рассчитан на Linux + host network. На Docker Desktop (Mac/Windows) слоты могут не отдать loopback 127.0.0.1:14441 — сессии уйдут в cold.

Скачать бинарник из GitHub Releases или собрать локально (см. Сборка):

# Linux
curl -sL https://github.com/qa-guru/cm/releases/latest/download/cm_linux_amd64 -o cm
# macOS Apple Silicon
# curl -sL https://github.com/qa-guru/cm/releases/latest/download/cm_darwin_arm64 -o cm
chmod +x cm

Локально (без sudo) — свой каталог:

./cm selenoid start -c "$HOME/selenoid"
./cm selenoid-ui start -c "$HOME/selenoid"

Warm 4/4 sidecar (orchestrator :9090, hub -warm-pool-url http://127.0.0.1:9090):

./cm selenoid start -c "$HOME/selenoid" --warm-pool
# alias: --pool
./cm selenoid start -c "$HOME/selenoid" --hot-pool   # то же + hot 2/2

Без флага — только cold hub. cm selenoid stop гасит sidecar, если его поднял этот cm (маркер в -c …/warm-pool).

Prod-каталог по умолчанию — /opt/selenoid:

sudo mkdir -p /opt/selenoid
./cm selenoid start
./cm selenoid-ui start

cm selenoid start передаёт hub DOCKER_API_VERSION=1.55.

Обновление:

./cm selenoid update
./cm selenoid-ui update
./cm selenoid start -f   # принудительно перекачать образы и бинарники

Текущий релиз cm: v3.0.3release notes.
Предыдущий: docs/RELEASE_v3.0.2.md. Docker: qaguru/cm:v3.0.3.

Сборка

go build -o cm .

Флаги (Docker-режим, по умолчанию)

Флаг Описание
-v, --version Тег GitHub Release (по умолчанию latest)
-j, --browsers-json Свой browsers.json вместо встроенного
--selenoid-binary Путь к бинарнику hub вместо скачивания из Release
--selenoid-ui-binary Путь к бинарнику UI вместо скачивания из Release
-c, --config-dir Каталог данных (default: /opt/selenoid)
-f, --force Перекачать образы и бинарники
-n, --no-download Только записать browsers.json, без docker pull
--warm-pool Sidecar selenoid-pool: warm 4/4 + orchestrator; hub -warm-pool-url http://127.0.0.1:9090
--pool Alias for --warm-pool
--hot-pool Compose profile hot (2/2 -min); тот же оркестратор, implies --warm-pool

Флаги --browsers, --browser-env, --drivers-info — только для режима --use-drivers; --drivers-info обязателен (собственный каталог chromedriver/geckodriver).

Пример с локальными бинарниками:

./cm selenoid start --selenoid-binary /opt/selenoid/bin/selenoid
./cm selenoid-ui start --selenoid-ui-binary /opt/selenoid/bin/selenoid-ui

Структура на сервере

/opt/selenoid/
  browsers.json
  bin/selenoid
  bin/selenoid-ui
  video/
  logs/
  warm-pool/          # только при --warm-pool / --pool / --hot-pool
    docker-compose.yml
    config.yaml

Свои тесты

Warm — Chrome WebDriver без video/VNC/HAR: обычный remote http://127.0.0.1:4444/wd/hub. Тест не менять; hub сам делает container-reuse. Firefox / Playwright / video / VNC / HAR остаются cold.

Hot — не drop-in. Слот помечается POST /pool/lease, клиент attach к уже открытому UUID (хелпер jenkins-overlay). ensure.sh нет. Наш Jenkins держит hotJunitDaemon (:17890) через sync-джобу — это не часть cm.

About

Configuration manager for Aerokube products

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages