Udostępnij za pośrednictwem


Kompilowanie i testowanie aplikacji języka Ruby

Usługa Azure DevOps Services

W tym artykule wyjaśniono, jak automatycznie kompilować projekty języka Ruby.

Tworzenie usługi Azure Pipelines

Wykonaj następujące kroki, aby skonfigurować potok dla aplikacji Ruby.

  1. Zaloguj się do organizacji usługi Azure DevOps i przejdź do projektu.

  2. Wybierz pozycję Potoki>Nowy potok.

  3. Wybierz pozycję GitHub jako lokalizację kodu źródłowego.

    Być może nastąpi przekierowanie do usługi GitHub w celu zalogowania się. Jeśli tak, wprowadź poświadczenia usługi GitHub.

  4. Wybierz przykładowe repozytorium języka Ruby.

  5. Ruby Wybierz szablon dla potoku.

  6. Zostanie wygenerowany plik YAML. Wybierz pozycję Zapisz i uruchompolecenie Zatwierdź> bezpośrednio w gałęzi głównej, a następnie wybierz pozycję Zapisz i uruchom ponownie.

  7. Poczekaj na zakończenie przebiegu.

Masz działający plik YAML (azure-pipelines.yml) w repozytorium, który jest gotowy do dostosowania.

Porada

Aby wprowadzić zmiany w pliku YAML zgodnie z opisem w tym artykule, wybierz potok na stronie Potoki , a następnie edytujazure-pipelines.yml plik.

Środowisko kompilacji

Usługa Azure Pipelines umożliwia tworzenie projektów języka Ruby bez konieczności konfigurowania własnej infrastruktury. Język Ruby jest wstępnie instalowany na agentach hostowanych przez firmę Microsoft w usłudze Azure Pipelines. Do uruchamiania kompilacji można użyć agentów systemu Linux, macOS lub Windows.

Aby uzyskać dokładne wersje języka Ruby, które są wstępnie zainstalowane, zapoznaj się z agentami hostowanymi przez firmę Microsoft. Aby zainstalować określoną wersję języka Ruby na agentach hostowanych przez firmę Microsoft, dodaj zadanie Use Ruby Version (Użyj wersji języka Ruby ) na początku potoku.

Korzystanie z określonej wersji języka Ruby

Dodaj zadanie Use Ruby Version (Użyj wersji języka Ruby ), aby ustawić wersję języka Ruby używaną w potoku. Ten fragment kodu dodaje język Ruby 2.4 lub nowszy do ścieżki i ustawia kolejne zadania potoku do użycia.

# 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

Instalowanie szyn

Aby zainstalować usługę Rails, dodaj następujący fragment kodu do azure-pipelines.yml pliku.

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

Instalowanie zależności

Aby zainstalować zależności za pomocą narzędzia Bundler, dodaj następujący fragment kodu do azure-pipelines.yml pliku.

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

Uruchamianie rake

Aby wykonać aplikację Rake w kontekście bieżącego pakietu (zgodnie z definicją w pliku Gemfile), dodaj następujący fragment kodu do azure-pipelines.yml pliku.

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

Publikowanie wyników testu

Przykładowy kod zawiera testy jednostkowe napisane przy użyciu narzędzia RSpec. Gdy rake jest uruchamiany przez poprzedni krok, uruchamia testy RSpec. Zestaw RSpec RakeTask w pliku Rakefile został skonfigurowany do generowania wyników stylu JUnit przy użyciu klasy RspecJUnitFormatter.

Dodaj zadanie Publikuj wyniki testu , aby opublikować wyniki testu stylu JUnit na serwerze. Uzyskasz bogate środowisko raportowania testów, którego można użyć do rozwiązywania problemów z dowolnymi testami, które zakończyły się niepowodzeniem i do analizy czasu testów.

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

Publikowanie wyników pokrycia kodu

Przykładowy kod używa simpleCov do zbierania danych pokrycia kodu podczas uruchamiania testów jednostkowych. SimpleCov jest skonfigurowany do używania formaterów raportów Cobertura i HTML.

Dodaj zadanie Publikuj wyniki pokrycia kodu , aby opublikować wyniki pokrycia kodu na serwerze. Gdy to zrobisz, metryki pokrycia można zobaczyć w podsumowaniu kompilacji, a raporty HTML można pobrać w celu dalszej analizy.

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

Tworzenie obrazu i wypychanie do rejestru kontenerów

W przypadku aplikacji Ruby możesz również skompilować obraz i wypchnąć go do rejestru kontenerów.