はじめに
Azure DevOpsのいち機能としてCI/CDを実行するAzure Pipelinesというものがあります。このAzure Pipelinesを使ってRailsのテストを実行してみることにしました。
環境
- Azure DevOpsは2020年6月19日時点の環境
- Ruby on Railsは6.0.3.2
基本的な設定と記述
Azure PipelinesをWeb上で設定すると、自然と設定ファイルが作成されます。
また、Ruby固有の記述についてはマイクロソフトが基本的な記述方法について以下に資料を公開しています。
以下ではTipsを。
Rubyのバージョン
実行環境がUbuntuの場合は、以下のGitHubページに有るRubyのものから選択することになります。
環境変数
variables
で指定します。
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.
キャッシュ
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.
YAMLの記述文法
以下のページにまとまっていました。
サンプル実装
この記事を書いている時点でのサンプル実装は以下のとおりです。
実行結果画面はこちら。
課題
カバレッジ表示機能もあるようなのですが、SimpleCovで得られたデータを変換する必要があるみたいで、うまく表示できていません。
see.