Sfoglia il codice sorgente

Update buildscripts to use fake-gcs instead of S3 credentials

Simon Detheridge 6 anni fa
parent
commit
287d705671

+ 1 - 1
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=

+ 10 - 3
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

+ 11 - 4
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

+ 5 - 0
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"]

+ 9 - 0
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