Skip to content

qa-guru/cm

 
 

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+. Pin-ветки 2.x — заморожены (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

Установщик стека 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.1docs/RELEASE_v3.0.1.md · qaguru/cm:v3.0.1

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

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-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
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.5.

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

curl -sL https://github.com/qa-guru/cm/releases/latest/download/cm_linux_amd64 -o cm
chmod +x cm

Запуск (по умолчанию каталог /opt/selenoid, как на prod):

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

Локально без прав на /opt — свой каталог:

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

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

Обновление:

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

Текущий релиз cm: v3.0.1release notes.
Предыдущий: docs/RELEASE_v2.2.0.md. Docker: qaguru/cm:v2.2.1.

Сборка

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

Флаги --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/

Releases

Packages

Contributors

Languages