From ac8e0d4217e167dd932334da64ba5eddafed95e9 Mon Sep 17 00:00:00 2001 From: Charles Bochet Date: Tue, 31 Mar 2026 21:41:42 +0200 Subject: [PATCH] Replace twentycrm/twenty-postgres-spilo with official postgres:16 in CI (#19182) ## Summary - Replaces `twentycrm/twenty-postgres-spilo` with the official `postgres:16` image across all 7 CI workflow files - Removes Docker Hub `credentials` blocks from all service containers (postgres, redis, clickhouse) - Removes the `Login to Docker Hub` step from the breaking changes workflow ## Context Fork PRs cannot access repository secrets/variables, causing `${{ vars.DOCKERHUB_USERNAME }}` and `${{ secrets.DOCKERHUB_PASSWORD }}` to resolve to empty strings. GitHub Actions rejects empty credential values at template validation time, failing the job before any step runs. The custom spilo image was the original reason credentials were needed (to avoid Docker Hub rate limits on non-official images). The only Postgres extensions required in CI (`uuid-ossp`, `unaccent`) are built into the official `postgres:16` image. Official Docker Hub images have significantly higher pull rate limits and don't require authentication. --- .github/workflows/ci-breaking-changes.yaml | 23 +++------------- .github/workflows/ci-create-app-e2e.yaml | 14 +++------- .github/workflows/ci-merge-queue.yaml | 14 +++------- .github/workflows/ci-sdk.yaml | 14 +++------- .github/workflows/ci-server.yaml | 31 +++++----------------- .github/workflows/ci-website.yaml | 11 +++----- .github/workflows/ci-zapier.yaml | 14 +++------- 7 files changed, 24 insertions(+), 97 deletions(-) diff --git a/.github/workflows/ci-breaking-changes.yaml b/.github/workflows/ci-breaking-changes.yaml index 85fa5e828e..1e7dd7bb2e 100644 --- a/.github/workflows/ci-breaking-changes.yaml +++ b/.github/workflows/ci-breaking-changes.yaml @@ -35,15 +35,10 @@ jobs: runs-on: ubuntu-latest services: postgres: - image: twentycrm/twenty-postgres-spilo - credentials: - username: ${{ vars.DOCKERHUB_USERNAME }} - password: ${{ secrets.DOCKERHUB_PASSWORD }} + image: postgres:18 env: - PGUSER_SUPERUSER: postgres - PGPASSWORD_SUPERUSER: postgres - ALLOW_NOSSL: 'true' - SPILO_PROVIDER: 'local' + POSTGRES_USER: postgres + POSTGRES_PASSWORD: postgres ports: - 5432:5432 options: >- @@ -53,16 +48,10 @@ jobs: --health-retries 5 redis: image: redis - credentials: - username: ${{ vars.DOCKERHUB_USERNAME }} - password: ${{ secrets.DOCKERHUB_PASSWORD }} ports: - 6379:6379 clickhouse: image: clickhouse/clickhouse-server:25.8.8 - credentials: - username: ${{ vars.DOCKERHUB_USERNAME }} - password: ${{ secrets.DOCKERHUB_PASSWORD }} env: CLICKHOUSE_PASSWORD: clickhousePassword CLICKHOUSE_URL: "http://default:clickhousePassword@localhost:8123/twenty" @@ -421,12 +410,6 @@ jobs: echo "valid=$valid" >> $GITHUB_OUTPUT - - name: Login to Docker Hub - uses: docker/login-action@v3 - with: - username: ${{ vars.DOCKERHUB_USERNAME }} - password: ${{ secrets.DOCKERHUB_PASSWORD }} - - name: Install OpenAPI Diff Tool run: | # Using the Java-based OpenAPITools/openapi-diff via Docker diff --git a/.github/workflows/ci-create-app-e2e.yaml b/.github/workflows/ci-create-app-e2e.yaml index fa2581a8ad..88877a27f1 100644 --- a/.github/workflows/ci-create-app-e2e.yaml +++ b/.github/workflows/ci-create-app-e2e.yaml @@ -36,15 +36,10 @@ jobs: runs-on: ubuntu-latest-4-cores services: postgres: - image: twentycrm/twenty-postgres-spilo - credentials: - username: ${{ vars.DOCKERHUB_USERNAME }} - password: ${{ secrets.DOCKERHUB_PASSWORD }} + image: postgres:18 env: - PGUSER_SUPERUSER: postgres - PGPASSWORD_SUPERUSER: postgres - ALLOW_NOSSL: 'true' - SPILO_PROVIDER: 'local' + POSTGRES_USER: postgres + POSTGRES_PASSWORD: postgres ports: - 5432:5432 options: >- @@ -54,9 +49,6 @@ jobs: --health-retries 5 redis: image: redis - credentials: - username: ${{ vars.DOCKERHUB_USERNAME }} - password: ${{ secrets.DOCKERHUB_PASSWORD }} ports: - 6379:6379 env: diff --git a/.github/workflows/ci-merge-queue.yaml b/.github/workflows/ci-merge-queue.yaml index a7ef6b96d9..dc27c51ad2 100644 --- a/.github/workflows/ci-merge-queue.yaml +++ b/.github/workflows/ci-merge-queue.yaml @@ -25,15 +25,10 @@ jobs: NODE_OPTIONS: "--max-old-space-size=10240" services: postgres: - image: twentycrm/twenty-postgres-spilo - credentials: - username: ${{ vars.DOCKERHUB_USERNAME }} - password: ${{ secrets.DOCKERHUB_PASSWORD }} + image: postgres:18 env: - PGUSER_SUPERUSER: postgres - PGPASSWORD_SUPERUSER: postgres - ALLOW_NOSSL: "true" - SPILO_PROVIDER: "local" + POSTGRES_USER: postgres + POSTGRES_PASSWORD: postgres ports: - 5432:5432 options: >- @@ -43,9 +38,6 @@ jobs: --health-retries 5 redis: image: redis - credentials: - username: ${{ vars.DOCKERHUB_USERNAME }} - password: ${{ secrets.DOCKERHUB_PASSWORD }} ports: - 6379:6379 steps: diff --git a/.github/workflows/ci-sdk.yaml b/.github/workflows/ci-sdk.yaml index bd28232bc3..73a353ef1f 100644 --- a/.github/workflows/ci-sdk.yaml +++ b/.github/workflows/ci-sdk.yaml @@ -53,15 +53,10 @@ jobs: if: needs.changed-files-check.outputs.any_changed == 'true' services: postgres: - image: twentycrm/twenty-postgres-spilo - credentials: - username: ${{ vars.DOCKERHUB_USERNAME }} - password: ${{ secrets.DOCKERHUB_PASSWORD }} + image: postgres:18 env: - PGUSER_SUPERUSER: postgres - PGPASSWORD_SUPERUSER: postgres - ALLOW_NOSSL: 'true' - SPILO_PROVIDER: 'local' + POSTGRES_USER: postgres + POSTGRES_PASSWORD: postgres ports: - 5432:5432 options: >- @@ -71,9 +66,6 @@ jobs: --health-retries 5 redis: image: redis - credentials: - username: ${{ vars.DOCKERHUB_USERNAME }} - password: ${{ secrets.DOCKERHUB_PASSWORD }} ports: - 6379:6379 env: diff --git a/.github/workflows/ci-server.yaml b/.github/workflows/ci-server.yaml index b2d625a2b9..dec140049f 100644 --- a/.github/workflows/ci-server.yaml +++ b/.github/workflows/ci-server.yaml @@ -83,15 +83,10 @@ jobs: runs-on: ubuntu-latest services: postgres: - image: twentycrm/twenty-postgres-spilo - credentials: - username: ${{ vars.DOCKERHUB_USERNAME }} - password: ${{ secrets.DOCKERHUB_PASSWORD }} + image: postgres:18 env: - PGUSER_SUPERUSER: postgres - PGPASSWORD_SUPERUSER: postgres - ALLOW_NOSSL: 'true' - SPILO_PROVIDER: 'local' + POSTGRES_USER: postgres + POSTGRES_PASSWORD: postgres ports: - 5432:5432 options: >- @@ -101,9 +96,6 @@ jobs: --health-retries 5 redis: image: redis - credentials: - username: ${{ vars.DOCKERHUB_USERNAME }} - password: ${{ secrets.DOCKERHUB_PASSWORD }} ports: - 6379:6379 steps: @@ -231,15 +223,10 @@ jobs: shard: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] services: postgres: - image: twentycrm/twenty-postgres-spilo - credentials: - username: ${{ vars.DOCKERHUB_USERNAME }} - password: ${{ secrets.DOCKERHUB_PASSWORD }} + image: postgres:18 env: - PGUSER_SUPERUSER: postgres - PGPASSWORD_SUPERUSER: postgres - ALLOW_NOSSL: 'true' - SPILO_PROVIDER: 'local' + POSTGRES_USER: postgres + POSTGRES_PASSWORD: postgres ports: - 5432:5432 options: >- @@ -249,16 +236,10 @@ jobs: --health-retries 5 redis: image: redis - credentials: - username: ${{ vars.DOCKERHUB_USERNAME }} - password: ${{ secrets.DOCKERHUB_PASSWORD }} ports: - 6379:6379 clickhouse: image: clickhouse/clickhouse-server:25.8.8 - credentials: - username: ${{ vars.DOCKERHUB_USERNAME }} - password: ${{ secrets.DOCKERHUB_PASSWORD }} env: CLICKHOUSE_PASSWORD: clickhousePassword CLICKHOUSE_URL: "http://default:clickhousePassword@localhost:8123/twenty" diff --git a/.github/workflows/ci-website.yaml b/.github/workflows/ci-website.yaml index a1e32d49c4..e59ef3094c 100644 --- a/.github/workflows/ci-website.yaml +++ b/.github/workflows/ci-website.yaml @@ -26,15 +26,10 @@ jobs: runs-on: ubuntu-latest services: postgres: - image: twentycrm/twenty-postgres-spilo - credentials: - username: ${{ vars.DOCKERHUB_USERNAME }} - password: ${{ secrets.DOCKERHUB_PASSWORD }} + image: postgres:18 env: - PGUSER_SUPERUSER: postgres - PGPASSWORD_SUPERUSER: postgres - ALLOW_NOSSL: 'true' - SPILO_PROVIDER: 'local' + POSTGRES_USER: postgres + POSTGRES_PASSWORD: postgres ports: - 5432:5432 options: >- diff --git a/.github/workflows/ci-zapier.yaml b/.github/workflows/ci-zapier.yaml index 175d92ef0d..38a785adcb 100644 --- a/.github/workflows/ci-zapier.yaml +++ b/.github/workflows/ci-zapier.yaml @@ -29,15 +29,10 @@ jobs: runs-on: ubuntu-latest services: postgres: - image: twentycrm/twenty-postgres-spilo - credentials: - username: ${{ vars.DOCKERHUB_USERNAME }} - password: ${{ secrets.DOCKERHUB_PASSWORD }} + image: postgres:18 env: - PGUSER_SUPERUSER: postgres - PGPASSWORD_SUPERUSER: postgres - ALLOW_NOSSL: 'true' - SPILO_PROVIDER: 'local' + POSTGRES_USER: postgres + POSTGRES_PASSWORD: postgres ports: - 5432:5432 options: >- @@ -47,9 +42,6 @@ jobs: --health-retries 5 redis: image: redis - credentials: - username: ${{ vars.DOCKERHUB_USERNAME }} - password: ${{ secrets.DOCKERHUB_PASSWORD }} ports: - 6379:6379 steps: