2009-03-14 15 views
8

¿Hay un complemento buildbot que sondeará un repositorio git para nuevas confirmaciones, como el changes.SVNPoller actualmente incluido?¿Buildbot poll es un repositorio git para nuevas confirmaciones?

Lo más parecido que he encontrado es git_buildbot.py, pero funciona como un enganche post-commit, por lo que no funcionará con mi configuración (usando Github y buildbot en una máquina que no puede alcanzar la post-confirmación de github) simplemente sondeando la El repositorio de git funcionaría perfectamente.

Actualmente tengo una acumulación de ejecución una vez por hora, pero no hay realmente ninguna razón para ejecutar las pruebas a menos que algo ha cambiado ..

Respuesta

9

Actualización: Las personas amables en el proyecto Buildbot han convertido al GitPoller en una Fuente de cambio oficial a partir de la versión 0.8.2, e hicieron varias mejoras al original.


Nuestra empresa se encuentra en una situación similar en el que los ordenadores de desarrollo no pueden ser alcanzados por el gancho post-commit de GitHub. He escrito una fuente de cambio GitPoller que se puede usar como SVNPoller.

Se puede encontrar aquí: http://github.com/wimba/buildbot/blob/master/buildbot/changes/gitpoller.py

y se utiliza de esta manera:

from buildbot.changes.gitpoller import GitPoller 
c['change_source'] = GitPoller('[email protected]:foobaz/myrepo.git', 
           branch='great_new_feature') 

Se va a crear un repo local para trabajar fuera de (ubicación configurable), y que sólo ha sido probado con git 1.7 por lo Su experiencia puede ser diferente.

Es de esperar que se detuvo en el proyecto Buildbot adecuada en algún momento, pero ha estado trabajando para nosotros hasta ahora y la esperanza de que puede ser de utilidad para otros :)

1

yo no he jugado con buildbot a todos, pero no podía hacer una git fetch y luego mira la salida de git log master..origin/master? Si no hay nuevas confirmaciones, la salida estará vacía (hay, por supuesto, un montón de otras opciones que puede usar en git log). Si hay nuevas confirmaciones, simplemente haz un git merge y comienza tu ciclo de compilación/prueba.

0

Me gusta el enfoque gitpoller.py pero al el momento en que lo encontré es un poco limitado (por ejemplo, no envía revisiones, argumentos del proyecto) así que encontré una solución diferente:

Tengo mi propio repositorio clonado desde el control remoto y git_buildbot.py llamado por el gancho post-fusión (como descrito en git_buildbot.py). Tengo un pequeño bucle durmiendo y git tirando de ese repositorio que activará el gancho post-fusión.

Cuestiones relacionadas