From 90141333afe680ff6eb7dbe1bc775bd6bdca39e4 Mon Sep 17 00:00:00 2001 From: Sawyer Date: Tue, 29 Sep 2026 20:57:17 -0700 Subject: [PATCH 1/4] ci: run e2e with Postgres and Chrome (CL-9556) --- .github/workflows/ci.yml | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index df286ccc3..2b1bbc2b6 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -46,3 +46,36 @@ jobs: - uses: actions/checkout@v4 - uses: ./.github/actions/setup-workbench - run: bun run test + + # Integration and browser suites under e2e/. CI=true turns DB- and + # Chrome-gated skips into hard failures. + e2e: + needs: setup + runs-on: ubuntu-latest + timeout-minutes: 20 + services: + postgres: + image: postgres:16 + env: + POSTGRES_USER: postgres + POSTGRES_PASSWORD: postgres + POSTGRES_DB: workbench + ports: + - 5432:5432 + options: >- + --health-cmd "pg_isready -U postgres" + --health-interval 5s + --health-timeout 5s + --health-retries 10 + env: + CI: "true" + DATABASE_URL: postgres://postgres:postgres@localhost:5432/workbench + HUB_DATA_DIR: ${{ runner.temp }}/hub-data + steps: + - uses: actions/checkout@v4 + - uses: ./.github/actions/setup-workbench + - id: chrome + uses: browser-actions/setup-chrome@v1 + - run: echo "CHROME_PATH=${{ steps.chrome.outputs.chrome-path }}" >> "$GITHUB_ENV" + - run: mkdir -p "$HUB_DATA_DIR" + - run: bun run test:e2e From c1c779700803bba51df866f816bee907a3b8445a Mon Sep 17 00:00:00 2001 From: Sawyer Date: Tue, 29 Sep 2026 20:58:04 -0700 Subject: [PATCH 2/4] ci: set HUB_DATA_DIR from a step (CL-9556) --- .github/workflows/ci.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 2b1bbc2b6..bb12c3803 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -70,12 +70,13 @@ jobs: env: CI: "true" DATABASE_URL: postgres://postgres:postgres@localhost:5432/workbench - HUB_DATA_DIR: ${{ runner.temp }}/hub-data steps: - uses: actions/checkout@v4 - uses: ./.github/actions/setup-workbench - id: chrome uses: browser-actions/setup-chrome@v1 - run: echo "CHROME_PATH=${{ steps.chrome.outputs.chrome-path }}" >> "$GITHUB_ENV" - - run: mkdir -p "$HUB_DATA_DIR" + - run: | + mkdir -p "$RUNNER_TEMP/hub-data" + echo "HUB_DATA_DIR=$RUNNER_TEMP/hub-data" >> "$GITHUB_ENV" - run: bun run test:e2e From 379d01a83ca9e93547091ea57fbebd6eb9e0952d Mon Sep 17 00:00:00 2001 From: Sawyer Date: Tue, 29 Sep 2026 21:00:06 -0700 Subject: [PATCH 3/4] ci: use the pgvector Postgres image for e2e (CL-9556) --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index bb12c3803..c0e29cfb6 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -55,7 +55,7 @@ jobs: timeout-minutes: 20 services: postgres: - image: postgres:16 + image: pgvector/pgvector:pg16 env: POSTGRES_USER: postgres POSTGRES_PASSWORD: postgres From 3987a8a3d2cbd984810d9a6094fa3053a8ed687a Mon Sep 17 00:00:00 2001 From: Sawyer Date: Tue, 29 Sep 2026 21:01:49 -0700 Subject: [PATCH 4/4] ci: provide hub encryption keys to e2e (CL-9556) --- .github/workflows/ci.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c0e29cfb6..d1798d6bb 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -70,6 +70,10 @@ jobs: env: CI: "true" DATABASE_URL: postgres://postgres:postgres@localhost:5432/workbench + # Throwaway keys for the ephemeral CI hub; same placeholders as .env.example. + CREDENTIAL_ENCRYPTION_KEY: "0000000000000000000000000000000000000000000000000000000000000000" + PRINCIPAL_KEY_ENCRYPTION_KEY: "1111111111111111111111111111111111111111111111111111111111111111" + SIDECAR_CREDENTIAL_ENCRYPTION_KEY: "2222222222222222222222222222222222222222222222222222222222222222" steps: - uses: actions/checkout@v4 - uses: ./.github/actions/setup-workbench