From 987b328ac1c6461dbd66b9b198746632be66ccbf Mon Sep 17 00:00:00 2001 From: Mike Dalessio Date: Fri, 20 Mar 2026 16:41:41 -0400 Subject: [PATCH] Add database health checks and fail-fast: false to CI MySQL and Postgres services had no health checks, causing db:setup to run before the databases were ready to accept connections. Also set fail-fast: false so all matrix jobs run to completion. Co-Authored-By: Claude Opus 4.6 (1M context) --- .github/workflows/build.yml | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index ead3459..b1ba33d 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -20,6 +20,7 @@ jobs: name: Tests runs-on: ubuntu-latest strategy: + fail-fast: false matrix: ruby-version: [3.0.2] database: [sqlite, postgres, mysql] @@ -34,12 +35,22 @@ jobs: POSTGRES_HOST_AUTH_METHOD: "trust" ports: - 55432:5432 + options: >- + --health-cmd "pg_isready -U postgres" + --health-interval 10s + --health-timeout 5s + --health-retries 5 mysql: image: percona:5.7.22 env: MYSQL_ALLOW_EMPTY_PASSWORD: "yes" ports: - 33306:3306 + options: >- + --health-cmd "mysqladmin ping -h 127.0.0.1" + --health-interval 10s + --health-timeout 5s + --health-retries 5 env: TARGET_DB: ${{ matrix.database }} steps: