diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
new file mode 100644
index 0000000000000000000000000000000000000000..6ae2d6007eb98223c4b76acba302bbe5c4af3a2d
--- /dev/null
+++ b/.gitlab-ci.yml
@@ -0,0 +1,25 @@
+image: node:latest
+
+stages:
+  - testing
+  - deploy
+
+test:
+  stage: testing
+  script:
+    - npm i
+    - npm run build
+    - npm run test
+
+publish-npm:
+  stage: deploy
+  needs: ['test']
+  changes:
+    paths:
+       - package.json
+  script:
+    - echo "@sharkey:registry=https://${CI_SERVER_HOST}/api/v4/groups/2/packages/npm/" > .npmrc
+    - echo "//${CI_SERVER_HOST}/api/v4/groups/2/packages/npm/:_authToken=${NPM_TOKEN}" >> .npmrc
+    - npm i
+    - npm run build
+    - npm publish