diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 25197db386cce937287a34e68db564e2072d6dbe..fd0d91398e163b559f9bef9c1f6414e48d0d5925 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -3,6 +3,12 @@ image: ruby:2.5
 variables:
   JEKYLL_ENV: production
 
+stages:
+  - test
+  - pages
+  - deploy
+  - release
+
 before_script:
   - bundle install
 
@@ -26,3 +32,11 @@ pages:
   only:
   - master
 
+release:
+  stage: release
+  script:
+    - echo "$API_KEY_B64" | base64 --decode > ~/.gem/credentials && chmod 0600 ~/.gem/credentials
+    - gem build jekyll-theme-lcsb-default.gemspec
+    - gem push jekyll-theme-lcsb-default*.gem
+  only:
+    - tags