#はじめに
こちらの記事ではCircleCIを使用して自動テストを行うまでの過程を記しています。
また、他の記事などから自身が理解できないコードを集めて構築する!ということが嫌だったため、簡単で超シンプルなコードのみで構成しておりますので、不足等がありましたらご指摘ください
#対象者・前提
-
CircleCIの記事や公式リファレンスを何度見ても理解できず、どうしたらいいかわからないけど、絶対に導入したいと思っている方
-
できれば、超シンプルで自身理解できる範囲で構築していきたい方
-
すでにDockerを導入したRails6で作成したアプリケーションをお持ちの方
[参考]
筆者が書いたDocker導入時エラー格闘記録
https://qiita.com/tochisuke221/items/374359eb3cff1182ed6c
#実装手順
CircleCIを入れよう!と思い色々な記事を参考にしましたが、どうもうまくいかない、、、
そんなときに、dockerを使ってCircleCIを動かす記事に出会いました。
この記事を参考にすれば、docker環境で普段行っているテスト等をまんま同じようにやらせればできるんじゃね?と仮説を立てて、以下のように超シンプルにconfig.ymlを書いていきました。
注意
.circleディレクトリとconfig.ymlは各自手動で作ってください
% mkdir .circle
% cd .circle
% vim config.yml
さて、config.ymlを見ていきましょう!
version: 2
jobs:
build:
machine:
image: circleci/classic:edge
working_directory: ~/repo
steps:
- checkout
- run:
name: Install Docker Compose
command: |
curl -L https://github.com/docker/compose/releases/download/1.19.0/docker-compose-`uname -s`-`uname -m` > ~/docker-compose
chmod +x ~/docker-compose
sudo mv ~/docker-compose /usr/local/bin/docker-compose
- run:
name: docker-compose up
command: |
set -x
docker-compose up --build -d
- run:
name: docker-compose stop
command: |
set -x
docker-compose stop
- run:
name: docker-compose run --rm web yarn install --cache-files
command: |
set -x
docker-compose run --rm web yarn install --cache-files
- run:
name: docker-compose run --rm web rails webpacker:compile
command: |
set -x
docker-compose run --rm web rails webpacker:compile
- run:
name: docker-compose up
command: |
set -x
docker-compose up -d
- run:
name: docker-compose run web bundle exec rails db:create
command: |
set -x
docker-compose run web bundle exec rails db:create
- run:
name: docker-compose run web bundle exec rails db:migrate
command: |
set -x
docker-compose run web bundle exec rails db:migrate
- run:
name: docker-compose run web bundle exec rspec
command: |
set -x
docker-compose run web bundle exec rspec
- run:
name: docker-compose down
command: docker-compose down
ちょっとみづらいので、コマンドごとに何をしているのかざっくりとまとめてみました。
#まずはdocker composeをインストールし指定の場所にファイルを移動させます
https://github.com/docker/compose/releases/download/1.19.0/docker-compose-`uname -s`-`uname -m` > ~/docker-compose
chmod +x ~/docker-compose
sudo mv ~/docker-compose /usr/local/bin/docker-compose
#次に、ビルド&起動をします
docker-compose up --build -d
#一旦ストップします。
docker-compose stop
#yarnをインストールします。(本来いらないかもしれませんが、なぜかエラーがでるので、、)
docker-compose run --rm web yarn install --cache-files
#webpackerをコンパイルします(こちらも不要かもしれません)
docker-compose run --rm web rails webpacker:compile
#再起動します
docker-compose up -d
#ここからいつものや〜〜つ(DB作成&マイグレーション)
docker-compose run web bundle exec rails db:create
docker-compose run web bundle exec rails db:migrate
#テスト実行!!!
docker-compose run web bundle exec rspec
#おわり
docker-compose down
どうでしょうか、大まかな流れは理解していただけましたでしょうか?
Dockerを使えば、各自環境に振り回されずに実行が可能ですのでとっても便利です。
とりあえず、コピペでも行けるかと思いますので是非試してみてください!!
おわりに
アプリそのものが便利になるわけではないですが、自分自身の効率がかなり上がったので捗ります。こうしたちょっとした工夫で仕事の効率が上がるのなら最高ですね。実務に入ってからも、ユーザ目線に加えて、開発者目線で「どうしたらもっと楽に効率に開発できるか」を考えていきたいです。
以上、お疲れ様でした!