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.
Accedere all'organizzazione Azure DevOps e passare al progetto.
Selezionare Pipeline>Nuova pipeline.
Selezionare GitHub come percorso del codice sorgente.
Si potrebbe essere reindirizzati a GitHub per l'accesso. In questo caso, immettere le credenziali di GitHub.
Selezionare il repository di esempio Ruby.
Selezionare il
Ruby
modello per la pipeline.Viene generato un file YAML. Selezionare Salva ed eseguire>Commit direttamente nel ramo principale e quindi scegliere Salva ed eseguire di nuovo.
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.