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.
Zaloguj się do organizacji usługi Azure DevOps i przejdź do projektu.
Wybierz pozycję Potoki>Nowy potok.
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.
Wybierz przykładowe repozytorium języka Ruby.
Ruby
Wybierz szablon dla potoku.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.
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.