Share via


Erstellen und Testen von Ruby-Apps

Azure DevOps Services

In diesem Artikel wird erläutert, wie Sie Ruby-Projekte automatisch erstellen können.

Einrichten der Azure-Pipelines

Führen Sie die folgenden Schritte aus, um eine Pipeline für eine Ruby-App einzurichten.

  1. Melden Sie sich bei Ihrer Azure DevOps-Organisation an, und wechseln Sie zu Ihrem Projekt.

  2. Wählen Sie Pipelines>Neue Pipeline aus.

  3. Wählen Sie GitHub als Speicherort für Ihren Quellcode aus.

    Möglicherweise werden Sie zu GitHub weitergeleitet, um sich anzumelden. Geben Sie in diesem Fall Ihre Anmeldeinformationen für GitHub ein.

  4. Wählen Sie Ihr Ruby-Beispielrepository aus.

  5. Wählen Sie die Ruby-Vorlage für Ihre Pipeline aus.

  6. Eine YAML-Datei wird generiert. Wählen Sie Speichern und ausführen>Direkt in Mainbranch committen und wählen Sie dann erneut Speichern und ausführen.

  7. Warten Sie, bis die Ausführung beendet ist.

Sie verfügen nun über eine funktionierende YAML-Datei (azure-pipelines.yml) in Ihrem Repository, die Sie anpassen können.

Tipp

Um Änderungen an der YAML-Datei vorzunehmen, wie in diesem Artikel beschrieben, wählen Sie die Pipeline auf der Seite Pipelines aus und Bearbeiten Sie dann die azure-pipelines.yml-Datei.

Buildumgebung

Sie können Azure Pipelines verwenden, um Ihre Ruby-Projekte zu erstellen, ohne eine eigene Infrastruktur einrichten zu müssen. Ruby ist auf von Microsoft gehosteten Agents in Azure Pipelines vorinstalliert. Sie können Linux-, macOS- oder Windows-Agents verwenden, um Ihre Builds auszuführen.

Die genauen Versionen von Ruby, die vorinstalliert sind, finden Sie unter Von Microsoft gehostete Agents. Um eine bestimmte Version von Ruby in von Microsoft gehosteten Agents zu installieren, fügen Sie den Task Ruby-Version verwenden am Anfang Ihrer Pipeline hinzu.

Verwenden einer bestimmten Ruby-Version

Fügen Sie die Aufgabe Ruby-Version verwenden hinzu, um die Version von Ruby festzulegen, die in Ihrer Pipeline verwendet wird. Dieser Codeausschnitt fügt dem Pfad Ruby 2.4 oder höher hinzu und legt nachfolgende die Verwendung für Pipelineaufgaben fest.

# 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

Installieren von Rails

Um Rails zu installieren, fügen Sie den folgenden Codeausschnitt zur azure-pipelines.yml-Datei hinzu.

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

Installieren von Abhängigkeiten

Um Bundler zum Installieren von Abhängigkeiten zu verwenden, fügen den folgenden Codeausschnitt zur azure-pipelines.yml-Datei hinzu.

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

Ausführen von Rake

Um Rake im Kontext des aktuellen Bundles (wie in Ihrer Gemfile-Datei definiert) auszuführen, fügen Sie den folgenden Codeausschnitt zur azure-pipelines.yml-Datei hinzu.

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

Testergebnisse veröffentlichen

Der Beispielcode enthält Komponententests, die mit RSpec geschrieben wurden. Wenn Rake im vorherigen Schritt ausgeführt wird, werden die RSpec-Tests ausgeführt. Die RSpec RakeTask im Rakefile wurde so konfiguriert, dass Ergebnisse im JUnit-Format mithilfe des RspecJUnitFormatter erzeugt werden.

Fügen Sie die Aufgabe Testergebnisse veröffentlichen hinzu, um Testergebnisse im JUnit-Format auf dem Server zu veröffentlichen. Sie erhalten eine umfassende Testberichtsoberfläche, die Sie für die Problembehandlung fehlerhafter Tests und für die Analyse der Testzeitplanung verwenden können.

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

Code Coverage-Ergebnisse veröffentlichen

Der Beispielcode verwendet SimpleCov, um Code Coverage-Daten zu sammeln, wenn Komponententests ausgeführt werden. SimpleCov ist für die Verwendung von Cobertura- und HTML-Berichtsformatierern konfiguriert.

Fügen Sie die Aufgabe Code Coverage Results veröffentlichen hinzu, um Code Coverage-Ergebnisse auf dem Server zu veröffentlichen. Wenn Sie dies tun, können Abdeckungsmetriken in der Buildzusammenfassung angezeigt werden und HTML-Berichte zur weiteren Analyse heruntergeladen werden.

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

Erstellen eines Images und Pushen in ein Azure Container Registry

Für Ihre Ruby-App können Sie auch ein Image erstellen und es per Push an eine Containerregistrierung übertragen.