次の方法で共有


Ruby アプリのビルドとテスト

Azure DevOps Services

Azure Pipelines を使用して、Ruby アプリケーションをビルド、テスト、デプロイする方法について説明します。

Azure Pipelines を作成する

Ruby アプリのパイプラインを設定するには、次の手順に従います。

  1. Azure DevOps 組織にサインインし、プロジェクトに移動します。

  2. パイプライン>新しいパイプラインに移動します。

  3. ソース コードの場所として [GitHub] を選択します。

    サインインするために GitHub にリダイレクトされる場合があります。 その場合は、GitHub の資格情報を入力します。

  4. Ruby サンプル リポジトリを選択します。

  5. パイプラインの Ruby テンプレートを選択します。

  6. YAML ファイルが生成されます。 [保存して実行] を選択>メイン ブランチに直接コミットし、[保存して再実行] を選択します。

  7. 実行が終了するまで待ちます。

リポジトリに作業用の 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 アプリの場合は、 イメージをビルド して コンテナー レジストリにプッシュできます。