生成和测试 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
若要安装 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
若要在 Gemfile) 中定义的当前捆绑包 (的上下文中执行 Rake,请将以下代码片段添加到文件中 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'
生成映像并推送到容器注册表
对于 Ruby 应用,还可以生成映像并将其推送到容器注册表。
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈