diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 00c4c7468c568c935a3eb46ec1cb6de75b5adbd8..48d0bcafc4e8b3295c3b7bc1d7fc217798e75e64 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,4 +1,5 @@
 stages:
+  - test
   - build
   - release
 
@@ -8,6 +9,23 @@ services:
 before_script:
   - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
 
+test:
+  image: node:16.14-alpine
+  stage: test
+  only:
+    refs:
+    - main
+    - rc
+    - beta
+    - develop
+    # This matches maintenance branches
+    - /^(([0-9]+)\.)?([0-9]+)\.x/
+    # This matches pre-releases
+    - /^([0-9]+)\.([0-9]+)\.([0-9]+)(?:-([0-9A-Za-z-]+(?:\.[0-9A-Za-z-]+)*))?(?:\+[0-9A-Za-z-]+)?$/
+  script: 
+    - npm ci --development
+    - npm run test
+
 build:
   image: docker:dind
   stage: build