Faltan confirmaciones en el repository en el contenedor CircleCI

Estoy usando CircleCI para build un proyecto privado Android Github. Funciona bien, pero el historial de confirmación de origin/master en el contenedor es diferente de lo que obtengo en mi máquina local.

Hice una salida diff b / w de git rev-list origin/master en mi máquina y contenedor local y encontré bastantes diferencias, es decir, faltan commits en el repository en el contenedor.

Intenté clonar el proyecto de Github a mi máquina local y me mostró el mismo historial de commit de git (recuento correcto de confirmaciones), ¿CircleCl está haciendo algo diferente?

CircleCI 1.0 hace un clon superficial, que está causando lo que ves.

Antes de clonar un repository, CircleCI comtesting si hay un "caching fuente" disponible. Si es así, lo usa para recrear .git/ . Luego, en CircleCI 1.0, se realiza un clon superficial. En CircleCI 2.0 (en beta), se realiza un clon estándar. Luego, se trabaja para llegar a la confirmación / label correcta.

Si desea convertir el repository en CircleCI 1.0 en uno insípido, el siguiente command hace el truco:

 "[[ ! -s \"$(git rev-parse --git-dir)/shallow\" ]] || git fetch --unshallow" 

En 1.0, la memory caching de origen se guarda después de la fase de dependencies , por lo que sugiero no hacer esto después de esa fase para que la memory caching se pueda mantener de manera eficiente. Para 2.0, se guarda cuando se save_cache paso save_cache .

-Ricardo N Feliciano
Desarrollador Evangelist, CircleCI

Como @ElpieKay mencionó en los comentarios, esto tiene que ver con CircleCI, la clonación superficial del repository. Consulte https://github.com/prontolabs/pronto/issues/103 para la configuration de circle.yml para la clonación completa. Por ejemplo, lo hice:

 checkout: post: - "[[ ! -s \"$(git rev-parse --git-dir)/shallow\" ]] || git fetch --unshallow"