Compartir vía


Compilación y publicación de un paquete de Node.js

Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2019

Puede compilar, probar e implementar aplicaciones Node.js como parte del sistema de integración continua y entrega continua (CI/CD) de Azure Pipelines. Aprenda a usar una canalización para crear un paquete de Node.js con el Administrador de paquetes de Node (npm) y publicar un artefacto de canalización.

La canalización de ejemplo automatiza el proceso de compilación, prueba y empaquetado de una aplicación Node.js, permitiéndola estar lista para su posterior implementación o distribución.

Requisitos previos

Producto Requisitos
Azure DevOps - Un proyecto de Azure DevOps .
- Tener la capacidad de ejecutar canalizaciones en agentes hospedados por Microsoft. Puede comprar un trabajo paralelo o solicitar un nivel gratuito.
- Conocimientos básicos de YAML y Azure Pipelines. Para obtener más información, consulte Creación de su primera canalización.
- Permisos:
     - Para crear una canalización: debe estar en el grupo de usuarios Colaboradores y el grupo de usuarios debe tener el permiso Crear canalización de compilación configurado en Permitir. Los miembros del grupo Administradores de proyectos pueden administrar canalizaciones.
    - Para crear conexiones de servicio: debe tener el rol Administrador o Creador para las conexiones de servicio.
GitHub - Una cuenta de GitHub .
- Una conexión de servicio de GitHub para autorizar Azure Pipelines.
Azure Una suscripción de Azure.
Producto Requisitos
Azure DevOps - Un proyecto de Azure DevOps .
- Un agente autohospedado. Para crear uno, consulte Agentes autohospedados.
- Conocimientos básicos de YAML y Azure Pipelines. Para obtener más información, consulte Creación de su primera canalización.
- Permisos:
    - Para crear una canalización: debe estar en el grupo de usuarios Colaboradores y el grupo de usuarios debe tener el permiso Crear canalización de compilación configurado en Permitir. Los miembros del grupo Administradores de proyectos pueden administrar canalizaciones.
    - Para crear conexiones de servicio: debe tener el rol Administrador o Creador para las conexiones de servicio.
GitHub - Una cuenta de GitHub .
- Una conexión de servicio de GitHub para autorizar Azure Pipelines.
Azure Una suscripción de Azure.

Hacer un fork del código de ejemplo

Haga un fork de la aplicación de servidor de muestra Express.js.

  1. Vaya al repositorio js-e2e-express-server .
  2. Seleccione Bifurcar en la esquina superior derecha de la página.
  3. Seleccione la cuenta de GitHub. De forma predeterminada, la bifurcación se denomina igual que el repositorio primario, pero puede asignarle un nombre diferente.

Importante

Durante los procedimientos siguientes, es posible que se le pida que cree una conexión de servicio de GitHub o se le redirija a GitHub para iniciar sesión, instalar Azure Pipelines o autorizar Azure Pipelines. Siga las instrucciones de la pantalla para completar el proceso. Para más información, consulte Acceso a repositorios de GitHub.

Cree la canalización

  1. En el proyecto de Azure DevOps, seleccione Canalizaciones>Crear Canalización y, a continuación, seleccione GitHub como la ubicación de su código fuente.
  2. En la pantalla de Seleccionar un repositorio, seleccione su repositorio de ejemplo forkeado.
  3. En la pantalla Configurar su canalización, seleccione Canalización inicial. Azure Pipelines genera un archivo YAML denominado azure-pipelines.yml para la canalización.
  4. Seleccione el desplegable junto a Guardar y ejecutar, seleccione Guardar y, a continuación, seleccione Guardar de nuevo. El archivo está guardado en tu repositorio de GitHub bifurcado.
  5. En la pantalla siguiente, seleccione Editar.

Compilación del paquete y publicación de un artefacto

Edite el archivo azure-pipelines.yml como se indica a continuación.

  1. Reemplace el contenido del archivo por el código siguiente.

    trigger:
      - main
    
    pool:
      vmImage: 'ubuntu-latest'
    
    variables:
      nodeVersion: '18.x'
    
    steps:
      # Install Node.js
      - task: UseNode@1
        inputs:
          version: $(nodeVersion)
        displayName: 'Install Node.js'
    
      # Install dependencies
      - script: |
          npm install
        displayName: 'Install dependencies'
    
      # Build the project
      - script: |
          npm run build
        displayName: 'Build project'
    
      # Run tests
      - script: |
          npm test
        displayName: 'Run tests'
    
      # Copy project files to artifact staging directory
      - task: CopyFiles@2
        inputs:
          sourceFolder: '$(Build.SourcesDirectory)'
          contents: |
            src/**
            public/**
          targetFolder: '$(Build.ArtifactStagingDirectory)'
        displayName: 'Copy project files'
    
      # Publish pipeline artifact
      - task: PublishPipelineArtifact@1
        inputs:
          artifactName: 'nodejs-app'
          targetPath: '$(Build.ArtifactStagingDirectory)'
        displayName: 'Publish pipeline artifact'
    

En el pipeline actualizado, harás lo siguiente:

  • Instalar Node.js: la tarea UseNode@1 instala la versión de Node.js especificada (18.x).
  • Instalar dependencias: el comando npm install instala las dependencias necesarias para el proyecto de Node.js.
  • Compilar el proyecto: el comando npm run build compila el proyecto de Node.js.
  • Ejecutar pruebas: el comando npm test ejecuta el conjunto de pruebas del proyecto.
  • Copiar archivos: la tarea CopyFiles@2 copia los archivos de proyecto necesarios (por ejemplo, src/** y public/**) en el directorio de almacenamiento provisional del artefacto.
  • Publicar artefacto de canalización: la tarea de PublishPipelineArtifact@1 publica los archivos desde el directorio de almacenamiento provisional del artefacto como un artefacto de canalización llamado nodejs-app.

Ejecución de la canalización

Seleccione Validar y guardar y, a continuación, Guardar, Ejecutar y Ejecutar de nuevo.

Una vez ejecutada la canalización, compruebe que el trabajo se ejecutó correctamente y que ve un artefacto publicado.

Captura de pantalla de la ejecución correcta de la canalización con un artefacto.

Enhorabuena, ha creado y ejecutado correctamente un pipeline que construyó y probó un paquete de Node.js. Para ampliar la canalización, puede hacer lo siguiente:

Pasos siguientes