update extension README.md

parent 29659f6f
# EPM Docker Test Runner
Расширение VS Code с кнопками для запуска `epm-docker-test.sh`.
Расширение VS Code для быстрого запуска `epm-docker-test.sh` из боковой панели.
## Использование
Оно не заменяет сам скрипт. Расширение только помогает собрать команду, подставить имя `epm play` приложения, выбрать системы или пресет и отправить готовый запуск в обычный терминал VS Code. Поэтому весь вывод, вопросы, ошибки Docker/SSH и ссылки на логи остаются видимыми в терминале.
1. Откройте эту папку в VS Code: `vscode-extension`.
2. Нажмите `F5`, чтобы запустить Extension Development Host.
3. В открывшемся окне откройте репозиторий с `epm-docker-test.sh`.
4. Используйте панель `EPM Test` на боковой панели активности или кнопку `$(beaker) EPM Test` в строке состояния.
## Зачем Нужно
Расширение запускает команды в обычном терминале VS Code, поэтому вывод и интерактивные сообщения остаются видимыми.
Обычно при работе с `eepm` приходится часто проверять один и тот же play-скрипт в контейнерах:
```bash
./epm-docker-test.sh ayugram fedora
./epm-docker-test.sh -j 3 ayugram --preset main
./epm-docker-test.sh --exec "epm --version" debian
```
Расширение сокращает этот цикл до кнопок в панели `EPM Test`:
- запустить текущий `epm play` на одной или нескольких системах;
- запустить play-тест по пресету `main`, `russian` или `all`;
- включить `--latest` одной галочкой;
- запустить произвольную `--exec` команду;
- повторить последнюю команду;
- открыть каталог логов.
## Быстрый Старт
1. Откройте в VS Code рабочую папку, где доступен `epm-docker-test.sh`.
2. Откройте боковую панель `EPM Test` в Activity Bar.
3. Если дерево `eepm` лежит не в рабочем каталоге, задайте `epmDockerTest.eepmDir`, например `./eepm`.
4. Откройте файл из `play.d`, `pack.d` или `repack.d`, если хотите автоподстановку имени приложения.
5. Нажмите нужную кнопку в `EPM Test: Actions`.
Сгенерированная команда будет отправлена в терминал `EPM Docker Test`.
## Установка
Для повседневного локального использования без упаковки:
Через готовый VSIX:
```bash
mkdir -p ~/.vscode/extensions/eter.epm-docker-test-runner-0.1.0
rsync -a --delete ./ ~/.vscode/extensions/eter.epm-docker-test-runner-0.1.0/
code --install-extension epm-docker-test-runner-0.1.0.vsix --force
```
После этого выполните в VS Code команду `Developer: Reload Window`.
Установка через VSIX-пакет:
Или через сборку из исходников:
```bash
cd vscode-extension
npm install -g @vscode/vsce
vsce package
code --install-extension epm-docker-test-runner-0.1.0.vsix
npx --yes @vscode/vsce package
code --install-extension epm-docker-test-runner-0.1.0.vsix --force
```
Этот же VSIX можно установить через команду VS Code `Extensions: Install from VSIX...`.
После обновления расширения выполните в VS Code `Developer: Reload Window`, чтобы панель действий перечиталась.
Для разработки расширения:
1. Откройте папку `vscode-extension` в VS Code.
2. Нажмите `F5`.
3. В Extension Development Host откройте репозиторий с `epm-docker-test.sh`.
## Действия
- `--latest for app tests`: галочка, добавляющая `--latest` к app-тестам.
- `Run app on systems`: спрашивает приложение и целевые системы.
- `Run app on systems parallel`: спрашивает приложение, затем даёт выбрать пресет или вручную ввести системы, и передаёт `--parallel`.
- `Run app on systems parallel`: спрашивает приложение, затем даёт выбрать пресет или вручную ввести системы, и запускает тесты параллельно.
- `Run app preset`: спрашивает приложение и пресет `main`, `russian` или `all`.
- `--latest for app tests`: checkbox в дереве действий, который добавляет `--latest` к app-тестам.
- `Run exec command`: спрашивает shell-команду и целевые системы или пресет.
- `./bin/epm play <app>`: запускает локальный `epm play` вне Docker.
- `./bin/epm play --latest <app>`: запускает локальный `epm play --latest` вне Docker.
- `Rerun last command`: повторяет последнюю сгенерированную команду.
- `Open log folder`: открывает `${XDG_STATE_HOME:-$HOME/.local/state}/epm-docker-test` или настроенный каталог логов.
- `Open log folder`: открывает каталог логов.
- `Configure`: открывает настройки расширения.
Галочка `--latest for app tests` влияет только на Docker app-тесты: `Run app on systems`, `Run app on systems parallel` и `Run app preset`. На `Run exec command` и локальные `./bin/epm play` кнопки она не влияет.
## Автоподстановка Приложения
Когда расширение спрашивает имя приложения, оно пытается определить его по активному файлу:
Когда расширение спрашивает имя приложения, оно пытается определить его по активному файлу, если файл находится в `play.d`, `pack.d` или `repack.d`. Для `play.d` используется имя play-скрипта без расширения, а не `PKGNAME` внутри скрипта. Для `pack.d` и `repack.d` расширение ищет соответствующий play-скрипт по имени файла и простым переменным вроде `PRODUCT`, `PKGNAME` и `BASEPKGNAME`. Если приложение найдено, расширение показывает кликабельные варианты `OK` и `Cancel`; имя приложения можно поправить в поле выбора перед нажатием `OK`.
- для `play.d/<name>.sh` используется `<name>`;
- для `pack.d` и `repack.d` расширение ищет соответствующий play-скрипт;
- `PKGNAME` внутри `play.d` не используется как имя для `epm play`, потому что запуск всегда идёт по имени play-скрипта.
Примеры:
- `play.d/ayugram.sh` -> `ayugram`, даже если внутри `PKGNAME=ayugram-desktop`;
- `pack.d/openshot-qt.sh` -> `openshot`;
- `repack.d/distroav.sh` -> `obs-studio-plugin-distroav`.
Если имя найдено, расширение покажет подтверждение `OK: <app>`. Значение можно поправить перед запуском.
## Избранное
......@@ -69,6 +110,8 @@ code --install-extension epm-docker-test-runner-0.1.0.vsix
}
```
Избранное показывается вверху панели `EPM Test: Actions`.
## Настройки
Основные настройки:
......@@ -79,7 +122,27 @@ code --install-extension epm-docker-test-runner-0.1.0.vsix
- `epmDockerTest.defaultPreset`: пресет по умолчанию для запусков по пресету.
- `epmDockerTest.defaultMode`: `auto`, `local` или `remote`.
- `epmDockerTest.parallelJobs`: передавать `-j N`, если значение больше `1`.
- `epmDockerTest.localEpmRoot`: локальное дерево eepm для команд `./bin/epm play` вне контейнера.
- `epmDockerTest.eepmDir`, `epmDockerTest.eepmSource`, `epmDockerTest.remoteHost`, `epmDockerTest.remoteUser`, `epmDockerTest.builderUser`, `epmDockerTest.builderPath`, `epmDockerTest.logRoot`: соответствуют одноимённым опциям скрипта.
- `epmDockerTest.eepmDir`: путь к дереву `eepm`, если оно не совпадает с рабочим каталогом.
- `epmDockerTest.eepmSource`: источник `eepm`, например `local` или `builder64`.
- `epmDockerTest.remoteHost`, `epmDockerTest.remoteUser`, `epmDockerTest.builderUser`, `epmDockerTest.builderPath`, `epmDockerTest.logRoot`: соответствуют одноимённым опциям `epm-docker-test.sh`.
- `epmDockerTest.localEpmRoot`: локальное дерево `eepm` для кнопок `./bin/epm play`.
- `epmDockerTest.additionalArgs`: дополнительные аргументы, которые будут добавлены перед приложением или `--exec`.
Типичная настройка для репозитория, где `epm-docker-test.sh` лежит в корне, а `eepm` склонирован в подпапку:
```json
{
"epmDockerTest.eepmDir": "./eepm"
}
```
## Автоопределение Путей
Если `scriptPath` не задан, расширение ищет `epm-docker-test.sh` в таких местах:
1. рядом с обнаруженным деревом `eepm`;
2. в корне рабочей папки;
3. в подпапке `epm-docker-test`;
4. рядом с установленным расширением.
Для Docker-тестов автоопределение предпочитает ближайший родительский каталог активного файла, в котором есть и `bin/epm`, и `epm-docker-test.sh`. Этот каталог используется как рабочий каталог команды, а его `epm-docker-test.sh` используется как запускаемый скрипт.
Если `workingDirectory` не задан, используется обнаруженное дерево `eepm`, рабочая папка VS Code или каталог скрипта.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment