言語ガイド: Ruby
このガイドでは、CircleCI で Ruby on Rails アプリケーションをビルドする方法について説明します。
概要
お急ぎの場合は、下記の設定ファイルの例をプロジェクトのルート ディレクトリにある .circleci/config.yml
に貼り付け、ビルドを開始してください。
CircleCI では、 GitHub 上で Ruby on Rails のサンプルプロジェクトを提供しており、 CircleCI 上でのビルドを参照することができます。
このアプリケーションでは、最新の安定した Rails バージョン 6.1 (rspec-rails
)、 RspecJunitFormatter および PostgreSQL をデータベースとして使用しています。
CircleCI のビルド済み Docker イメージ
このアプリケーションのビルドには、ビルド済み CircleCI Docker イメージの 1 つを使用しています。
CircleCI のビルド済みイメージの使用を検討してください。 このイメージには、CI 環境で役立つツールがプリインストールされています。 Docker Hub ( https://hub.docker.com/r/circleci/ruby/) から必要な Ruby バージョンを選択できます。
セカンダリ「サービス」コンテナとして使用するデータベース イメージも Docker ハブ の circleci
ディレクトリで提供しています。
設定ファイルの例
以下のコードブロックは、コメントをつけてサンプルアプリケーションの設定の各部分を説明しています。
version: 2.1 # 2.1 を使うと Orb や他の機能を使用することができます。
# 設定で使用する Orb を宣言します。
# read more about orbs: https://circleci.com/docs/orb-intro/
orbs:
ruby: circleci/ruby@1.0
node: circleci/node@2
jobs:
build: # our first job, named "build"
docker:
- image: cimg/ruby:2.7-node # use a tailored CircleCI docker image.
auth:
username: mydockerhub-user
password: $DOCKERHUB_PASSWORD # コンテキスト/ プロジェクト UI の環境変数を参照します。
steps:
- checkout # Git コードをプルダウンします。
- ruby/install-deps # use the ruby orb to install dependencies
# use the node orb to install our packages
# specifying that we use `yarn` and to cache dependencies with `yarn.lock`
# learn more: https://circleci.com/docs/caching/
- node/install-packages:
pkg-manager: yarn
cache-key: "yarn.lock"
test: # our next job, called "test"
# we run "parallel job containers" to enable speeding up our tests;
# this splits our tests across multiple containers.
parallelism: 3
# ここでは、2 つの Docker イメージを設定します。
docker:
- image: cimg/ruby:2.7-node # プライマリ Docker イメージです。ここでステップコマンドが実行されます。
auth:
username: mydockerhub-user
password: $DOCKERHUB_PASSWORD # context / project UI env-var reference
- image: cimg/postgres:14.0
auth:
username: mydockerhub-user
password: $DOCKERHUB_PASSWORD # context / project UI env-var reference
environment: # add POSTGRES environment variables.
POSTGRES_USER: circleci-demo-ruby
POSTGRES_DB: rails_blog_test
POSTGRES_PASSWORD: ""
# Ruby/Rails 固有の環境変数をプライマリコンテナに適用します。
environment:
BUNDLE_JOBS: "3"
BUNDLE_RETRY: "3"
PGHOST: 127.0.0.1
PGUSER: circleci-demo-ruby
PGPASSWORD: ""
RAILS_ENV: test
# 実行する一連のステップです。「ビルド」のステップと似たステップもあります。
steps:
- checkout
- ruby/install-deps
- node/install-packages:
pkg-manager: yarn
cache-key: "yarn.lock"
# ここでは、データベース上で実行する前に
# セカンダリコンテナが起動することを確認します。
- run:
name: DB の待機
command: dockerize -wait tcp://localhost:5432 -timeout 1m
- run:
name: データベースのセットアップ
command: bundle exec rails db:schema:load --trace
# RSpec を並列実行します。
- ruby/rspec-test
# ワークフローを使って上記で宣言したジョブをオーケストレーションします。
workflows:
version: 2
build_and_test: # ワークフローの名前は "build_and_test" です。
jobs: # このワークフローの一部として実行するジョブのリストです。
- build # まず、ビルドを実行します。
- test: # 次に、テストを実行します。
requires: # テストを実行するにはビルドを渡す必要があります。
- build # 最後に、ビルドしたジョブを実行します。
Ruby on Rails のデモ プロジェクトのビルド
他のディレクトリを指定しない限り、以降の job
ではこのパスがデフォルトの作業ディレクトリとなります。
CircleCI を初めて使用する際は、プロジェクトをご自身でビルドしてみることをお勧めします。 以下に、ご自身のアカウントを使用してデモ プロジェクトをビルドする方法を示します。
- お使いのアカウントに、GitHub 上の プロジェクトをフォークします。
- CircleCI アプリケーションの プロジェクトダッシュボードに行き、フォークしたプロジェクトの隣にある[Follow Project (プロジェクトをフォローする)]ボタンをクリックします。
- 変更を加えるには、
.circleci/config.yml
ファイルを編集してコミットします。 コミットを GitHub にプッシュすると、CircleCI がそのプロジェクトをビルドしてテストします。
関連項目
デプロイの概要に、さまざまなターゲットの設定例へのリンクを掲載しています。
このアプリケーションは Ruby on Rails Web アプリケーションの最もシンプルな設定例です。 実際のプロジェクトはこれよりも複雑なため、ご自身のプロジェクトを設定する際は、以下のサイトのさらに詳細な実際のアプリの例が参考になります。
- Discourse: オープンソースのディスカッション プラットフォーム
- Sinatra: Web アプリケーションを迅速に作成できる簡単な DSL のデモ アプリケーション
ドキュメントの改善にご協力ください
このガイドは、CircleCI の他のドキュメントと同様にオープンソースであり、 GitHub でご利用いただけます。 ご協力いただき、ありがとうございます。
- このページの編集をご提案ください (最初に「コントリビューションガイド」をご覧ください)。
- ドキュメントの問題点を報告する、またはフィードバックやコメントを送信するには、GitHub で issue を作成してください。
- CircleCI は、ユーザーの皆様の弊社プラットフォームにおけるエクスペリエンスを向上させる方法を常に模索しています。 フィードバックをお寄せいただける場合は、リサーチコミュニティにご参加ください。
サポートが必要ですか
CircleCI のサポートエンジニアによる、サービスに関する問題、請求およびアカウントについての質問への対応、設定の構築に関する問題解決のサポートを行っています。 サポートチケットを送信して、CircleCI のサポートエンジニアにお問い合わせください。日本語でお問い合わせいただけます。
または、 サポートサイト から、サポート記事やコミュニティフォーラム、トレーニングリソースをご覧いただけます。
CircleCI Documentation by CircleCI is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.