No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Automatización de Pipelines en Azure DevOps para Node.js

15/20
Recursos

¿Cómo crear un Pylance en Azure DevOps?

Hemos avanzado en el proceso de crear un pylance utilizando Azure DevOps, una herramienta fundamental para la integración y entrega continua de aplicaciones. Es esencial tener acceso a los agentes o máquinas virtuales de Azure DevOps, los cuales ejecutan los comandos automáticamente en nuestras aplicaciones. A continuación, te explicaré cómo hemos gestionado la creación y ejecución de un pylance para una aplicación Node con REAP.

¿Qué necesitamos para comenzar?

  1. Acceso a Azure DevOps: Utiliza una cuenta con acceso adecuado a los agentes de Azure DevOps. Para esto, puede ser necesario llenar un formulario y esperar de dos a tres días hábiles para la aprobación.

  2. Configuración de Node: Asegúrate de estar trabajando con una versión actualizada de Node, en nuestro caso usamos Node 16.15.

¿Cómo guardar y ejecutar el Pylance?

Antes de ejecutar, es fundamental guardar el archivo azurepylance.yml dentro del repositorio. Esto permite:

  1. Ejecutar todos los comandos de integración continua de manera automatizada.
  2. Monitorear el inicio de la ejecución y seguir el progreso de las tareas configuradas.
# Ejemplo de configuración en azurepylance.yml
trigger:
  branches:
    include:
      - master

pool:
  vmImage: 'ubuntu-latest'

steps:
- task: NodeTool@0
  inputs:
    versionSpec: '16.15'
  displayName: 'Install Node.js'

¿Cómo agregar y ejecutar nuevos scripts?

Para aprender a ejecutar diferentes scripts, separamos npm install de npm run build. Aunque no es una práctica común, nos ayuda en este proceso educativo.

- script: |
    npm install
  displayName: 'npm install'

- script: |
    npm run build
  displayName: 'npm run build'

¿Cómo preparar el paquete de publicación?

  1. Copia de archivos: Creamos una tarea para copiar los archivos generados durante la compilación a una carpeta de staging.
- task: CopyFiles@2
  inputs:
    SourceFolder: '$(Build.SourcesDirectory)/build'
    Contents: '**'
    TargetFolder: '$(build.artifactstagingdirectory)'
  1. Compresión de archivos: Utilizamos un archivo .zip para compilar los archivos de la aplicación.
- task: ArchiveFiles@2
  inputs:
    rootFolderOrFile: '$(build.artifactstagingdirectory)'
    includeRootFolder: true
    archiveType: 'zip'
    archiveFile: '$(build.artifactstagingdirectory)/$(Build.BuildId).zip'
  1. Publicación: Finalmente, publicamos este archivo para que otras secciones de Azure DevOps puedan usarlo, especialmente para la sección de releases que usaremos más adelante.
- task: PublishBuildArtifacts@1
  inputs:
    PathtoPublish: '$(build.artifactstagingdirectory)'
    ArtifactName: 'drop'
    publishLocation: 'Container'

¿Qué consideraciones adicionales debemos tener?

Azure DevOps ofrece amplias funcionalidades, desde la ejecución de pruebas unitarias hasta el análisis de calidad del código mediante SonarQ. Aunque nuestro ejemplo es básico, estas herramientas pueden ser integradas para proyectos más avanzados.

Consejos para continuar el aprendizaje

Te animo a experimentar con diferentes configuraciones y opciones que Azure DevOps ofrece. La práctica y exploración te permitirán optimizar este tipo de procesos, hacerlos más robustos, e incluso automatizar tareas repetitivas eficientemente​. Además, ¡No dudes en consultar la documentación de Azure DevOps para descubrir todo su potencial!

¡Ánimo y sigue aprendiendo!

Aportes 13

Preguntas 14

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Código utilizado en clase:

- script: |
    npm install
  displayName: 'npm install'
  
- script: |
    npm run build
  displayName: 'npm run build'
  
- task: CopyFiles@2
  inputs:
    Contents: 'build/**'
    TargetFolder: '$(build.ArtifactStagingDirectory)'

- task: ArchiveFiles@2
  inputs:
    rootFolderOrFile: '$(Build.ArtifactStagingDirectory)'
    includeRootFolder: true
    archiveType: zip
    archiveFile: '$(Build.ArtifactStagingDirectory)/$(Build.BuildId).zip'
    replaceExistingArchive: true

- task: PublishBuildArtifacts@1
  inputs:
    PathtoPublish: '$(Build.ArtifactStagingDirectory)'
    ArtifactName: 'drop'

Cordial saludo

  • task: PublishBuildArtifacts@1
    inputs:
    PathtoPublish: '$(Build.ArtifactStagingDirectory)'
    ArtifactName: ‘drop’
    #publishLocation: 'Container’
    Es posible comentariar líneas en nuestro task utilizando #

El error como se soluciono… ???

# Node.js with React
# Build a Node.js project that uses React.
# Add steps that analyze code, save build artifacts, deploy, and more:
# https://docs.microsoft.com/azure/devops/pipelines/languages/javascript

trigger:
- master

pool:
  vmImage: ubuntu-latest

steps:
- task: NodeTool@0
  inputs:
    versionSpec: '10.x'
  displayName: 'Install Node.js

- script: |
    npm install
  displayName: 'npm install'
  
- script: |
    npm run build
  displayName: 'npm run build'
  
- task: CopyFiles@2
  inputs:
    Contents: 'build/**'
    TargetFolder: '$(Build.ArtifactStagingDirectory)'

- task: ArchiveFiles@2
  inputs:
    rootFolderOrFile: '$(Build.ArtifactStagingDirectory)'
    includeRootFolder: true
    archiveType: zip
    archiveFile: '$(Build.ArtifactStagingDirectory)/$(Build.BuildId).zip'
    replaceExistingArchive: true

- task: PublishBuildArtifacts@1
  inputs:
    PathtoPublish: '$(Build.ArtifactStagingDirectory)'
    ArtifactName: 'drop'
Hay un curso o algo mas enfocado a los PipeLines ? gracias!
A dia de hoy que ando haciendo el curso si se deja la version mas actual de node generara error el pipeline debido a la version del proyecto, me funciona dejando la version 16 en el archivo :D
Si al ejecutar el Pipeline les sale el siguiente error: error]Bash exited with code '1' Lo solucionan poniendo la linea export NODE\_OPTIONS=--openssl-legacy-provider en el archivo en la parte de script script: |    export NODE\_OPTIONS=--openssl-legacy-provider    npm install     npm run build   displayName: 'npm install and build'
Mis cambios: ![](https://static.platzi.com/media/user_upload/image-1c32f905-27c1-42fe-97aa-2f15baf62348.jpg)
asi que esperen de 2 a 3 dias para continuar con el curso xd
Buen día, tengo el siguiente inconveniente, en Azure DevOps, en la pestaña de pipeline me aparece solo 3 opciones que son pipelines, enviroments y library ![introducir la descripción de la imagen aquí](https://i.stack.imgur.com/mb3HO.png) pero deberian salirme mas opciones pipelines, enviroments, releases, library, task groups, deployment groups y xaml ![introducir la descripción de la imagen aquí](https://i.stack.imgur.com/t2XUJ.png) ¿saben que cual puede ser el error? Que debe tener mi organización, proyecto o repositorio para que aparezcan las opciones faltantes
Buenos dias, me esta saliendo el siguiente error despues de editar el pipeline, ; Encountered error(s) while parsing pipeline YAML: /azure-pipelines.yml (Line: 20, Col: 17): While parsing a block mapping, did not find expected key. a que puede deberse ?

si tienen el error de digital envelope routines::unsupported, solo tienen que agregar el comando

export NODE_OPTIONS=--openssl-legacy-provider

al pipeline antes de ejecutar el comando build aunque esto solo es una solución temporal, les dejo el hilo en stack si quieren mas info.
https://stackoverflow.com/questions/69692842/error-message-error0308010cdigital-envelope-routinesunsupported

No carga el video