Sestavování a testování aplikací v Ruby

Azure DevOps Services

Tento článek vysvětluje, jak automaticky sestavovat projekty Ruby.

Vytvoření Azure Pipelines

Následujícím postupem nastavíte kanál pro aplikaci Ruby.

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

  2. Vyberte 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 své 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 Save and run Commit (Uložit a spustit>potvrzení) přímo do hlavní větve a pak zvolte Save and run again (Uložit a spustit znovu).

  7. Počkejte na dokončení.

V úložišti máte funkční soubor YAML (azure-pipelines.yml), který je připravený k přizpůsobení.

Tip

Pokud chcete v souboru YAML provést změny, jak je popsáno v tomto článku, vyberte kanál na stránce Pipelines (Kanály) a pak vyberte Edit the azure-pipelines.yml file (Upravit soubor).

Sestavení prostředí

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

Přesné verze Ruby, které jsou předinstalované, najdete v tématu Agenti hostovaní 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 úlohu Use Ruby Version (Použít verzi Ruby ) k nastavení verze Ruby používané ve vašem kanálu. Tento fragment kódu přidá do cesty Ruby 2.4 nebo novější a nastaví další úlohy kanálu tak, aby ho používaly.

# 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

Instalace zábradlí

Rails nainstalujete tak, že do souboru přidáte azure-pipelines.yml následující fragment kódu.

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

Instalace závislostí

Pokud chcete k instalaci závislostí použít Bundler, přidejte do souboru azure-pipelines.yml následující fragment kódu.

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

Spustit Rake

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

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

Publikování výsledků testů

Vzorový kód obsahuje testy jednotek napsané pomocí RSpec. Když rake spustíte v předchozím kroku, spustí se testy RSpec. RSpec RakeTask v souboru Rakefile byl nakonfigurován tak, aby se výsledky ve stylu JUnit vytvářely pomocí RspecJUnitFormatter.

Přidejte úlohu Publikovat výsledky testu , která publikuje výsledky testů stylu JUnit na server. Získáte bohaté možnosti vytváření sestav testů, které můžete použít k řešení potíží se všemi neúspěšnými testy a k analýze časování testů.

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

Publikování výsledků pokrytí kódu

Vzorový kód používá SimpleCov ke shromažďování dat pokrytí kódu při spuštění testů jednotek. SimpleCov je nakonfigurovaný tak, aby používal formátovací moduly pro sestavy Cobertura a HTML.

Přidejte úlohu Publikovat výsledky pokrytí kódu , která publikuje výsledky pokrytí kódu na server. Když to uděláte, metriky pokrytí se zobrazí v souhrnu sestavení a sestavy HTML si můžete stáhnout pro další analýzu.

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

Sestavení image a vložení do registru kontejneru

Pro aplikaci Ruby můžete také sestavit image a odeslat ji do registru kontejneru.