diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index abb60eb41863be9788b42b1ffa50f8169165e3bb..ebb55e555d9e69fc4bdbb56bed33bb936940910f 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,21 +1,45 @@
 stages:
   - build
   - test
+  - publish
 
-build-job:
+build:
   stage: build
   image: rust
   script:
     - cargo build
 
-unit-test-job:
+rustdoc:
+  stage: build
+  image: rust
+  script:
+    - cargo doc
+  artifacts:
+    paths:
+      - target/doc
+
+unit-test:
   stage: test  
   image: rust
   script:
     - cargo test --lib
 
-lint-test-job:  
+lint-test:  
   stage: test
   image: rust
   script:
-    - cargo clippy
\ No newline at end of file
+    - cargo clippy
+
+docs:
+  stage: publish
+  image: alpine
+  dependencies:
+    - rustdoc
+  script:
+    - mkdir -p public
+    - mv target/doc public/doc
+  artifacts:
+    paths:
+      - public
+  only:
+    - master
\ No newline at end of file