¿Buildbot poll es un repository git para nuevos commits?

¿Hay un plugin buildbot que sondeará un repository git para nuevas confirmaciones, como los changes.SVNPoller actualmente incluidos.SVNPoller?

Lo más cerca que he encontrado es git_buildbot.py , pero funciona como un enganche post-commit, por lo que no funcionará con mi configuration (usando Github y buildbot en una máquina que el post-commit de github no puede alcanzar) simplemente sondeando el repository de git funcionaría perfectamente

Actualmente tengo una ejecución de compilation una vez por hora, pero no tiene ningún sentido ejecutar las testings a less que algo haya cambiado.

Actualización: La gente amable en el proyecto Buildbot ha convertido al GitPoller en una fuente de cambio oficial a partir de la versión 0.8.2, e hizo varias mejoras al original.


Nuestra empresa se encuentra en una situación similar en la que no se puede acceder a nuestras máquinas de compilation mediante el gancho post-commit de GitHub. He escrito una fuente de cambio de GitPoller que puede usarse como SVNPoller .

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

y usado así:

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

Creará un repository local para trabajar (location configurable), y solo ha sido probado con git 1.7 por lo que su kilometraje puede variar.

Esperemos que se incorpore en el proyecto Buildbot propiamente dicho en algún momento, pero hasta ahora ha funcionado para nosotros y esperamos que pueda ser útil para otros 🙂

No he jugado con buildbot en absoluto, pero ¿no podrías hacer una git fetch y luego mirar 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 el git log ). Si hay nuevos commits, simplemente haz una git merge e inicia tu ciclo de compilation / testing.

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

Tengo mi propio repository clonado desde el control remoto y git_buildbot.py invocado por el enlace posterior a la fusión (como se describe en git_buildbot.py). Tengo un pequeño bucle durmiendo y git tirando de ese repository que activará el gancho post-fusión.

    Intereting Posts