teamcity octopus-deploy

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.

  1. Para ver los problemas con Octopus, vaya a Configuration -> Diagnostics

  2. Otro problema común es usar un Nombre de paquete #{variable} en un paso de implementación

    Actualmente no es posible y el Nombre del paquete debe configurarse manualmente, por ejemplo, MyWebSite o MyWindowsService . 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.