Это реализация архиватора для систем управления EPICS, предназначенная для архивирования миллионов PV. На высоком уровне некоторые функции
Более подробную информацию можно найти в документации или документации текущей ветки.
Устройство архивирования использует инструмент сборки Gradle. Вы можете использовать команду оболочки gradle ./gradlew
, которая загружает gradle для вас. Или вы можете установить версию gradle, у которой есть версия > версия оболочки в свойствах оболочки gradle, и использовать команду gradle
.
Для сборки просто запустите:
gradle
Полученный дистрибутив можно найти в папке build/distributions
. Чтобы создать версию, адаптированную для конкретного сайта, установите для переменной среды ARCHAPPL_SITEID имя папки в src/sitespecific
. В src/sitespecific/slacdev
есть пример пользовательской сборки.
В этом проекте используется Spotless, чтобы обеспечить стандартизированное форматирование. Новый код проверяется на соответствие «origin/master» (при запуске в CI он может отличаться от вашего локального удаленного источника). В настоящее время сюда входит код Java и веб-код (HTML, CSS, javascript).
Чтобы отформатировать новый код, выполните:
gradle spotlessApply
Или чтобы проверить правильность форматирования, выполните:
gradle spotlessCheck
Тесты сгруппированы по разным тегам: «медленный», «интеграция», «localEpics», «flaky», «singleFork», «unit».
Чтобы запустить модульные тесты (они необходимы для завершения процесса сборки):
gradle test
Чтобы запустить один тест, например «TestName»:
gradle test --tests " org.epics.archiverappliance.TestName "
Остальные приведенные ниже команды также можно использовать с аргументом --tests
для запуска одного теста.
Чтобы запустить «ненадежные» и «медленные» тесты:
gradle unitTests
Интеграционные тесты требуют установки Tomcat (устройство Archiver Appliance поддерживает только версию до 9). Затем необходимо установить переменную среды TOMCAT_HOME
, в которой существует папка «conf».
Для запуска тестов требуется локальная установка EPICS.
gradle epicsTests
Для запуска тестов эпиков можно использовать образ докера, содержащий EPICS:
docker compose -f docker/docker-compose.epicsTests.yml run epicsarchiver-test
Другие интеграционные тесты создают на диске много данных, поэтому не рекомендуется запускать их все одновременно. Чтобы запустить один интеграционный тест:
gradle integrationTests --tests " org.epics.archiverappliance.retrieval.DataRetrievalServletTest "
Чтобы запустить приложение так же, как если бы оно проходило интеграционный тест, например, чтобы вручную протестировать новую разработку. Вы можете использовать команду:
gradle testRun
А затем получите доступ к работающим устройствам App0 и Appliance1. Чтобы закрыть приложение, прервите команду (например, используя Ctrl-c), после чего вы можете запустить:
gradle shutdownAllTomcats
Обратите внимание, что это приведет к остановке всех запущенных котов, а не только тех, которые созданы с помощью gradle testRun
. Эту команду полезно запускать, если вы также прерываете интеграционный тест.
Для быстрого развертывания одного устройства:
./quickstart.sh apache-tomcat-9. * .tar.gz
Дополнительную информацию см. в документации по быстрому запуску. Для более сложных развертываний см. папку примеров.
Документация для веб-сайта создается с помощью Read the Docs. Чтобы собрать его и запустить локально:
cd docs
python -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade --no-cache-dir pip setuptools
python -m pip install --upgrade --no-cache-dir sphinx readthedocs-sphinx-ext
python -m pip install --exists-action=w --no-cache-dir -r docs/requirements.txt
cd docs
sphinx-autobuild source build