Простая система сборки
cd server && npm install && npm start
Конфигурация находится в файле server/config.ts Так же можно передавать настройки в параметры командной строки при старте:
npm start <port> <host> <repo_adress>
cd server && npm install && npm start
Конфигурация находится в файле agent/config.ts Так же можно передавать настройки в параметры командной строки при старте:
npm start <port> <host> <server_url>
- Сервер должен генерировать уникальные номера сборок.
Номер каждой новой сборки вычисляется путем инкримента к номеру последней сборки
- Сервер должен максимально утилизировать имеющихся агентов.
У каждого агента есть номер задачи, которой он занимается. При завершении задачи номер удаляется и агент считается свободным. Если не удается найти свободного агента, пользователь на странице списка сборок видит об этом предупреждение с просьбой добавить агентов.
- Сервер должен корректно обрабатывать ситуацию, когда агент прекратил работать между сборками.
Если не удается достучатся до агента, то сервер пометит сборку как сфейлившуюся и удалит агента.
- Сервер должен корректно обрабатывать ситуацию, когда агент прекратил работать в процессе выполнения сборки.
Если по истечении некоторого промежутка времени (по умолчанию 3 минуты) агент не резолвит сборку, то сервер считает его умершим и удаляет. Сборка помечается как сфейлившаяся.
- Сервер должен корректно обрабатывать ситуацию, когда агенты не справляются с поступающими заявками.
Если не удается найти свободного агента, пользователь на странице списка сборок видит об этом предупреждение с просьбой добавить агентов.
- Агент должен корректно обрабатывать ситуацию, когда при старте не смог соединиться с сервером.
Агент выводит сообщение, что не смог соединиться и прекращает свою работу.
- Агент должен корректно обрабатывать ситуацию, когда при отправке результатов сборки не смог соединиться с сервером.
Агент выводит сообщение об ошибке в консоль и завершается. (Сервер по истечении какого-то времени удалит агента)