Condividi tramite


Compilare e pubblicare un pacchetto Node.js

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

È possibile compilare, testare e distribuire app Node.js come parte del sistema di integrazione continua e recapito continuo (CI/CD) di Azure Pipelines. Informazioni su come usare una pipeline per creare un pacchetto Node.js con Node Package Manager (npm) e pubblicare un artefatto della pipeline.

La pipeline di esempio automatizza il processo di compilazione, test e creazione di pacchetti di un'applicazione Node.js, rendendola pronta per un'ulteriore implementazione o distribuzione.

Prerequisiti

Prodotto Requisiti
Azure DevOps - Un progetto Azure DevOps.
- La possibilità di eseguire pipeline su agenti ospitati da Microsoft. È possibile acquistare un incarico parallelo oppure richiedere un piano gratuito.
- Conoscenza di base di YAML e Azure Pipelines. Per maggiori informazioni, vedere Creare la prima pipeline.
Autorizzazioni - :
     - Per creare una pipeline, è necessario trovarsi nel gruppo Collaboratori e il gruppo deve avere l'autorizzazione Crea pipeline di compilazione impostata su Consenti. I membri del gruppo Project Administrators possono gestire le pipeline.
    - Per creare connessioni al servizio: è necessario disporre del ruolo di Administrator o Creator per le connessioni al servizio .
GitHub - Un account GitHub.
- Una connessione al servizio GitHub per autorizzare Azure Pipelines.
Azzurro Una sottoscrizione di Azure.
Prodotto Requisiti
Azure DevOps - Un progetto Azure DevOps.
- Agente autogestito. Per crearne uno, vedere la sezione su Agenti self-hosted.
- Conoscenza di base di YAML e Azure Pipelines. Per maggiori informazioni, vedere Creare la prima pipeline.
Autorizzazioni - :
    - Per creare una pipeline, è necessario trovarsi nel gruppo Collaboratori e il gruppo deve avere l'autorizzazione Crea pipeline di compilazione impostata su Consenti. I membri del gruppo Project Administrators possono gestire le pipeline.
    - Per creare connessioni al servizio: è necessario disporre del ruolo di Administrator o Creator per le connessioni al servizio .
GitHub - Un account GitHub.
- Una connessione al servizio GitHub per autorizzare Azure Pipelines.
Azzurro Una sottoscrizione di Azure.

Esegui un fork del codice di esempio

Effettuare un fork dell'app server di esempio Express.js.

  1. Vai al repository js-e2e-express-server.
  2. Selezionare Fork nell'angolo superiore destro della pagina.
  3. Selezionare l'account GitHub. Per impostazione predefinita, il fork è denominato uguale al repository padre, ma è possibile assegnargli un nome diverso.

Importante

Durante le procedure seguenti, potrebbe essere richiesto di creare una connessione al servizio GitHub o reindirizzare a GitHub per accedere, installare Azure Pipelines o autorizzare Azure Pipelines. Seguire le istruzioni visualizzate sullo schermo per completare il processo. Per altre informazioni, vedere Accedere ai repository GitHub.

Crea la tua pipeline

  1. Nel progetto Azure DevOps selezionare Pipeline>Crea pipeline, quindi selezionare GitHub come percorso del codice sorgente.
  2. Nella schermata Selezionare un repository, selezionare il repository di esempio creato tramite fork.
  3. Nella schermata Configura la pipeline, selezionare Pipeline di base. Azure Pipelines genera un file YAML denominato azure-pipelines.yml per la pipeline.
  4. Selezionare il cursore a discesa accanto a Salva ed esegui, selezionare Salva e quindi selezionare di nuovo Salva . Il file viene salvato nel tuo repository GitHub forkato.
  5. Nella schermata successiva selezionare Modifica.

Compilare il pacchetto e pubblicare un artefatto

Modificare il file azure-pipelines.yml come indicato di seguito.

  1. Sostituire il contenuto del file con il codice seguente.

    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'
    

Nella pipeline aggiornata, farai quanto segue:

  • Installa Node.js: l'attività UseNode@1 installa la versione Node.js specificata (18.x).
  • Installare le dipendenze: il comando npm install installa le dipendenze necessarie per il progetto Node.js.
  • Compilare il progetto: il comando npm run build compila il progetto Node.js.
  • Esegui test: il comando npm test esegue il gruppo di test del progetto.
  • Copia file: L'attività CopyFiles@2 copia i file di progetto necessari (ad esempio, src/** e public/**) nella directory di staging degli artefatti.
  • Pubblicare l'artefatto della pipeline: l'attività PublishPipelineArtifact@1 pubblica i file dalla directory di staging dell'artefatto come artefatto della pipeline denominato nodejs-app.

Esegui la tua pipeline

Selezionare Convalida e salva, quindi Salva, Esegui ed Esegui di nuovo.

Dopo l'esecuzione della pipeline, verificare che il processo sia stato eseguito correttamente e che venga visualizzato un artefatto pubblicato.

Screenshot dell'esecuzione corretta della pipeline con un artefatto.

Congratulazioni, hai creato ed eseguito con successo una pipeline che ha compilato e testato un pacchetto Node.js. Per ampliare la pipeline, puoi:

Passaggi successivi