タイトルの通り。githubとの連携は済ませた状態です。初心者が独学とググりまくりで作ったものなのでお手柔らかにお願いします。。
環境
Mac OS X
Ruby: 2.7.1
Rails: 6.0.3.4
mysql: 8.0.2
実際のコード
config.yml
version: 2.1
orbs:
ruby: circleci/ruby@0.1.2
jobs:
build:
docker:
- image: circleci/ruby:2.7.1-buster-browsers
environment:
BUNDLER_VERSION: 2.1.4
RAILS_ENV: test
- image: circleci/mysql:8.0.22
command: [--default-authentication-plugin=mysql_native_password]
environment:
MYSQL_DATABASE: 'rails_practice_test'
working_directory: ~/myappname
steps:
- checkout
- restore_cache:
keys:
- v1-dependencies-{{ checksum "Gemfile.lock" }}
- v1-dependencies-
- run:
name: setup bundler
command: |
sudo gem update --system
sudo gem uninstall bundler
sudo rm /usr/local/bin/bundle
sudo gem install bundler
- run:
name: Which bundler?
command: bundle -v
- run:
name: bundle install
command: |
bundle install --jobs=4 --retry=3 --path vendor/bundle
- save_cache:
paths:
- ./vendor/bundle
key: v1-dependencies-{{ checksum "Gemfile.lock" }}
- run: mysql_config --socket
- run: bundle exec rails db:create
- run: bundle exec rails db:schema:load
- run:
name: install yarn
command: |
curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
sudo apt update && sudo apt install yarn
- run: bin/yarn
- run: bin/webpack
- run:
name: run rspec
command: bundle exec rspec
database.ymlのテスト環境も以下のように少し変える
database.yml
test:
<<: *default
database: 'rails_practice_test'
username: <%= ENV.fetch("DB_USERNAME") { 'root' } %>
port: <%= ENV.fetch("DB_PORT") { hoge } %>
host: <%= ENV.fetch("DB_HOST") { 'hoge.hoge.hoge.hoge' } %>
自分はこれでローカルでもコミット時にもRSpecを走らせることができました。一部の変数は書き換えてるので適宜読み替えてください。
↓以下疑問に思ったことです
「CircleCiを回すときはconfig/database.ymlとconfig/database.ynl.ciを入れ替える必要がある」という記事が多く見られたのですが、これが一般的なのでしょうか?自分が入れ替えなくても通せたので疑問に思いました。
記事を読んでいただきありがとうございました。