Condividi tramite


Compilare e testare le app Ruby

Azure DevOps Services

Questo articolo illustra come creare automaticamente progetti Ruby.

Creare Azure Pipelines

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

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

  2. Selezionare 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. Selezionare il repository di esempio Ruby.

  5. Selezionare il Ruby modello per la pipeline.

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

  7. Attendere che venga completata.

Si dispone di un file YAML funzionante (azure-pipelines.yml) nel repository pronto per personalizzare.

Suggerimento

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

Ambiente di compilazione

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

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à Use Ruby Version all'inizio della pipeline.

Usare una versione di Ruby specifica

Aggiungere l'attività Use Ruby Version per impostare la versione di Ruby usata nella pipeline. Questo frammento di codice aggiunge Ruby 2.4 o versione successiva al percorso e imposta le attività successive della pipeline da usare.

# https://learn.microsoft.com/azure/devops/pipelines/ecosystems/ruby
pool:
  vmImage: 'ubuntu-latest' # other options: 'macOS-latest', 'windows-latest'

steps:
- task: UseRubyVersion@0
  inputs:
    versionSpec: '>= 2.5'
    addToPath: true

Installare Rails

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

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

Installare le dipendenze

Per usare Bundler per installare le dipendenze, aggiungere il frammento di codice seguente al azure-pipelines.yml file.

- script: |
    CALL gem install bundler
    bundle install --retry=3 --jobs=4
  displayName: 'bundle install'

Eseguire Rake

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

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

Pubblicare i risultati dei test

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

Aggiungere l'attività Pubblica risultati test per pubblicare i risultati dei test di stile JUnit nel server. Si ottiene un'esperienza avanzata di report di test che è possibile usare per la risoluzione dei problemi relativi ai test non riusciti e per l'analisi dei tempi di test.

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

Pubblicare i risultati del code coverage

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

Aggiungere l'attività Pubblica risultati code coverage per pubblicare i risultati del code coverage nel server. Quando si esegue questa operazione, le metriche di copertura possono essere visualizzate nel riepilogo della compilazione e nei report HTML possono essere scaricati per ulteriori analisi.

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

Creare un'immagine e eseguire il push nel registro contenitori

Per l'app Ruby, è anche possibile creare un'immagine e eseguirne il push in un registro contenitori.