Ruby-apps bouwen en testen
Azure DevOps Services
In dit artikel wordt uitgelegd hoe u automatisch Ruby-projecten bouwt.
De Azure-pijplijnen maken
Volg de volgende stappen om een pijplijn in te stellen voor een Ruby-app.
Meld u aan bij uw Azure DevOps-organisatie en ga naar uw project.
Selecteer Pijplijnen>Nieuwe pijplijn.
Selecteer GitHub als de locatie van uw broncode.
U wordt mogelijk omgeleid naar GitHub om u aan te melden. Voer in dat geval uw GitHub-referenties in.
Selecteer uw Ruby-voorbeeldopslagplaats.
Selecteer de
Ruby
sjabloon voor uw pijplijn.Er wordt een YAML-bestand gegenereerd. Selecteer Opslaan en rechtstreeks>doorvoeren naar de hoofdbranch en kies vervolgens Opslaan en opnieuw uitvoeren .
Wacht tot de run is voltooid.
U hebt een werkend YAML-bestand (azure-pipelines.yml
) in uw opslagplaats dat u kunt aanpassen.
Tip
Als u wijzigingen wilt aanbrengen in het YAML-bestand zoals beschreven in dit artikel, selecteert u de pijplijn op de pagina Pijplijnen en vervolgens Hetazure-pipelines.yml
bestand bewerken.
Omgeving bouwen
U kunt Azure Pipelines gebruiken om uw Ruby-projecten te bouwen zonder dat u zelf een infrastructuur hoeft in te stellen. Ruby is vooraf geïnstalleerd op door Microsoft gehoste agents in Azure Pipelines. U kunt Linux-, macOS- of Windows-agents gebruiken om uw builds uit te voeren.
Raadpleeg door Microsoft gehoste agents voor de exacte versies van Ruby die vooraf zijn geïnstalleerd. Als u een specifieke versie van Ruby wilt installeren op door Microsoft gehoste agents, voegt u de taak Ruby-versie gebruiken toe aan het begin van uw pijplijn.
Een specifieke Ruby-versie gebruiken
Voeg de taak Ruby-versie gebruiken toe om de versie van Ruby in te stellen die in uw pijplijn wordt gebruikt. Met dit fragment wordt Ruby 2.4 of hoger toegevoegd aan het pad en worden volgende pijplijntaken ingesteld voor gebruik.
# 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
Rails installeren
Als u Rails wilt installeren, voegt u het volgende fragment toe aan uw azure-pipelines.yml
bestand.
- script: gem install rails && rails -v
displayName: 'gem install rails'
Afhankelijkheden installeren
Als u Bundler wilt gebruiken om afhankelijkheden te installeren, voegt u het volgende codefragment toe aan uw azure-pipelines.yml
bestand.
- script: |
CALL gem install bundler
bundle install --retry=3 --jobs=4
displayName: 'bundle install'
Rake uitvoeren
Als u Rake wilt uitvoeren in de context van de huidige bundel (zoals gedefinieerd in uw Gemfile), voegt u het volgende fragment toe aan uw azure-pipelines.yml
bestand.
- script: bundle exec rake
displayName: 'bundle exec rake'
Testresultaten publiceren
De voorbeeldcode bevat eenheidstests die zijn geschreven met RSpec. Wanneer Rake wordt uitgevoerd door de vorige stap, worden de RSpec-tests uitgevoerd. De RSpec RakeTask in de Rakefile is geconfigureerd om JUnit-stijlresultaten te produceren met behulp van de RspecJUnitFormatter.
Voeg de taak Testresultaten publiceren toe om testresultaten in JUnit-stijl naar de server te publiceren. U krijgt een uitgebreide ervaring voor testrapportage die u kunt gebruiken voor het oplossen van problemen met mislukte tests en voor het analyseren van testtijdstips.
- task: PublishTestResults@2
condition: succeededOrFailed()
inputs:
testResultsFiles: '**/test-*.xml'
testRunTitle: 'Ruby tests'
Resultaten van codedekking publiceren
De voorbeeldcode maakt gebruik van SimpleCov om codedekkingsgegevens te verzamelen wanneer eenheidstests worden uitgevoerd. SimpleCov is geconfigureerd voor het gebruik van Cobertura- en HTML-rapportindelingen.
Voeg de taak Resultaten van codedekking publiceren toe om resultaten van codedekking op de server te publiceren. Wanneer u dit doet, kunt u metrische dekkingsgegevens zien in het buildoverzicht en KUNNEN HTML-rapporten worden gedownload voor verdere analyse.
- task: PublishCodeCoverageResults@1
inputs:
codeCoverageTool: Cobertura
summaryFileLocation: '$(System.DefaultWorkingDirectory)/**/coverage.xml'
reportDirectory: '$(System.DefaultWorkingDirectory)/**/coverage'
Een installatiekopieën bouwen en naar containerregister pushen
Voor uw Ruby-app kunt u ook een installatiekopieën maken en deze naar een containerregister pushen.