From 287d70567160069eeae36fc34a4bb7407fd58cab Mon Sep 17 00:00:00 2001 From: Simon Detheridge Date: Thu, 23 Jul 2020 19:30:13 +0100 Subject: [PATCH] Update buildscripts to use fake-gcs instead of S3 credentials --- services/docstore/buildscript.txt | 2 +- services/docstore/docker-compose.ci.yml | 13 ++++++++++--- services/docstore/docker-compose.yml | 15 +++++++++++---- .../test/acceptance/deps/Dockerfile.fake-gcs | 5 +++++ .../docstore/test/acceptance/deps/healthcheck.sh | 9 +++++++++ 5 files changed, 36 insertions(+), 8 deletions(-) create mode 100644 services/docstore/test/acceptance/deps/Dockerfile.fake-gcs create mode 100644 services/docstore/test/acceptance/deps/healthcheck.sh diff --git a/services/docstore/buildscript.txt b/services/docstore/buildscript.txt index 48c7852d74..a8929bd59f 100644 --- a/services/docstore/buildscript.txt +++ b/services/docstore/buildscript.txt @@ -1,6 +1,6 @@ docstore --acceptance-creds=None ---dependencies=mongo +--dependencies=mongo,gcs --docker-repos=gcr.io/overleaf-ops --env-add= --env-pass-through= diff --git a/services/docstore/docker-compose.ci.yml b/services/docstore/docker-compose.ci.yml index 53da6509c7..3510433789 100644 --- a/services/docstore/docker-compose.ci.yml +++ b/services/docstore/docker-compose.ci.yml @@ -16,19 +16,22 @@ services: test_acceptance: build: . image: ci/$PROJECT_NAME:$BRANCH_NAME-$BUILD_NUMBER - extends: - file: docker-compose-config.yml - service: ci environment: ELASTIC_SEARCH_DSN: es:9200 REDIS_HOST: redis MONGO_HOST: mongo POSTGRES_HOST: postgres + GCS_API_ENDPOINT: gcs:9090 + GCS_API_SCHEME: http + GCS_PROJECT_ID: fake + STORAGE_EMULATOR_HOST: http://gcs:9090/storage/v1 MOCHA_GREP: ${MOCHA_GREP} NODE_ENV: test depends_on: mongo: condition: service_healthy + gcs: + condition: service_healthy user: node command: npm run test:acceptance:_run @@ -42,3 +45,7 @@ services: user: root mongo: image: mongo:3.6 + gcs: + build: + context: test/acceptance/deps + dockerfile: Dockerfile.fake-gcs diff --git a/services/docstore/docker-compose.yml b/services/docstore/docker-compose.yml index 87ea601dd0..02bf2410af 100644 --- a/services/docstore/docker-compose.yml +++ b/services/docstore/docker-compose.yml @@ -17,18 +17,19 @@ services: user: node test_acceptance: - image: node:10.21.0 + image: node:10 volumes: - .:/app working_dir: /app - extends: - file: docker-compose-config.yml - service: dev environment: ELASTIC_SEARCH_DSN: es:9200 REDIS_HOST: redis MONGO_HOST: mongo POSTGRES_HOST: postgres + GCS_API_ENDPOINT: gcs:9090 + GCS_API_SCHEME: http + GCS_PROJECT_ID: fake + STORAGE_EMULATOR_HOST: http://gcs:9090/storage/v1 MOCHA_GREP: ${MOCHA_GREP} LOG_LEVEL: ERROR NODE_ENV: test @@ -36,8 +37,14 @@ services: depends_on: mongo: condition: service_healthy + gcs: + condition: service_healthy command: npm run test:acceptance mongo: image: mongo:3.6 + gcs: + build: + context: test/acceptance/deps + dockerfile: Dockerfile.fake-gcs diff --git a/services/docstore/test/acceptance/deps/Dockerfile.fake-gcs b/services/docstore/test/acceptance/deps/Dockerfile.fake-gcs new file mode 100644 index 0000000000..0e6de7e735 --- /dev/null +++ b/services/docstore/test/acceptance/deps/Dockerfile.fake-gcs @@ -0,0 +1,5 @@ +FROM fsouza/fake-gcs-server:latest +RUN apk add --update --no-cache curl +COPY healthcheck.sh /healthcheck.sh +HEALTHCHECK --interval=1s --timeout=1s --retries=30 CMD /healthcheck.sh http://localhost:9090 +CMD ["--port=9090", "--scheme=http"] diff --git a/services/docstore/test/acceptance/deps/healthcheck.sh b/services/docstore/test/acceptance/deps/healthcheck.sh new file mode 100644 index 0000000000..cd19cea637 --- /dev/null +++ b/services/docstore/test/acceptance/deps/healthcheck.sh @@ -0,0 +1,9 @@ +#!/bin/sh + +# health check to allow 404 status code as valid +STATUSCODE=$(curl --silent --output /dev/null --write-out "%{http_code}" $1) +# will be 000 on non-http error (e.g. connection failure) +if test $STATUSCODE -ge 500 || test $STATUSCODE -lt 200; then + exit 1 +fi +exit 0