La implementación de Octopus de Teamcity no usa los últimos paquetes
octopus-deploy (6)
He configurado un paso de compilación en TeamCity, como se describe here , para realizar implementaciones de lanzamiento automáticas en nuestro servidor de prueba. Pero no está utilizando los últimos paquetes nuget que se crearon en TeamCity.
Caso de uso:
Teamcity creará un paquete nuget con la versión 1.0.0.9, todos los archivos DLL que se encuentran en el paquete son la versión correcta, y el lanzamiento en Octopus, que se implementó, tiene el mismo número de versión, pero los paquetes que usa Octopus son anteriores paquete, por ejemplo, 1.0.0.5.
He especificado el parámetro --force en el paso de compilación, por lo que debería usar los paquetes más recientes, pero no lo es.
Si creo manualmente un lanzamiento en Octopus, y selecciono los últimos paquetes, está funcionando al 100%
Por favor, ¿alguien puede decirme si me falta algo?
gracias por adelantado
Creo que lo que debe hacer es crear dos configuraciones de compilación en TeamCity, una para compilar y otra para desplegar con Octopus. Consulte este enlace que tiene una pequeña propaganda hacia el final:
Note that NuGet packages created from your build won''t appear in TeamCity until after the build completes. This means you''ll usually need to configure a secondary build configuration, and use a snapshot dependency and build trigger in TeamCity to run the deployment build configuration after the first build configuration completes.
Entonces, en mi caso, creé 2 configuraciones de compilación, luego configuré una dependencia de instantáneas desde la compilación a la configuración de implementación y también un disparador para iniciar la implementación después de una compilación exitosa.
En TeamCity utilizo un paso Octo Push Packages y en el campo Parámetros adicionales especifico el parámetro --defaultpackgeversion {VERSION}.
Esto obligará a Octo a usar una versión específica de los paquetes en lugar de simplemente elegir la "Versión más reciente".
Hay más razones posibles para el problema.
Para ver los problemas con Octopus, vaya a
Configuration -> Diagnostics
Otro problema común es usar un Nombre de paquete
#{variable}
en un paso de implementaciónActualmente no es posible y el Nombre del paquete debe configurarse manualmente, por ejemplo,
MyWebSite
oMyWindowsService
. Vea UserVoice para esta característica.
Mi organización utiliza Jenkins CI. Usamos el número de compilación único como la versión de nuestro paquete y luego implementamos esa versión del paquete específico usando el parámetro --packageversion.
En el caso de que tengamos múltiples servicios que necesiten ser implementados. Tenemos un trabajo principal / trabajo principal que proporciona el número de compilación único.
Me imagino que puedes hacer lo mismo con TeamCity
El trabajo maestro (número de compilación único) llama a los trabajos A y los trabajos B con parámetro (compilación única). Trabajos A y B construyen la versión (del trabajo principal). Los trabajos A y B completan luego publican sus respectivas versiones.
Parece que --force es solo para forzar que los paquetes se vuelvan a instalar si ya se han instalado. ¿Estás usando el parámetro --packageversion?
Podrían ser unas cuantas cosas.
Revisa.
http://octopusdeploy.com/documentation/integration/teamcity
No has mencionado cómo consumes los feeds de Octopus en Teamcity. Yo empezaría allí.
A continuación, usaría la acción teamcity para realizar su despliegue. Preguntó: "¿Dónde debería agregarse el indicador --waitfordeployment?" Hay una casilla de verificación para asegurarse de que el despliegue haya funcionado antes de que la acción pueda continuar.