diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
new file mode 100644
index 0000000000000000000000000000000000000000..248e8c623e76f1777845b5cbc48dd535f718c531
--- /dev/null
+++ b/.gitlab-ci.yml
@@ -0,0 +1,21 @@
+# only start pipelines if we are on the main branch, at a git tag or a merge request.
+include:
+  - template: 'Workflows/MergeRequest-Pipelines.gitlab-ci.yml'
+
+stages:
+  - lint
+
+eslint:
+  stage: lint
+  #image: node:current-alpine3.12
+  image: node:12-alpine3.12
+  tags: [ docker ]
+  script:
+    - npm install
+    #- npm ci ### should use this for automated testing instead of "npm install", but we need a package-lock.json for it.
+    - npm install eslint-formatter-gitlab
+    # > /dev/null 2>&1 || FAILED=true to make error type warnings not fail the job
+    - npx eslint --format gitlab . > /dev/null 2>&1 || FAILED=true
+  artifacts:
+    reports:
+      codequality: gl-codequality.json