diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
new file mode 100644
index 0000000000000000000000000000000000000000..9691d46ffb490958dc594ed53750119e62f9c645
--- /dev/null
+++ b/.gitlab-ci.yml
@@ -0,0 +1,43 @@
+---
+image: node:lts-slim
+
+stages:
+  - test
+  - build
+  - deploy
+
+variables:
+  - NPM_ORGANIZATION: lydra
+
+cache:
+    key: ${CI_COMMIT_REF_SLUG}
+    paths:
+        - node_modules/
+
+before_script:
+  - npm ci
+
+build:
+  stage: build
+  script:
+    - npm run build
+  artifacts:
+    paths:
+      - dist
+
+publish_gitlab_registry:
+  stage: deploy
+  needs:
+    - job: build
+      artifacts: true
+  dependencies:
+    - build
+  script:
+    - npm config set ${NPM_ORGANIZATION}:registry ${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/npm/
+    - npm config set -- '${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/npm/:_authToken' "${CI_JOB_TOKEN}"
+    - npm config set -- '${CI_API_V4_URL}/packages/npm/:_authToken' "${CI_JOB_TOKEN}"
+    - npm publish
+
+  # Nous conseillons de ne pas trigger la publication a chaque CI, ici la règle demande si le tag existe, restreignant ainsi la publication au tag  
+  rules:
+    - if: $CI_COMMIT_TAG