diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 953f66de520363c6dd0da6b77764d2fec98ca073..3d322efdb2bc857270f7acfc1c27df88477487ff 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -38,7 +38,7 @@ run-tests: alias: localhost script: - docker run -p 27017:27017 - --detached + --detach --name mongo-container --rm --network=host @@ -49,7 +49,8 @@ run-tests: --network=host --build-arg MONGODB_URL_TEST=mongodb://localhost:27017/todo-app --build-arg JWT_SECRET_TEST=my-very-secret-jwt - --add-host=host.docker.internal:localhost + --add-host=host.docker.internal:host-gateway + --file Dockerfile.test "./app" after_script: - docker stop mongo-container diff --git a/app/Dockerfile b/app/Dockerfile index af432714e8433c96bb04d0b4037bc5245113c0ed..224291a7282840a6c9b9c7d126ea41690d041e29 100644 --- a/app/Dockerfile +++ b/app/Dockerfile @@ -14,35 +14,6 @@ ENV \ MONGODB_URL=<dynamically-set-from-k8s> \ JWT_SECRET=<dynamically-set-from-k8s> -# ------------------------------------------------------------------ -# # Test stage -# FROM base AS test - -# # client tests -# WORKDIR /client - -# COPY ./client . - -# RUN npm ci --no-audit --no-fund - -# RUN npm run test - -# # server tests -# WORKDIR /server - -# COPY ./server/src ./src/ - -# COPY ./server/package*.json ./ - -# RUN npm ci --no-audit --no-fund - -# ARG MONGODB_URL_TEST -# ARG JWT_SECRET_TEST - -# # MONGODB_URL and JWT_SECRET are available as env variables -# RUN MONGODB_URL=$MONGODB_URL_TEST JWT_SECRET=$JWT_SECRET_TEST npm run test - -# ------------------------------------------------------------------ # Build stage FROM base AS build diff --git a/app/Dockerfile.test b/app/Dockerfile.test new file mode 100644 index 0000000000000000000000000000000000000000..7b565b93cd6068105bbf771e185fde642f637575 --- /dev/null +++ b/app/Dockerfile.test @@ -0,0 +1,29 @@ +ARG NODEJS_VERSION='16.17.0' + +# Test stage +FROM node:$NODEJS_VERSION-alpine + +# client tests +WORKDIR /client + +COPY ./client . + +RUN npm ci --no-audit --no-fund + +RUN npm run test + +# server tests +WORKDIR /server + +COPY ./server/src ./src/ + +COPY ./server/package*.json ./ + +RUN npm ci --no-audit --no-fund + +ARG \ + MONGODB_URL_TEST=mongodb://host.docker.internal:27017/todo-app \ + JWT_SECRET_TEST=<my-very-secret-jwt> + +# MONGODB_URL and JWT_SECRET are available as env variables +RUN MONGODB_URL=$MONGODB_URL_TEST JWT_SECRET=$JWT_SECRET_TEST npm run test