Azure PipelinesでRailsのテストを実行する

はじめに

Azure DevOpsのいち機能としてCI/CDを実行するAzure Pipelinesというものがあります。このAzure Pipelinesを使ってRailsのテストを実行してみることにしました。

環境

  • Azure DevOpsは2020年6月19日時点の環境
  • Ruby on Railsは6.0.3.2

基本的な設定と記述

Azure PipelinesをWeb上で設定すると、自然と設定ファイルが作成されます。

docs.microsoft.com

また、Ruby固有の記述についてはマイクロソフトが基本的な記述方法について以下に資料を公開しています。

docs.microsoft.com

以下ではTipsを。

Rubyのバージョン

実行環境がUbuntuの場合は、以下のGitHubページに有るRubyのものから選択することになります。

github.com

環境変数

variablesで指定します。

docs.microsoft.com

DBなどをDockerイメージを使って用意する

以下のようにservicesと書いて指定します。

services:
  redis:
    image: redis:6.0-alpine
    ports:
      - 6379:6379
  postgresql:
    image: postgres:11.7
    env:
      POSTGRES_USER: rails_app
      POSTGRES_PASSWORD: rails_app
    ports:
      - 5432:5432

see.

docs.microsoft.com

キャッシュ

bundle installなどは時間がかかるのでキャッシュしたいです。以下のように記述をして、bundle install時に--path vendor/bundleを指定しておくとうまく動きました。

- task: Cache@2
  inputs:
    key: $(Build.SourcesDirectory)/Gemfile.lock
    path: $(Build.SourcesDirectory)/vendor/bundle
  displayName: Cache gem

see.

docs.microsoft.com

YAMLの記述文法

以下のページにまとまっていました。

docs.microsoft.com

サンプル実装

この記事を書いている時点でのサンプル実装は以下のとおりです。

github.com

実行結果画面はこちら。

f:id:miyohide:20200620224109p:plain

課題

カバレッジ表示機能もあるようなのですが、SimpleCovで得られたデータを変換する必要があるみたいで、うまく表示できていません。

see.

docs.microsoft.com