エラー内容
ActiveRecord::ConnectionNotEstablished:
MySQL client is not connected
改善前の実装
.github/workflows/backend_test.yml
name: Backend Test
jobs:
run-rspec:
runs-on: ubuntu-latest
services:
mysql:
image: mysql:8.0
ports:
- 3306:3306
env:
MYSQL_ALLOW_EMPTY_PASSWORD: "yes"
改善策
ヘルスチェック周りのオプションを設定する
これにより、rspec実行前にmysqlコンテナの起動が完了していることを確認できるようになる(はず)。
改善後の実装
.github/workflows/backend_test.yml
name: Backend Test
jobs:
run-rspec:
runs-on: ubuntu-latest
services:
mysql:
image: mysql:8.0
ports:
- 3306:3306
env:
MYSQL_ALLOW_EMPTY_PASSWORD: "yes"
options: >-
--health-cmd="mysqladmin ping"
--health-interval=10s
--health-timeout=5s
--health-retries=3
参考