Esta es una implementación de un archivador para sistemas de control EPICS que tiene como objetivo archivar millones de PV. En un nivel alto, algunas características son
Para obtener más detalles, consulte la documentación o la documentación actual de la sucursal.
El dispositivo de archivado utiliza la herramienta de compilación gradle. Puede utilizar el comando gradle wrapper ./gradlew
, que descarga gradle por usted. O puede instalar una versión de Gradle que tenga una versión > la versión del contenedor en las propiedades del contenedor de Gradle y usar el comando gradle
.
Para construir simplemente ejecute:
gradle
La distribución resultante se puede encontrar en la carpeta build/distributions
. Para compilar una versión personalizada específica del sitio, establezca la variable de entorno ARCHAPPL_SITEID en un nombre de carpeta en src/sitespecific
. Hay un ejemplo de compilación personalizada en src/sitespecific/slacdev
.
Este proyecto utiliza impecable para apuntar a un formato estandarizado. El nuevo código se compara con "origen/maestro" (cuando se ejecuta en CI, esto puede ser diferente al control remoto de origen local). Actualmente, esto incluye código Java y código web (HTML, CSS, javascript).
Para formatear el nuevo código, ejecute:
gradle spotlessApply
O para comprobar que el formato es correcto ejecute:
gradle spotlessCheck
Las pruebas están organizadas en diferentes etiquetas: "slow", "integration", "localEpics", "flaky", "singleFork", "unit".
Para ejecutar pruebas unitarias (son necesarias para que se complete el proceso de compilación):
gradle test
Para ejecutar una única prueba, por ejemplo "TestName":
gradle test --tests " org.epics.archiverappliance.TestName "
El resto de los comandos siguientes también se pueden utilizar con el argumento --tests
para ejecutar una única prueba.
Para ejecutar pruebas que incluyan pruebas "inconsistentes" y "lentas":
gradle unitTests
Las pruebas de integración requieren una instalación de Tomcat (el dispositivo Archiver solo admite hasta la versión 9). Luego se debe configurar la variable de entorno TOMCAT_HOME
donde existe una carpeta "conf".
Para ejecutar pruebas que requieran una instalación local de EPICS.
gradle epicsTests
Es posible utilizar una imagen acoplable que contenga EPICS para ejecutar las pruebas de Epics:
docker compose -f docker/docker-compose.epicsTests.yml run epicsarchiver-test
Las otras pruebas de integración producen una gran cantidad de datos en el disco y se recomienda no ejecutarlas todas a la vez. Para ejecutar una única prueba de integración:
gradle integrationTests --tests " org.epics.archiverappliance.retrieval.DataRetrievalServletTest "
Ejecutar la aplicación como si estuviera en una prueba de integración, por ejemplo para probar manualmente un nuevo desarrollo. Puedes usar el comando:
gradle testRun
Y luego acceda al dispositivo 0 y al dispositivo 1 en ejecución. Para cerrar la aplicación, interrumpa el comando (usando Ctrl-c por ejemplo) y luego podrá ejecutar:
gradle shutdownAllTomcats
Tenga en cuenta que esto cerrará todos los tomcats en ejecución, no solo los creados con gradle testRun
. Es útil ejecutar este comando si también interrumpes una prueba de integración.
Para una implementación rápida de un solo dispositivo:
./quickstart.sh apache-tomcat-9. * .tar.gz
Para obtener más información, consulte la documentación de inicio rápido. Para implementaciones más complicadas, consulte la carpeta de ejemplos.
La documentación para el sitio web se crea utilizando Read the Docs. Para compilarlo y ejecutarlo localmente:
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