diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 7b48a2ffed3a08eb557e7449ba0d90a9cde625dd..10d9ace1f82dbfa7062616b5f8b4c9e20cabb940 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -6,12 +6,13 @@ default:
   interruptible: true
 
 stages:
-  - test
+  - lint
   - build
+  - test
   - deploy
 
 lint:
-  stage: test
+  stage: lint
   tags: [docker]
   image: node:12-buster
   variables:
@@ -39,6 +40,23 @@ docker:
     - docker run --rm "$IMAGE" build
     - docker push "$IMAGE"
 
+npm-test:
+  stage: test
+  image: node:12
+  before_script:
+    - npm install --global 'git+${CI_REPOSITORY_URL}#${CI_COMMIT_REF_NAME}'
+  script:
+    - prezbuilder build src public
+
+docker-test:
+  stage: test
+  tags: [dind]
+  before_script:
+    - wget "${CI_PROJECT_URL}/-/raw/${CI_COMMIT_REF_NAME}/bin/prezbuilder-docker?inline=false" -O /usr/local/bin/prezbuilder-docker
+    - chmod a+rx /usr/local/bin/prezbuilder-docker
+  script:
+    - prezbuilder-docker build src public
+
 pages:
   extends: .prezbuilder
   variables: