Azure DevOps Services
Azure Pipelines を使用して、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 3.4 以降をパスに追加し、それを使用するように後続のパイプライン タスクを設定します。
pool:
vmImage: 'ubuntu-latest'
steps:
- task: UseRubyVersion@0
inputs:
versionSpec: '>= 3.4'
addToPath: true
displayName: 'Set Ruby version'
Rails をインストールする
Rails をインストールするには、次のスニペットを azure-pipelines.yml
ファイルに追加します。
- script: gem install rails && rails -v
displayName: 'Install Rails'
依存関係のインストール
次のスニペットを azure-pipelines.yml
ファイルに追加して、Bundler を使用して依存関係をインストールします。
- script: |
gem install bundler
bundle install --retry=3 --jobs=4
displayName: 'Install dependencies with Bundler'
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@2
inputs:
codeCoverageTool: Cobertura
summaryFileLocation: '$(System.DefaultWorkingDirectory)/**/coverage.xml'
reportDirectory: '$(System.DefaultWorkingDirectory)/**/coverage'
failIfCoverageEmpty: true
イメージをビルドしてコンテナー レジストリにプッシュする
Ruby アプリの場合は、 イメージをビルド して コンテナー レジストリにプッシュできます。