建置及測試 Ruby 應用程式
Azure DevOps Services
本文說明如何自動建置 Ruby 專案。
建立 Azure Pipelines
請執行下列步驟來設定 Ruby 應用程式的管線。
登入您的 Azure DevOps 組織並前往您的專案。
選取[管線>][新增管線]。
選取 [GitHub ] 作為原始程式碼的位置。
系統可能會將您重新導向至 GitHub 以進行登入。 若是如此,請輸入您的 GitHub 認證。
選取您的 Ruby 範例存放庫。
Ruby
選取管線的範本。會產生 YAML 檔案。 選取 [儲存並直接執行>認可至主要分支],然後選擇 [儲存並再次執行]。
等待執行完成。
您的存放庫中有運作中的 YAML 檔案 (azure-pipelines.yml
) ,可供您自訂。
提示
若要變更本文所述的 YAML 檔案,請在 [ 管線 ] 頁面中選取管線,然後 編輯azure-pipelines.yml
檔案。
建置環境
您可以使用 Azure Pipelines 來建置 Ruby 專案,而不需要設定您自己的任何基礎結構。 Ruby 已預先安裝在 Azure Pipelines 中的 Microsoft 裝載代理程式 上。 您可以使用 Linux、macOS 或 Windows 代理程式來執行組建。
如需預先安裝的 Ruby 確切版本,請參閱 Microsoft 裝載的代理程式。 若要在 Microsoft 裝載的代理程式上安裝特定版本的 Ruby,請將 [使用 Ruby 版本 ] 工作新增至管線的開頭。
使用特定的 Ruby 版本
新增 [使用 Ruby 版本 ] 工作,以設定管線中使用的 Ruby 版本。 此程式碼片段會將 Ruby 2.4 或更新版本新增至路徑,並設定要使用的後續管線工作。
# 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
安裝滑軌
若要安裝 Rails,請將下列程式碼片段新增至您的 azure-pipelines.yml
檔案。
- script: gem install rails && rails -v
displayName: 'gem install rails'
安裝相依性
若要使用 Bundler 來安裝相依性,請將下列程式碼片段新增至您的 azure-pipelines.yml
檔案。
- script: |
CALL gem install bundler
bundle install --retry=3 --jobs=4
displayName: 'bundle install'
執行 Rake
若要在目前套件組合的內容中執行 Rake, (如 Gemfile) 中所定義,請將下列程式碼片段新增至檔案 azure-pipelines.yml
。
- script: bundle exec rake
displayName: 'bundle exec rake'
發佈測試結果
範例程式碼包含使用 RSpec撰寫的單元測試。 當上一個步驟執行 Rake 時,它會執行 RSpec 測試。 Rakefile 中的 RSpec RakeTask 已設定為使用 RspecJUnitFormatter 產生 JUnit 樣式結果。
新增 [發佈測試結果] 工作,將 JUnit 樣式測試結果發佈至伺服器。 您可以取得豐富的測試報告體驗,可用來針對任何失敗的測試進行疑難排解,以及測試計時分析。
- task: PublishTestResults@2
condition: succeededOrFailed()
inputs:
testResultsFiles: '**/test-*.xml'
testRunTitle: 'Ruby tests'
發佈程式碼涵蓋範圍結果
範例程式碼會使用 SimpleCov 在單元測試執行時收集程式碼涵蓋範圍資料。 SimpleCov 已設定為使用 Cobertura 和 HTML 報表格式器。
新增 [發佈程式碼涵蓋範圍結果] 工作,將程式碼涵蓋範圍結果發佈至伺服器。 當您這麼做時,可以在組建摘要中看到涵蓋範圍計量,而 HTML 報表則可下載以供進一步分析。
- task: PublishCodeCoverageResults@1
inputs:
codeCoverageTool: Cobertura
summaryFileLocation: '$(System.DefaultWorkingDirectory)/**/coverage.xml'
reportDirectory: '$(System.DefaultWorkingDirectory)/**/coverage'
建置映射並推送至容器登錄
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應