Este es el comando aeintegratq que se puede ejecutar en el proveedor de alojamiento gratuito de OnWorks utilizando una de nuestras múltiples estaciones de trabajo en línea gratuitas, como Ubuntu Online, Fedora Online, emulador en línea de Windows o emulador en línea de MAC OS.
PROGRAMA:
NOMBRE
aeintegratq - integrar cambios en proyectos
SINOPSIS
aeintegratq [ opción...] nombre del proyecto...
DESCRIPCIÓN
Los aeintegratq El comando se utiliza para gestionar las integraciones de uno o más cambios en una
o más proyectos. Normalmente se ejecuta a través de cron(1) o at(1) con el nombre de un solo proyecto,
aeintegratq gestionará todas las operaciones para la integración incluso cuando -Construir y -Prueba están
requerido en múltiples arquitecturas. Si se revoca una revisión de cambios después de que la cola
ejecutar aeintegratq notará el mal estado y continuará silenciosamente. Si uno o más
los cambios finalizan o pasan después de que la cola se está ejecutando, y se ha dado -loop,
aeintegratq notará los nuevos cambios y los integrará. Las opciones adicionales permiten
el integrador tiene control total sobre la mayoría de los aspectos de la gestión de colas, como el orden de
integración de múltiples cambios.
OPCIONES
Se entienden las siguientes opciones:
Opción Resum
-h Ayuda, muestra información de uso.
-H Ayuda, muestra el uso y toda la información útil de los comentarios.
-a ejecutar en cualquier máquina (normalmente solo IntegrationHost)
-s ejecutar operaciones remotas a través de ssh (rsh predeterminado)
-n Sin acción, solo diga lo que se haría.
-ib s Especifique el servidor (remoto) para ibegin.
-ip s Especifique el servidor (remoto) para ipass.
-k Conserve los scripts y los archivos de informes.
-K Conserve el archivo temporal incluso si pasa la integración.
-lazo Bucle para procesar más cambios si están disponibles antes de aeintegratq
completa. Se detendrá cuando no haya nada más que hacer.
-M lista Mínimo, ejecutar cambios dados -mínimo
-P lista Precioso, no Yo fallo cambios en lista, solo para.
-R lista Listo, especificar orden y subconjunto, por ejemplo: documentación que demuestre copropiedad de bienes, residencia compartida, recursos económicos combinados, declaraciones juradas de personas que lo conocen y que puedan dar fe de su relación y vida compartida, Decretos o certificados de adopción, Constancia de custodia legal de un niño adoptado durante un período de dos años -R
-S escenario
Recoger en una etapa determinada (diff | build | test | integration)
-c cambie el número
especificar el cambio para integrar en el escenario
-p nombre del proyecto
especificar un solo nombre de proyecto
NOTA: si se proporcionan opciones personalizadas como -P -R -S -c -p, solo se puede
integrado ya que las opciones no tendrían sentido para el próximo proyecto dado.
Algunas opciones están presentes solo para pruebas e investigación. Tenga en cuenta que las opciones son
rara vez se requiere para operaciones normales.
Control: Opciónes
Las siguientes opciones están disponibles para necesidades especiales. Controlan el orden y
disposición de cada cambio esperando_integración en un proyecto determinado.
-R[listo] número1, número2 ...
Esta opción se utiliza para especificar el orden o subconjunto a integrar. Solo esos cambios
se intentará enumerar, y exactamente en el orden indicado. Esto se aplica a la cola
bucle si -lazo es dado. En particular, tenga en cuenta a menos que la lista incluya futuros
cambios, los bucles futuros no los integrarán.
Útil si un cambio en particular debe ir antes que otro por alguna razón. O si
solo integrando uno o dos cambios cuando varios son esperando_integración en la categoría Industrial.
proyecto dado. También se puede especificar un único cambio con el -cambio] número
opción, que es común para otros comandos de aegis. Sin embargo, el -R opción permite un
lista y, si se proporciona, anulará cualquier -c dado.
-P[recio] número1, número2 ...
-P[recio] all
Esta opción se utiliza para especificar que un cambio particular o un subconjunto de cambios
debería ser considerado precioso. No implica orden ni limita la ejecución de la cola.
a ese subconjunto; solo significa que los cambios deben ser considerados precioso.
Tenga en cuenta que al menos un número (o la palabra clave all) se debe dar.
El concepto de precioso significa que si el cambio dado fallara en algún lugar
el proceso de integración, entonces el proceso simplemente se detiene y deja el problema
cambiar en el directorio delta. los -Yo fallo en realidad no sería ejecutado. Esta
a veces es útil para diagnosticar un problema que solo ocurre durante las integraciones.
También es útil si la falla se debe a un problema transitorio como no confiable
máquinas en la red. En tal caso, la integración se puede reanudar después de
arreglando el problema. Ver el escenario opciones a continuación.
Si, por otro lado, un precioso el cambio lo hace a través del proceso de integración
con éxito, la opción no tiene ningún efecto.
-M[mínimo] número1, número2 ... or all
Integrar los cambios dados con el -mínimo opción. Tales cambios se pondrán
al final de la cola para que las últimas integraciones de una ejecución sean mínimas.
Esta característica permite el uso práctico de integraciones mínimas sin requerir
-mínimo en todas y cada una de las integraciones. Consulte la siguiente sección sobre Días Minimos
integraciones para más información. Si -lazo recibe cualquier cambio especificado como
mínimo se ejecutará al final del ciclo en el que están listos, no serán
empujado al bucle final.
-ib[servidor] nombre del servidor o ""
-ip[servidor] nombre del servidor o ""
Para especificar un servidor remoto en el que ejecutar -empiezo or 0 respectivamente. Estos
opciones están rarely necesario, but pueden be eficiente if a Antecedentes is organizado on a
una experiencia diferente presentar servidor y tiene a large línea de base By es los -empiezo run on que
servidor los del sistema, tráfico would be greatly reducido y for large proyecta y/o
slow telecomunicaciones can greatly reducir los time Requisitos for -empiezo. Los opción formulario
of dando an vacío nombre depende on los salida of df -k dando a analizable fortaleza
nombre. If que is no su verdadero on a tu manera integración fortaleza arquitectura, usted will have a
especificar los servidor nombre.
-monitor valor de visualización or ""
Para especificar una visualización X válida para su uso durante las operaciones de integración.
Fase Opciónes
Las siguientes opciones permiten [re] iniciar una integración que ya ha progresado
a través de algunas etapas. Esto es útil para lidiar con fallas (precioso) integraciones, o para
terminar automáticamente una integración iniciada a mano.
-S[etapa] diff
-S[etapa] construimos
-S[etapa] test
-S[etapa] integrar
Recoge la integración en el momento dado. escenario. Requiere -c[colgar] número opción de
especificar el número de cambio.
Advanced Controles
El integrador puede prever situaciones especiales, como operaciones necesarias después de
-Construir y antes -Pruebao al final de una ejecución en cola. Dichas capacidades son proporcionadas por
manos y estrategias se describe a continuación.
Manos
Hay un conjunto de manos disponibles que se ejecutan, si están presentes, antes y después de cada etapa
de la integración. Se pueden utilizar para ayudar a garantizar que el integrador realmente obtenga
algunos duermen mientras gestionan grandes proyectos.
Estos ganchos se buscan en el directorio $ HOME / ganchos_de_integración. No es necesario que exista;
aeintegratq solo prestará atención a los que existan. Los ganchos pueden ser de cualquier forma
ejecutable (script, etc.) y se llaman con 2 argumentos: nombre del proyecto cambie el número.
Se ejecutan como integradores en la máquina desde la que se inició aeintegratq. Son
nombrado usando el nombre del proyecto junto con un sufijo de acuerdo con el lugar en el
proceso de integración que desea que se ejecuten.
Tenga en cuenta que si un gancho para el proyecto foo existe también se utiliza para cualquier rama bajo ese
proyecto. Por ejemplo, si ha proporcionado foo.pre_ip, se ejecutará para foo.1 y
foo.1.0 también. Si por alguna razón desea una acción diferente (o ninguna) para el proyecto
foo.1.0, entonces proporcionarías foo.1.0.pre_ip que hace lo que desea, incluyendo
nada, anulando efectivamente foo.pre_ip.
A continuación se explica cómo mapear lugares particulares en el proceso de integración para enganchar sufijos.
┌───────────────────────────────────────────────── ─┐
│ejecutar en extensión de tiempo │
├───────────────────────────────────────────────── ─┤
│antes de intentar -Integrate_Begin .pre_ib │
│después de que -Integrate_Begin complete .ib │
│antes de intentar -Diff .pre_d │
│después de que -Diff complete .d │
│antes de intentar -Build .pre_b │
│después de que -Build complete .b │
│antes de intentar -Construir .pre_ b │
│después -Construir en completa. b │
│antes de intentar -Test .pre_t │
│después de que se complete la prueba .t │
│antes de intentar -IPass .pre_ip │
│después de que -IPass complete .ip │
│antes de intentar -IFail .pre_if │
│después de que -IFail complete .if │
└───────────────────────────────────────────────── ─┘
El programa de gancho debe salir con 0 si tiene éxito o 1 si no. Una salida distinta de cero provoca
el cambio que se integra fallará inmediatamente a menos que se marque como precioso.
Tenga en cuenta que, en la mayoría de los casos, todo lo que se haga a través de un .ip el gancho probablemente debería hacerse en su lugar por
los ipass_notificar comando en el archivo de atributos del proyecto (ver aepattr(5) para más
información), o la build_time_adjust_notify_command en el archivo de configuración del proyecto
(consulta: aepconf(5) para obtener más información), pero el gancho puede proporcionar una forma temporal de mantener
yendo hasta que se pueda implementar la solución permanente.
Además dos ganchos especiales, aeintegratq.end y aeintegratq.fail, son reconocidos.
Se llaman cuando aeintegratq finaliza una ejecución de la cola. Se llaman con 2 argumentos
como cualquier otro ganchonombre del proyecto cambie el número) aunque tanto el nombre del proyecto como
El número de cambio proporcionado es el último cambio integrado y puede ser menos útil.
Los .end Se llama al gancho si / cuando la ejecución de la cola finaliza y se realiza correctamente. Tenga en cuenta que
esto no significa que no haya fallado ningún cambio, solo que no se produjeron errores en la cola. Este gancho
podría usarse para invocar otra ejecución de cola en un proyecto / rama diferente, o posiblemente incluso
en el mismo proyecto, si otros cambios pueden haber finalizado y / o revisado mientras el primer
ejecución estaba en curso, consulte también el -lazo opción. Estas condiciones surgen con bastante frecuencia con
ingenieros de tiempo flexible. Otro uso del .end gancho es construir automáticamente un nuevo
paquete utilizando el proyecto recién integrado como fuente.
Si se encontraron errores en la cola o falló un cambio que se marcó precioso, Entonces el
.fallar se llama gancho. Un uso obvio de ese gancho sería una página enviada por correo electrónico a la
integrador.
Estrategia or Vaya, vuelva a intentarlo
A veces, un problema de compilación persistente afectará a las integraciones. Esto puede ser muy molesto
si arruina una carrera nocturna, especialmente si la cura es simple cuando ocurre. Ejemplos de
de esto pueden ser tiempos de espera debido a un servidor de datos ocupado u otros errores transitorios. Tenga en cuenta que
esto se aplica solo a -Construir problemas relacionados.
Para hacer frente a tales problemas, el integrador puede proporcionar una estrategia script específico para un
proyecto. Un programa ejecutable debe encontrarse en $ HOME / estrategia. . Los
programa will be run as los integrador con los delta directorio as corriente directorio. Los
programa pueden do any comandos necesario a limpia up y/o diagnosticar los error. If los
guión encuentra los problema a be transitorio y fijable, it salidas lograr (con 0
estado) y aeintegratq will relanzar los -Construir y log los rever. De lo contrario los
guión should salida con a 1 y los el cambio will fallar.
Multi-Arquitectura integraciones
Para proyectos que construyen y prueban en múltiples arquitecturas, aeintegratq requiere
arch_hosts estar instalado y tener disponible al menos una máquina de cada arquitectura
requerido. Esto también es cierto si el host desde el que se ejecuta aeintegratq es de un
arquitectura de la arquitectura de destino del proyecto que se está integrando.
Si desea aprovechar las integraciones automáticas de múltiples arquitecturas, puede
instalar arch_hosts o proporcionar un script más simple que devolverá un nombre de máquina
según arquitectura y tipo de trabajo.
Días Minimos integraciones
proporciona una mínimo capacidad de integración que puede utilizarse por diversas razones. los
término mínimo puede ser un poco contrario a la intuición. Uno podría pensar que significa hacer el mínimo
cantidad de trabajo, sin embargo, en realidad significa utilizar una mínimo de archivos de la línea de base en
poblando el delta directorio. Dado que no se colocan archivos construidos en el delta
directorio, esto normalmente lleva a construir todo en el proyecto desde
sources y, como tal, podría considerarse la más robusta de las compilaciones.
Tenga en cuenta que cualquier cambio que elimine un archivo, ya sea por aire or aemv, da como resultado un
implícitamente mínimo integración. Esto está destinado a garantizar que no haya nada en el proyecto.
hace referencia al archivo eliminado.
Un proyecto puede adoptar una política según la cual el lanzamiento de un producto debe basarse en un mínimo
integración. Tal política puede ser un reflejo de la confianza local, o la falta de ella, en
DMT (herramienta de mantenimiento de dependencias) del proyecto o sistema de compilación. O puede estar basado en un
proceso de validación que desee hacer una declaración simple sobre cómo se publicó el paquete
producido.
Otra razón, más transitoria, para requerir una integración mínima podría ser cuando
actualizar una biblioteca, un compilador o incluso un sistema operativo de terceros. Cualquiera de estos eventos
señalaría la necesidad de una integración mínima para garantizar que todo se reconstruya utilizando el
nuevos recursos. Esto se puede hacer con una sobrecarga mínima utilizando el -M opción como se describe
anterior.
El costo de un mínimo la integración varía según el tipo y tamaño del proyecto. Para
proyectos muy grandes, especialmente aquellos que construyen una gran cantidad de binarios, el costo puede ser
grande. Sin embargo, los proyectos grandes también requieren un tiempo significativo para poblar completamente el delta
directorio. Una integración mínima solo copia aquellos archivos bajo el control de la égida, omitiendo
todos los archivos "producidos". En el caso de que se cambie un archivo del que todo depende,
todo se construirá de todos modos, por lo que la copia de los archivos ya construidos es un desperdicio de
tiempo. Esto significa que a veces un mínimo puede ser tan económico como una integración normal.
Manual Examenes
permite definir las pruebas como manual que puede ser necesario si la prueba requiere humanos
interacción o algún recurso transitorio. Estas pruebas pueden ser problemáticas para las
integraciones y, en general, debe tener algún medio para pasar sin ejecutarse durante
integraciones. Por esta y otras razones, la mayoría de los sitios buscan evitar manual pruebas. Allí
Hay varias formas de codificar una prueba de modo que pase automáticamente durante
integraciones. Solo un ejemplo de pruebas de script de shell podría ser:
CSTATE = `aesub -p $ AEGIS_PROJECT -c $ AEGIS_CHANGE '$ {estado}'`
si ["$ CSTATE" = "being_integrated"]
después
echo "` basename $ 0` pasa durante la integración "
salir de 0
fi
Opcional Soporte Programas
Hay algunos programas que utilizará aeintegratq si están instalados.
· arch_hosts se mencionó anteriormente. Es opcional solo si sus proyectos y su
el servidor de archivos es de una sola arquitectura.
· aelogres puede mejorar la información proporcionada en -Yo fallo entradas. Normalmente todo lo que obtienes
son las últimas 10 líneas del archivo de registro, lo cual no está mal si las pruebas fallan, pero puede ser terrible
para compilaciones fallidas. Si proporciona un programa llamado aelogres que sabe extraer un
informe de problemas mejor conciso, la salida de ese programa se utilizará en lugar de
la cola simple. Se llama con un -i .
· sonido_todas_las_maquinas, si está disponible, se llamará cuando las integraciones pasen o fallen.
Puede resultar útil anunciar el hecho de que ha finalizado una integración. Si pasó
los desarrolladores probablemente querrán hacer una AED para actualizar sus cambios. El audio
El anuncio proporciona otra pista oportuna.
Los archivos de sonido se buscan en el directorio / var / lib / aegis / sounds. Ellos tendrán
finales de _pass y _fallar de acuerdo con los resultados de un intento dado. Dos archivos de sonido
son requeridos: integración_pass y error_integración. Otros se utilizarán si se proporcionan a
personalice los sonidos para que cada desarrollador pueda tener uno o más sonidos personales. Si un
archivo llamado _aprobar se encuentra, se utilizará. Si existe un conjunto de archivos con el nombre
<contraseña_desarrollador.[0-9] se utilizarán en secuencia aleatoria. Se aplica la misma regla de búsqueda
a _fallar conjuntos. los sonido_todas_las_maquinas El programa puede usar una lista de hosts y reproducir el sonido.
archivo en cada máquina o, suponiendo que existan otras capacidades de audio, podría hacer cualquier forma
de anuncio deseado.
SALIR ESTADO
Los aeintegratq El comando saldrá con un estado de 1 en cualquier error. los aeintegratq
El comando solo saldrá con un estado de 0 si no hay errores.
MEDIO AMBIENTE VARIABLES
See égida(1) para obtener una lista de variables de entorno que pueden afectar este comando. Ver
aepconf(5) para el archivo de configuración del proyecto Proyecto específico campo para saber cómo configurar
variables de entorno para todos los comandos ejecutados por Aegis.
Utilice aeintegratq en línea utilizando los servicios de onworks.net