Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Azure DevOps Services | Azure DevOps Server | Azure DevOps Server 2022
Dowiedz się, jak używać usługi Azure Pipelines do automatycznego kompilowania, testowania i wdrażania aplikacji języka Ruby.
Wymagania wstępne
Język Ruby jest wstępnie zainstalowany na agentach hostowanych przez firmę Microsoft dla systemów Linux, macOS i Windows. Nie musisz konfigurować nic więcej, aby tworzyć projekty języka Ruby. Aby zobaczyć, które wersje języka Ruby są wstępnie zainstalowane, zobacz Oprogramowanie.
| produkt | Wymagania |
|---|---|
| Azure DevOps | — Projekt usługi Azure DevOps. — Możliwość uruchamiania pipeline'ów na agentach hostowanych przez firmę Microsoft. Możesz kupić zadanie równoległe lub poprosić o bezpłatny poziom. — Podstawowa wiedza na temat języka YAML i usługi Azure Pipelines. Aby uzyskać więcej informacji, zobacz Tworzenie pierwszego pipeline'u. - Uprawnienia: - Aby utworzyć potok: musisz należeć do grupy Contributorzy, a grupa musi mieć uprawnienie Utworzyć potok ustawione na Zezwalaj. Członkowie grupy Administratorzy projektu mogą zarządzać potokami. - Aby utworzyć połączenia usług: musisz mieć rolę Administrator lub Twórca dla połączeń usług. |
| GitHub | — Konto usługi GitHub . — Połączenie usługi GitHub w celu autoryzowania usługi Azure Pipelines. |
| produkt | Wymagania |
|---|---|
| Azure DevOps | — Projekt usługi Azure DevOps. — Samodzielnie hostowany agent z zainstalowanym językiem Ruby. Aby go utworzyć, zobacz Agenci hostowani samodzielnie. — Podstawowa wiedza na temat języka YAML i usługi Azure Pipelines. Aby uzyskać więcej informacji, zobacz Tworzenie pierwszego pipeline'u. - Uprawnienia: - Aby utworzyć potok: musisz należeć do grupy Contributorzy, a grupa musi mieć uprawnienie Utworzyć potok ustawione na Zezwalaj. Członkowie grupy Administratorzy projektu mogą zarządzać potokami. - Aby utworzyć połączenia usług: musisz mieć rolę Administrator lub Twórca dla połączeń usług. |
| GitHub | — Konto usługi GitHub . — Połączenie usługi GitHub w celu autoryzowania usługi Azure Pipelines. |
Tworzenie usługi Azure Pipelines
Wykonaj następujące kroki, aby skonfigurować pipeline dla aplikacji Ruby.
Zaloguj się do organizacji usługi Azure DevOps i przejdź do projektu.
Przejdź do obszaru Potoki>Nowy potok.
Wybierz pozycję GitHub jako lokalizację kodu źródłowego.
Możesz zostać przekierowany do usługi GitHub, aby się zalogować. Jeśli tak, podaj dane logowania do GitHub.
Wybierz przykładowe repozytorium języka Ruby.
RubyWybierz szablon potoku.Zostanie wygenerowany plik YAML. Wybierz Zapisz i uruchom>, a następnie zatwierdź bezpośrednio w gałęzi głównej i ponownie wybierz Zapisz i uruchom.
Poczekaj na zakończenie przebiegu potoku. Zwykle zajmuje to 2–5 minut w przypadku podstawowego projektu Ruby.
Masz teraz działający plik YAML (azure-pipelines.yml) w repozytorium, który jest uruchamiany automatycznie podczas wprowadzania zmian do kodu. Ten plik można dostosować w celu spełnienia określonych potrzeb projektu.
Wskazówka
Aby wprowadzić zmiany w pliku YAML opisanym w tym artykule, wybierz potok na stronie Potoki, a następnie wybierz opcję Edytuj dla pliku azure-pipelines.yml.
Środowisko kompilacji
Za pomocą usługi Azure Pipelines możesz tworzyć projekty 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 Użyj wersji języka Ruby na początku potoku.
Używanie określonej wersji języka Ruby
Dodaj zadanie Użyj wersji języka Ruby , aby ustawić wersję języka Ruby w potoku. Ten fragment dodaje Ruby w wersji 3.4 lub nowszej do ścieżki systemowej i ustawia kolejne zadania potoku do jej użycia. Aby sprawdzić, które wersje języka Ruby są wstępnie zainstalowane na agentach hostowanych przez firmę Microsoft, zobacz Oprogramowanie.
pool:
vmImage: 'ubuntu-latest'
steps:
- task: UseRubyVersion@0
inputs:
versionSpec: '>= 3.4'
addToPath: true
displayName: 'Set Ruby version'
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: 'Install Rails'
Instalowanie zależności
Użyj narzędzia Bundler, aby zainstalować zależności gemów do projektu. Bundler odczytuje Gemfile i Gemfile.lock w celu upewnienia się, że te same wersje gemów są zainstalowane w potoku co w środowisku deweloperskim.
- script: |
gem install bundler
bundle install --retry=3 --jobs=4
displayName: 'Install dependencies with Bundler'
Flaga --retry=3 ponawia nieudane instalacje do 3 razy, a --jobs=4å umożliwia równoległe instalowanie gemów dla szybszego tworzenia.
Uruchamianie rake
Aby wykonać Rake w kontekście bieżącego pakietu (zgodnie z definicją w pliku Gemfile), dodaj następujący fragment kodu do pliku azure-pipelines.yml.
- script: bundle exec rake
displayName: 'bundle exec rake'
Publikowanie wyników testu
Przykładowy kod zawiera testy jednostkowe napisane za pomocą narzędzia RSpec. Gdy program Rake jest uruchamiany w poprzednim kroku, wykonuje testy RSpec. RSpec RakeTask w pliku Rakefile jest skonfigurowany do generowania wyników w stylu JUnit przy użyciu RspecJUnitFormatter.
Dodaj zadanie Publikowanie wyników testów, aby opublikować wyniki testów w stylu JUnit na serwerze.
- 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. Aplikacja SimpleCov jest skonfigurowana do używania formatów raportów Cobertura i HTML.
Dodaj zadanie Publikuj wyniki pokrycia kodu, aby opublikować wyniki pokrycia kodu na serwerze. Dzięki temu można wyświetlać metryki pokrycia w podsumowaniu kompilacji i pobierać raporty HTML w celu dalszej analizy.
- task: PublishCodeCoverageResults@2
inputs:
codeCoverageTool: Cobertura
summaryFileLocation: '$(System.DefaultWorkingDirectory)/**/coverage.xml'
reportDirectory: '$(System.DefaultWorkingDirectory)/**/coverage'
failIfCoverageEmpty: true
Kompletny przykładowy potok przetwarzania
Oto kompletny azure-pipelines.yml plik, który demonstruje wszystkie pojęcia omówione w tym artykule. Ten potok:
- Wyzwalacze dotyczące zmian w gałęzi głównej
- Używa systemu Ubuntu jako środowiska kompilacji
- Konfiguruje określoną wersję języka Ruby
- Instaluje zależności projektu
- Uruchamia testy przy użyciu oprogramowania Rake
- Publikuje wyniki testów i metryki pokrycia kodu
# 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'