diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index b8cdc8bce3e637654e636594a1b9daa176340434..88b5a26bdde820c1c992b214e869cb552eb276ed 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,23 +1,46 @@
 stages:
-  - test
+  - tests
   - build
+  - publish
 
-check-i18n-job:
-  image: ubuntu:20.04
-  stage: test
+check-i18n:
+  image: debian:latest
+  stage: tests
   script:
-    - apt update && apt-get -y install jq
-    - ./utils/findMissingI18nKeys.sh
-  only:
-    - merge_requests
+    - apt update
+    - apt --yes install jq
+    - bash utils/findMissingI18nKeys.sh
 
-build-job:
-  image: node:16
+build:
+  image: node:16-bullseye
+  stage: tests
+  script:
+    - npm install
+    - npm run build
+
+generate:
+  image: node:16-bullseye
   stage: build
   script:
-    - node --version
-    - npm --version
     - npm install
     - npm run build
-  only:
-    - merge_requests
+    - yarn generate
+  artifacts:
+    paths:
+      - dist
+    expire_in: 2 days
+  rules:
+    - if: $CI_COMMIT_TAG
+      when: manual
+
+pages:
+  stage: publish
+  needs: ["generate"]
+  script:
+    - ls dist
+  artifacts:
+    paths:
+      - dist
+    expire_in: 1 week
+  rules:
+    - if: $CI_COMMIT_TAG