Tenemos un repositorio de Git en TFS (2017.3) y nuestras compilaciones se ejecutan en Jenkins.
Queremos implementar en la Solicitud de extracción una validación de compilación, por lo que creamos una definición de compilación que pone en cola un trabajo de Jenkins y en los “Parámetros del trabajo” ingresamos
BRANCH=$(System.PullRequest.SourceBranch)
:
El problema es que en el paso TFS Get Sources, TFS crea una rama fusionada temporalmente para verificar el PR, pero el System.PullRequest.SourceBranch
devuelve la rama de origen de PR (por ejemplo, la rama de funciones) y no la rama fusionada, por lo que el trabajo de Jenkins se ejecuta en la rama de origen y no comprueba el PR.
¿Podemos enviar a Jenkins la rama fusionada o debemos hacer la fusión en el trabajo de Jenkins?
ACTUALIZAR:
Veo que la variable Build.SourceBranch
devuelve la rama fusionada pero parece que el trabajo de Jenkins no conoce esta rama. Revisé ahora en el agente y el Git está en HEAD separado, por lo que asumo que no hay opción para obtener desde fuera del agente (incluso si el agente se creó en una nueva sucursal: “sucursal fusionada” es solo local). ¿alguna idea?
Solo un tiro ciego, ¿podría ser que hay espacios en el nombre de la sucursal? No estoy seguro de cómo la expansión
BRANCH=$(...)
resulta sin comillas en ese caso.– David
04 feb. 19 en 15:21
Hola David, no hay espacios en la rama 🙁
– Shayki Abramczyk
04 feb. 19 a las 15:25