Condividi tramite


Compilare e testare le app Ruby

Servizi di Azure DevOps

Informazioni su come usare Azure Pipelines per compilare, testare e distribuire l'applicazione Ruby.

Creare le Azure Pipelines

Seguire questa procedura per configurare una pipeline per un'app Ruby.

  1. Accedere all'organizzazione di Azure DevOps e passare al progetto.

  2. Passare a Pipeline>Nuova pipeline.

  3. Selezionare GitHub come percorso del codice sorgente.

    Si potrebbe essere reindirizzati a GitHub per l'accesso. In questo caso, immettere le credenziali di GitHub.

  4. Seleziona il repository di esempio Ruby.

  5. Seleziona il modello Ruby per la tua pipeline.

  6. Viene generato un file YAML. Selezionare Salva ed esegui>Commit direttamente nel ramo principale e quindi selezionare Salva ed esegui di nuovo.

  7. Attendere che l'esecuzione finisca.

È disponibile un file YAML funzionante (azure-pipelines.yml) nel repository pronto per la personalizzazione.

Suggerimento

Per apportare modifiche al file YAML descritto in questo articolo, selezionare la pipeline nella pagina Pipeline e quindi selezionare Modifica per il azure-pipelines.yml file.

Ambiente di sviluppo

È possibile usare Azure Pipelines per compilare i progetti Ruby senza dover configurare un'infrastruttura personalizzata. Ruby è preinstallato negli agenti ospitati da Microsoft in Azure Pipelines. È possibile usare agenti Linux, macOS o Windows per eseguire le compilazioni.

Per le versioni esatte di Ruby preinstallate, fare riferimento agli agenti ospitati da Microsoft. Per installare una versione specifica di Ruby negli agenti ospitati da Microsoft, aggiungere l'attività Usa versione Ruby all'inizio della pipeline.

Usare una versione specifica di Ruby

Aggiungere l'attività Usa versione Ruby per impostare la versione ruby nella pipeline. Questo frammento di codice aggiunge Ruby 3.4 o versione successiva al percorso e imposta le attività della pipeline successive per usarlo.

pool:
  vmImage: 'ubuntu-latest' 

steps:
- task: UseRubyVersion@0 
  inputs:
    versionSpec: '>= 3.4' 
    addToPath: true
  displayName: 'Set Ruby version'

Installare Rails

Per installare Rails, aggiungere il frammento di codice seguente al azure-pipelines.yml file.

- script: gem install rails && rails -v
  displayName: 'Install Rails'

Installa le dipendenze

Usare Bundler per installare le dipendenze aggiungendo il frammento di codice seguente al azure-pipelines.yml file.

- script: |
    gem install bundler
    bundle install --retry=3 --jobs=4
  displayName: 'Install dependencies with Bundler'

Eseguire Rake

Per eseguire Rake nel contesto del bundle corrente (come definito nel file Gemfile), aggiungere il frammento di codice seguente al azure-pipelines.yml file.

- script: bundle exec rake
  displayName: 'bundle exec rake'

Pubblica risultati dei test

Il codice di esempio include unit test scritti con RSpec. Quando Rake viene eseguito nel passaggio precedente, esegue i test RSpec. RSpec RakeTask in Rakefile è configurato per produrre risultati in stile JUnit usando RspecJUnitFormatter.

Aggiungere l'attività Pubblica risultati test per pubblicare i risultati dei test in stile JUnit nel server.

- task: PublishTestResults@2
  condition: succeededOrFailed()
  inputs:
    testResultsFiles: '**/test-*.xml'
    testRunTitle: 'Ruby tests'

Pubblicare i risultati della copertura del codice

Il codice di esempio usa SimpleCov per raccogliere i dati di code coverage quando vengono eseguiti unit test. SimpleCov è configurato per l'uso dei formattatori di report Cobertura e HTML.

Aggiungere l'attività Pubblica risultati code coverage per pubblicare i risultati del code coverage nel server. In questo modo è possibile visualizzare le metriche di copertura nel riepilogo della compilazione e scaricare i report HTML per ulteriori analisi.

- task: PublishCodeCoverageResults@2
  inputs:
    codeCoverageTool: Cobertura
    summaryFileLocation: '$(System.DefaultWorkingDirectory)/**/coverage.xml'
    reportDirectory: '$(System.DefaultWorkingDirectory)/**/coverage'
    failIfCoverageEmpty: true 

Creare un'immagine ed eseguire il push nel registro di container

Per l'app Ruby, è possibile compilare un'immagine ed eseguirne il push in un registro contenitori.