update extension README.md

parent 29659f6f
# EPM Docker Test Runner # 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 ```bash
mkdir -p ~/.vscode/extensions/eter.epm-docker-test-runner-0.1.0 code --install-extension epm-docker-test-runner-0.1.0.vsix --force
rsync -a --delete ./ ~/.vscode/extensions/eter.epm-docker-test-runner-0.1.0/
``` ```
После этого выполните в VS Code команду `Developer: Reload Window`. Или через сборку из исходников:
Установка через VSIX-пакет:
```bash ```bash
cd vscode-extension cd vscode-extension
npm install -g @vscode/vsce npx --yes @vscode/vsce package
vsce package code --install-extension epm-docker-test-runner-0.1.0.vsix --force
code --install-extension epm-docker-test-runner-0.1.0.vsix
``` ```
Этот же 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`: спрашивает приложение и целевые системы.
- `Run app on systems parallel`: спрашивает приложение, затем даёт выбрать пресет или вручную ввести системы, и передаёт `--parallel`. - `Run app on systems parallel`: спрашивает приложение, затем даёт выбрать пресет или вручную ввести системы, и запускает тесты параллельно.
- `Run app preset`: спрашивает приложение и пресет `main`, `russian` или `all`. - `Run app preset`: спрашивает приложение и пресет `main`, `russian` или `all`.
- `--latest for app tests`: checkbox в дереве действий, который добавляет `--latest` к app-тестам.
- `Run exec command`: спрашивает shell-команду и целевые системы или пресет. - `Run exec command`: спрашивает shell-команду и целевые системы или пресет.
- `./bin/epm play <app>`: запускает локальный `epm play` вне Docker. - `./bin/epm play <app>`: запускает локальный `epm play` вне Docker.
- `./bin/epm play --latest <app>`: запускает локальный `epm play --latest` вне Docker. - `./bin/epm play --latest <app>`: запускает локальный `epm play --latest` вне Docker.
- `Rerun last command`: повторяет последнюю сгенерированную команду. - `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 ...@@ -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 ...@@ -79,7 +122,27 @@ code --install-extension epm-docker-test-runner-0.1.0.vsix
- `epmDockerTest.defaultPreset`: пресет по умолчанию для запусков по пресету. - `epmDockerTest.defaultPreset`: пресет по умолчанию для запусков по пресету.
- `epmDockerTest.defaultMode`: `auto`, `local` или `remote`. - `epmDockerTest.defaultMode`: `auto`, `local` или `remote`.
- `epmDockerTest.parallelJobs`: передавать `-j N`, если значение больше `1`. - `epmDockerTest.parallelJobs`: передавать `-j N`, если значение больше `1`.
- `epmDockerTest.localEpmRoot`: локальное дерево eepm для команд `./bin/epm play` вне контейнера. - `epmDockerTest.eepmDir`: путь к дереву `eepm`, если оно не совпадает с рабочим каталогом.
- `epmDockerTest.eepmDir`, `epmDockerTest.eepmSource`, `epmDockerTest.remoteHost`, `epmDockerTest.remoteUser`, `epmDockerTest.builderUser`, `epmDockerTest.builderPath`, `epmDockerTest.logRoot`: соответствуют одноимённым опциям скрипта. - `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