Esta guía le enseña a compilar proyectos Python con TeamCity, y se recomienda a desarrolladores totalmente nuevos en TeamCity.
Requisitos previos
We recommend that you have a basic understanding of Python and PyTest.
Para obtener más información, consulte la documentación de Python.
Si TeamCity se conecta correctamente a su repositorio, verá el siguiente diálogo.
En el cuadro de diálogo Create Project From URL tiene la opción de cambiar el nombre del proyecto y el nombre de la configuración de compilación inicial.
Nota: En las versiones más recientes de TeamCity también verá los campos Default branch y Branch specification, que le permiten especificar qué ramas debe compilar TeamCity. Ignórelos por ahora.
Al hacer clic en Proceed, TeamCity escanea automáticamente su repositorio de control de versiones en busca de tecnologías compatibles, en este caso Python.
Cuando TeamCity detecta un archivo .py en su repositorio, automáticamente sugiere uno o más pasos de compilación para su proyecto. Para el repositorio utilizado en este tutorial, esos pasos de compilación autodetectados ejecutarían sus archivos main.py o setup.py, lo que podría no ser lo que usted desea.
Más bien, tiene sentido que se añadan los siguientes pasos de compilación a su proyecto de Python por defecto:
En lugar de elegir uno de los pasos de compilación autodetectados, vamos a añadir estos dos pasos de compilación a su proyecto.
Comenzará añadiendo un paso Flake8 linting a su proyecto de TeamCity.
Si ha creado su paso de compilación correctamente, verá el siguiente diálogo.
A continuación, vamos a añadir un paso de PyTest a su proyecto.
Ya puede ejecutar sus primeras compilaciones.
Nota: Si está utilizando TeamCity Cloud, podría tardar hasta un par de minutos hasta que un agente de compilación esté disponible. Durante este tiempo, su compilación esperará en la cola hasta que un agente disponible la recoja.
Si está usando TeamCity On-Premises con agentes de compilación locales, su compilación comenzará inmediatamente.
Una vez que se inicie su compilación, se le redirigirá a la página de resumen de la compilación con la pestaña Build Log abierta, que muestra en tiempo real los datos relacionados con su compilación.
En cuanto se haya ejecutado la compilación, se le redirigirá a la página de resumen de la compilación. Ahora puede echar un vistazo a los resultados de las pruebas y las inspecciones, o examinar el registro de compilación completo desde la página de resumen de la compilación.
Ahora que su repositorio Python está conectado a TeamCity, puede continuar desarrollando y lanzando su código a su repositorio.
De forma predeterminada, TeamCity sondeará la rama principal de su repositorio VCS cada 60 segundos en busca de cambios entrantes y desencadenará una compilación (combinada) para todas las confirmaciones detectadas.
Si desea activar una compilación por cada cambio en cualquier rama de su repositorio, no solo en la rama principal, añada una especificación de rama comodín a su configuración de VCS Root. Tenga en cuenta que las configuraciones VCS pertenecen al proyecto TeamCity, no a una única configuración de compilación. Por lo tanto, cualquier cambio que realice se aplicará a todas las configuraciones de compilación que utilicen la misma raíz VCS.
Ejemplo de especificaciones de rama:
+:refs/heads/*
: TeamCity comprobará los cambios en todas las ramas de sus proyectos, pero no comprobará las solicitudes de incorporación de cambios en plataformas como GitHub, ya que coinciden con refs/pull/*
. +:*
: TeamCity comprobará cualquier cambio entrante en cualquier rama. TeamCity supervisará todas las ramas que se ajusten a su especificación de rama y se lancen a su repositorio en busca de cambios entrantes, y ejecutará compilaciones según corresponda.
Si desea que TeamCity compile automáticamente las solicitudes de incorporación de cambios a su repositorio, puede añadir la función de compilación de solicitudes de incorporación de cambios a su configuración de compilación.
Nota: La función de compilación de Pull Request amplía de forma transparente la especificación de la rama (véase el paso anterior para más información). Por ejemplo, en el caso de GitHub, la función de solicitud de incorporación de cambios añadirá (de forma invisible) +:refs/pull/*
a su especificación de rama.
Recomendamos que se asegure de que las ramas de solicitud de incorporación de cambios no se incluyan en su especificación de rama general cuando se utilice la función de solicitud de incorporación de cambios, porque de lo contrario las funciones relacionadas con la solicitud de incorporación no estarán disponibles en TeamCity.
TeamCity comprobará ahora la plataforma externa en busca de solicitud de incorporación de cambios y lanzará una compilación para aquellos que coincidan con sus reglas de configuración.
Nota: Debe utilizar esta función con precaución en los repositorios públicos, ya que cualquiera podría introducir código dañino en el repositorio (que usted no querría compilar).
When using the pull requests feature in combination with Azure DevOps, Bitbucket Server, GitHub, or GitLab, it also makes sense to use the Commit Status Publisher build feature. Esta función actualizará el estado de la solicitud de incorporación de cambios en la plataforma correspondiente con los resultados de la compilación.
Para configurar TeamCity para que informe de los resultados de la compilación a GitHub, tendrá que seguir estos pasos:
Después de que TeamCity ejecute una compilación, ahora podrá ver fácilmente si los cambios causaron un fallo de compilación directamente desde la pestaña Pull Request en GitHub (marca de verificación verde).