Sdílet prostřednictvím


Vytváření a testování aplikací v Ruby

Azure DevOps Services | Azure DevOps Server | Azure DevOps Server 2022 | Azure DevOps Server 2020

Naučte se používat Azure Pipelines k automatickému sestavování, testování a nasazování aplikací Ruby.

Požadavky

Ruby je předinstalovaný na agentech hostovaných Microsoftem pro Linux, macOS a Windows. Pro sestavování projektů Ruby nemusíte nic dalšího nastavovat. Informace o předinstalovaných verzích Ruby najdete v tématu Software.

produkt Požadavky
Azure DevOps Projekt Azure DevOps.
– Možnost spouštět pipeliny na agentech hostovaných Microsoftem. Můžete si buď koupit paralelní úlohu, nebo si můžete požádat o bezplatnou úroveň.
– Základní znalost YAML a Azure Pipelines. Další informace naleznete v tématu Vytvoření prvního potrubí.
- Oprávnění:
     – Chcete-li vytvořit pipeline: Musíte být ve skupině Přispěvatelé a skupina musí mít oprávnění k vytvoření build pipeline nastavena na hodnotu Povolit. Členové skupiny Správci projektů můžou spravovat kanály.
    - Chcete-li vytvořit připojení služeb: Pro připojení služeb musíte mít roli Správce nebo Tvůrce.
GitHub – Účet GitHubu .
Připojení ke službě GitHub pro autorizaci Azure Pipelines.
produkt Požadavky
Azure DevOps Projekt Azure DevOps.
– Agent hostovaný samotným serverem s nainstalovaným Ruby. Chcete-li ho vytvořit, podívejte se na agenty hostované na vlastním serveru.
– Základní znalost YAML a Azure Pipelines. Další informace naleznete v tématu Vytvoření prvního potrubí.
- Oprávnění:
    – Chcete-li vytvořit pipeline: Musíte být ve skupině Přispěvatelé a skupina musí mít oprávnění k vytvoření build pipeline nastavena na hodnotu Povolit. Členové skupiny Správci projektů můžou spravovat kanály.
    - Chcete-li vytvořit připojení služeb: Pro připojení služeb musíte mít roli Správce nebo Tvůrce.
GitHub – Účet GitHubu .
Připojení ke službě GitHub pro autorizaci Azure Pipelines.

Vytvoření služby Azure Pipelines

Postupujte podle těchto kroků a nastavte pipeline pro aplikaci Ruby.

  1. Přihlaste se ke své organizaci Azure DevOps a přejděte do svého projektu.

  2. Přejděte na Kanály>Nový kanál.

  3. Jako umístění zdrojového kódu vyberte GitHub .

    Můžete být přesměrováni na GitHub kvůli přihlášení. Pokud ano, zadejte svoje přihlašovací údaje GitHubu.

  4. Vyberte své ukázkové úložiště Ruby.

  5. Ruby Vyberte šablonu pro váš kanál.

  6. Vygeneruje se soubor YAML. Vyberte Uložit a spustit>Přímo připojit do hlavní větve a pak vyberte Uložit a spustit znovu.

  7. Počkejte na dokončení spuštění potrubí. U základního projektu Ruby to obvykle trvá 2 až 5 minut.

Teď máte v úložišti funkční soubor YAML,azure-pipelines.yml který se automaticky spustí při nasdílení změn kódu. Tento soubor lze přizpůsobit tak, aby vyhovoval konkrétním potřebám projektu.

Návod

Chcete-li provést změny souboru YAML popsaného v tomto článku, vyberte kanál na stránce Pipelines a pak vyberte Upravit soubor azure-pipelines.yml .

Sestavení prostředí

Azure Pipelines můžete použít k vytváření projektů Ruby, aniž byste museli nastavovat vlastní infrastrukturu. Ruby je předinstalovaný na agentech hostovaných Microsoftem v Azure Pipelines. Ke spouštění sestavení můžete použít agenty pro Linux, macOS nebo Windows.

Přesné verze Ruby, které jsou předinstalované, najdete v agentech hostovaných Microsoftem. Pokud chcete nainstalovat konkrétní verzi Ruby na agenty hostované Microsoftem, přidejte na začátek kanálu úlohu Použít verzi Ruby .

Použití konkrétní verze Ruby

Přidejte úkol Použít verzi Ruby pro nastavení verze Ruby ve vašem pipeline. Tento úryvek přidá do cesty Ruby 3.4 nebo novější a nastaví následné úlohy potrubí, aby ho používaly. Pokud chcete zjistit, které verze Ruby jsou předinstalované na agentech hostovaných Microsoftem, přečtěte si téma Software.

pool:
  vmImage: 'ubuntu-latest' 

steps:
- task: UseRubyVersion@0 
  inputs:
    versionSpec: '>= 3.4' 
    addToPath: true
  displayName: 'Set Ruby version'

Instalace rails

Pokud chcete nainstalovat Rails, přidejte do azure-pipelines.yml souboru následující fragment kódu.

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

Nainstalujte závislosti

Pomocí Bundleru nainstalujte závislosti drahokamů projektu. Bundler čte vaše Gemfile a Gemfile.lock, aby bylo zajištěno, že v kanálu budou nainstalované stejné verze gemů jako ve vašem vývojovém prostředí.

- script: |
    gem install bundler
    bundle install --retry=3 --jobs=4
  displayName: 'Install dependencies with Bundler'

Příznak --retry=3 opakuje neúspěšné instalace až 3krát a --jobs=4å umožňuje paralelní instalaci drahokamů pro rychlejší sestavení.

Spustit Rake

Pokud chcete spustit Rake v kontextu aktuální sady (jak je definováno v souboru Gemfile), přidejte do azure-pipelines.yml souboru následující fragment kódu.

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

Publikování výsledků testu

Vzorový kód obsahuje testy jednotek napsané pomocí RSpec. Když se Rake spustí v předchozím kroku, provede testy RSpec. RSpec RakeTask v Rakefile je nakonfigurován tak, aby vytvořil JUnit-style výsledky pomocí RspecJUnitFormatter.

Přidejte úlohu Publikovat výsledky testu pro publikování výsledků testu ve stylu JUnit na server.

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

Publikujte výsledky pokrytí kódu

Ukázkový kód používá SimpleCov ke shromažďování dat pokrytí kódu, když se spouštějí jednotkové testy. SimpleCov je nakonfigurovaný tak, aby používal Cobertura a formátory sestav HTML.

Přidejte úlohu Publikovat výsledky pokrytí kódu pro publikování výsledků pokrytí kódu na server. Toto vám umožní zobrazit metriky pokrytí v souhrnu sestavení a stáhnout HTML reporty pro další analýzu.

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

Kompletní ukázkový kanál

Tady je kompletní azure-pipelines.yml soubor, který ukazuje všechny koncepty popsané v tomto článku. Tento kanál:

  • Spouštěče na změny v hlavní větvi
  • Používá Ubuntu jako prostředí sestavení.
  • Nastaví zadanou verzi Ruby.
  • Nainstaluje závislosti projektu.
  • Spustí testy pomocí Rake.
  • Publikuje výsledky testů a metriky pokrytí kódu.
# Ruby pipeline example
trigger:
- main

pool:
  vmImage: 'ubuntu-latest'

variables:
  rubyVersion: '3.4.7'

steps:
- task: UseRubyVersion@0
  inputs:
    versionSpec: '$(rubyVersion)'
    addToPath: true
  displayName: 'Set Ruby version to $(rubyVersion)'

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

- script: bundle exec rake
  displayName: 'Run tests with Rake'

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

- task: PublishCodeCoverageResults@2
  inputs:
    codeCoverageTool: Cobertura
    summaryFileLocation: '$(System.DefaultWorkingDirectory)/**/coverage.xml'
    reportDirectory: '$(System.DefaultWorkingDirectory)/**/coverage'
    failIfCoverageEmpty: true
  displayName: 'Publish code coverage'