deployment build-automation teamcity teamcity-7.0

deployment - TeamCity Build & Deploy: ¿Cómo se pasan las rutas de artefactos dependientes a un script?



build-automation teamcity-7.0 (1)

Hacemos algo como esto. No está claro al 100%, pero parece que desea realizar la compilación y la implementación como dos compilaciones separadas en TeamCity con una dependencia de artefactos de la compilación de la implementación principal, que es exactamente lo que hacemos. Así es como lo hacemos.

  • Configura tus artefactos a partir de la construcción principal que parece que ya lo has hecho.

    Example: **/bin/release/*.* => bin

  • Configure la dependencia de artefactos (también hacemos una dependencia instantánea, pero no tiene que hacerlo) para extraer sus artefactos de la compilación principal y colocarlos en una carpeta local en su compilación de implementación.

    Example: Artifacts paths: bin/**/*.* Destination path: bin/

  • Utilizamos una combinación de MSBuild y PowerShell para realizar el trabajo de implementación real. En cada caso, puede hacer referencia a los artefactos utilizando una ruta relativa.

    SI la carpeta de trabajo de construcción se ve así:

    root |- bin (Artifacts pulled in from main build) |- src |- build (Where your build and deployment scripts live)

    Accederá a los archivos bin desde su script de implementación ubicado en la carpeta de compilación como:

    ../bin/[your files]

A continuación, puede pasar la ruta a sus artefactos de construcción como este

%teamcity.build.checkoutDir%/bin/

¿Cómo se pasan las rutas de artefactos a un script en TeamCity? El escenario es este

  1. Proyecto de construcción
  2. Implementar proyecto (con una dependencia de artefacto a # 1)

El paso 2 consiste en un script que

  1. Detiene un servicio (para desbloquear archivos)
  2. Copia los artefactos de compilación al servidor.
  3. Reinicia el servicio.

Estoy luchando con el paso 2, me imagino que necesito pasar la ruta de los artefactos de compilación al script pero ¿no puedo ver cómo lo haces?