diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 457cf28632dda251ab3535a6aa62c3f25a68aa90..542876c36af5ecb2c3323486fd0e1799c5a340b9 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -7,9 +7,10 @@ workflow: variables: DOCKER_VERSION: '20.10.17' - K8S_VERSION: '1.24' - GOOGLE_CLOUD_SDK_IMAGE_VERSION: '400.0.0' + MONGO_VERSION: '4.4' K8S_NAMESPACE: 'todoapp-devops' + GOOGLE_CLOUD_SDK_IMAGE_VERSION: '400.0.0' + GCP_COMPUTE_REGION: 'europe-west4a' CONTAINER_TAG: '${CI_REGISTRY_IMAGE}:${CI_PIPELINE_IID}-${CI_COMMIT_SHORT_SHA}' stages: @@ -34,11 +35,14 @@ test-image: services: - name: docker:${DOCKER_VERSION}-dind script: + - docker run -p 27017:27017 -d mongo:${MONGO_VERSION} - docker build --tag "${CONTAINER_TAG}-test" --target=test "./app" after_script: + - docker stop mongo:${MONGO_VERSION} | xargs docker rm + - docker image rm --force mongo:${MONGO_VERSION} - docker image rm --force "${CONTAINER_TAG}-test" build-image: diff --git a/app/Dockerfile b/app/Dockerfile index e2085b54bb78cb0f1bb350c5a0fb5cb21ec10e39..6568c2b7e7d241721b6a6028051ac51942228229 100644 --- a/app/Dockerfile +++ b/app/Dockerfile @@ -5,11 +5,14 @@ ARG NODEJS_VERSION='16.17.0' FROM node:$NODEJS_VERSION-alpine AS base +ARG \ + MONGODB_URL_TEST=mongodb://host.docker.internal:27017/todo-app \ + JWT_SECRET_TEST=<my-very-secret-jwt> + ENV \ - PORT=3000 \ - # For local dev - mongodb://host.docker.internal:27017/todo-app - MONGODB_URL=<should-be-dynamically-set> \ - JWT_SECRET=<should-be-dynamically-set> + PORT=<dynamically-set-from-k8s> \ + MONGODB_URL=<dynamically-set-from-k8s> \ + JWT_SECRET=<dynamically-set-from-k8s> # ------------------------------------------------------------------ # Test stage @@ -33,8 +36,12 @@ COPY ./server/package*.json . RUN npm ci --no-audit --no-fund +ARG \ + MONGODB_URL_TEST \ + JWT_SECRET_TEST + # MONGODB_URL and JWT_SECRET are available as env variables -RUN npm run test +RUN MONGODB_URL=$MONGODB_URL_TEST JWT_SECRET=$JWT_SECRET_TEST npm run test # ------------------------------------------------------------------ # Build stage diff --git a/k8s-manifests/configmap.yaml b/k8s-manifests/configmap.yaml index 30146169f0677f4cc8bd819ae191f69bde0dc17f..47cd2b27acf80e28006c363dbd8ac8c6b1a329e8 100644 --- a/k8s-manifests/configmap.yaml +++ b/k8s-manifests/configmap.yaml @@ -4,6 +4,4 @@ metadata: name: todo-app-config data: PORT: 3000 - # MONGODB_URL: mongodb://<mongo-service>:27017/todo-app - # mongodb-service.<namespace>? MONGODB_URL: mongodb-service