Удалённый анализ

Позволяет проанализировать проект на удалённом сервере. Будет доступен в svace 3.3.0.

На сервере запускается сервер анализа. На другой машине, где выполняется сборка, можно отправить задачу анализа на сервер удалённого анализа.

Быстрый старт

На машине A инициализируем svace-директорию:

svace init

Команда создаст директорию .svace-dir, где будут храниться все данные для сервера анализа. Затем запускаем сервер:

svace server single-start

В консоль среди прочего будет выведено

Remote analysis server started at port 55135

На машине B собираем проект:

svace init
svace build make

Теперь мы можем дать команду запустить анализ на машине A:

svace remote --host A analyze  

Команда вернёт управление после того, как анализ завершится на сервере. При этом сам анализ выполняется на машине A.

Для импорта результатов на локальный сервер истории необходимо выполнить команду

svace history import

Для запуска сервера истории на локальной машине надо запустить

svace server single-start

Результаты будут доступны по адресу localhost:8060.

Для импорта результатов на сервер Svacer необходимо выполнить команды

svacer import --svace path-to-svace/bin/svace .
svacer upload

По умолчанию результаты будут доступны по адресу localhost:8080.

Просмотр текущий анализов

Посмотреть список выполняемых в текущий момент анализов на сервере можно с помощью браузера перейдя по ссылке:

http://A:8060/status

Где A — сетевое имя сервера A.

Как это работает

Сервер ожидает подключения на порту 55135. Этот порт можно поменять в файле .svace-dir/conf/svace.conf (SERVER_PORT), так же как и другие настройки сервера. Из важных настроек — количество одновременно запускаемых анализов (SIMULTANEOUS_ANALYSIS_LIMIT). По умолчанию можно запустить 3 анализа. При попытке выполнить анализов больше, чем лимит, сервер не будет запускать новую задачу до тех пор, пока предыдущие не выполнятся. При этом клиент будет ждать, когда это произойдёт.

Результаты анализа сервер помещает в директорию .svace-dir/remote-<hash>/analyze-res. Сервер ничего не чистит. При регулярном использовании размер директории будет расти. В любой момент, когда не идут анализы, можно удалить директорию .svace-dir.

Клиент отправляет на сервер хэши файлов, которые нужно проанализировать. Если они уже есть на сервере, то повторно они отправляться не будут. Поэтому передача файлов при регулярной сборке одного и того же проекта будет выполняться достаточно эффективно. Затем на сервер выполняется команда запуска анализа переданной сборки. Помимо этого отправляются файлы настроек (settings.txt и warn-settings.txt).

Обычный анализ пишет результаты в директорию .svace-dir. Чтобы избежать путаницы при удалённом анализе, эта директория очищается на локальной машине. В конце анализа туда кладутся файлы с хэшами результата анализа и используемой сборки.