Share via


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.

  1. Meld u aan bij uw Azure DevOps-organisatie en ga naar uw project.

  2. Selecteer Pijplijnen>Nieuwe pijplijn.

  3. 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.

  4. Selecteer uw Ruby-voorbeeldopslagplaats.

  5. Selecteer de Ruby sjabloon voor uw pijplijn.

  6. Er wordt een YAML-bestand gegenereerd. Selecteer Opslaan en rechtstreeks>doorvoeren naar de hoofdbranch en kies vervolgens Opslaan en opnieuw uitvoeren .

  7. 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.