mirror of
https://github.com/mozilla-services/syncstorage-rs.git
synced 2026-01-20 16:01:52 +01:00
This commit enables Postgres builds and tests in CircleCI. Only Tokenserver supports Postgres at the moment, and the Python based integration tests have an implicit dependency on MySQL, so the CI jobs only use Postgres where possible. The jobs have been split up and named more explicitly. The hope is to simply delete the mysql jobs in the future.
80 lines
2.5 KiB
YAML
80 lines
2.5 KiB
YAML
services:
|
|
sync-db:
|
|
# Getting sporadic errors in spanner.
|
|
# These errors are "INTERNAL: ZETASQL_RET_CHECK failure"
|
|
# in the `backend/query/query_engine.cc` file for spanner.
|
|
# These result in a 500 error, which causes the test to fail.
|
|
# I believe come from the SQL parser, but am not sure. I am
|
|
# unable to produce these errors locally, and am using the cited
|
|
# version.
|
|
image: gcr.io/cloud-spanner-emulator/emulator:1.5.13
|
|
ports:
|
|
- "9010:9010"
|
|
- "9020:9020"
|
|
environment:
|
|
PATH: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
|
|
|
|
sync-db-setup:
|
|
image: app:build
|
|
depends_on:
|
|
- sync-db
|
|
restart: "no"
|
|
entrypoint:
|
|
- /bin/sh
|
|
- -c
|
|
- /app/scripts/prepare-spanner.sh && sleep infinity
|
|
environment:
|
|
SYNC_SYNCSTORAGE__SPANNER_EMULATOR_HOST: sync-db:9020
|
|
|
|
tokenserver-db:
|
|
image: docker.io/library/postgres:18.0
|
|
volumes:
|
|
- tokenserver_db_data:/var/lib/postgresql
|
|
restart: always
|
|
ports:
|
|
- "5432"
|
|
environment:
|
|
POSTGRES_DB: tokenserver
|
|
POSTGRES_USER: test
|
|
POSTGRES_PASSWORD: test
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "pg_isready -U test -d tokenserver"]
|
|
interval: 2s
|
|
retries: 10
|
|
start_period: 20s
|
|
timeout: 2s
|
|
|
|
mock-fxa-server:
|
|
image: app:build
|
|
restart: "no"
|
|
entrypoint: "sh /app/scripts/start_mock_fxa_server.sh"
|
|
environment:
|
|
MOCK_FXA_SERVER_HOST: 0.0.0.0
|
|
MOCK_FXA_SERVER_PORT: 6000
|
|
|
|
syncserver:
|
|
# NOTE: The naming in the rest of this repository has been updated to reflect the fact
|
|
# that Syncstorage and Tokenserver are now part of one repository/server called
|
|
# "Syncserver" (updated from "syncstorage-rs"). We keep the legacy naming below for
|
|
# backwards compatibility with previous Docker images.
|
|
image: ${SYNCSTORAGE_RS_IMAGE:-syncstorage-rs:latest}
|
|
restart: always
|
|
ports:
|
|
- "8000:8000"
|
|
depends_on:
|
|
- sync-db-setup
|
|
environment:
|
|
SYNC_HOST: 0.0.0.0
|
|
SYNC_MASTER_SECRET: secret0
|
|
SYNC_SYNCSTORAGE__DATABASE_URL: spanner://projects/test-project/instances/test-instance/databases/test-database
|
|
SYNC_SYNCSTORAGE__SPANNER_EMULATOR_HOST: sync-db:9010
|
|
SYNC_TOKENSERVER__DATABASE_URL: postgres://test:test@tokenserver-db:5432/tokenserver
|
|
SYNC_TOKENSERVER__RUN_MIGRATIONS: "true"
|
|
|
|
volumes:
|
|
tokenserver_db_data:
|
|
|
|
# Application runs off of port 8000.
|
|
# you can test if it's available with
|
|
# curl "http://localhost:8000/__heartbeat__"
|