Suponiendo que el siguiente git se confirma en el maestro (usamos requestes de extracción, pero a continuación es más sencillo reproducir el problema):
$ git clone <my_repo> my_repo $ cd my_repo $ git checkout master $ for delta in 17 34 68; do # touch & commit a file and then sleep for $delta f=$(date +%H%M%S)-$delta # hhmiss dateformat touch $f git add $f git commit $f -m"timestamped file $f" sleep $delta done $ git push origin
Y hay un generador con un GitPoller
con pollInterval=60, usetimestamps=False
Este impulso da como resultado 2 comstackciones que se activan:
Me gustaría configurar buildbot (0.8.10) de modo que para un empuje (o request de fusión) solo haya una generación activada.
Lo que he visto hasta ahora:
pollInterval
es agradable, pero con una request de fusión, potencialmente toneladas de commits entran en dominio en poco time Use un progtwigdor que tenga treeStableTimer
establecido en el lapso de time durante el cual desea que el planificador espere hasta que el tree ya no cambie. Por ejemplo, SingleBranchScheduler
admite. Se describe de la siguiente manera:
treeStableTimer
El progtwigdor esperará por tantos segundos antes de comenzar la compilation. Si se realizan nuevos cambios durante este intervalo, el timer se reiniciará, por lo que en realidad la compilation se iniciará después de un cambio y luego de estos muchos segundos de inactividad.
Si
treeStableTimer
esNone
, se inicia una compilation por separado para cada cambio.
Yo uso SingleBranchScheduler
con un timer de 5 minutos, y funciona muy bien. Mientras me comprometo, no se inicia la construcción. Si me detengo durante 5 minutos, comienza una construcción.
Yo también uso git pero esta solución debería funcionar con cualquier sistema de control de versiones.