diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index a622711b75ed921424880f9e7accb0bde6a1fd50..7be7f42076f1b90984b433d999fe5f73a6be6dca 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,18 +1,33 @@
 # The Docker image that will be used to build your app
 image: node:19.5-bullseye-slim
 # Functions that should be executed before the build script is run
-before_script:
-  - npm ci
 
 cache:
   paths:
     - node_modules/
 
+stages:
+  - build
+  - deploy
+
+build:
+  stage: build
+  before_script:
+    - npm ci
+  script:
+    - NUXT_APP_BASE_URL=/wiki/ npm run generate
+  artifacts:
+    paths:
+      - .output/public
+    untracked: false
+    when: on_success
+    expire_in: "30 days"
+
 pages:
+  stage: deploy
   only:
     - main
   script:
-    - NUXT_APP_BASE_URL=/wiki/ npm run generate
     - rm -rf public
     - mv .output/public public
   artifacts: