diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index f2a1cf2958d64a471f0c6574eab43afd8102e45a..68ea9b5f0fa527d96df796cdcc934c57a76b297b 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -56,6 +56,27 @@ deploy_gms_client:
         -DpomFile=gms-client/gms-client/pom.xml
         -Durl=${IA2_MVN_REPO_SNAPSHOTS}
 
+deploy_gms_lib:
+  stage: deploy
+  tags:
+    - docker
+  script:
+    - cd gms
+    - mvn clean package -DskipTests
+    - version=$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout)
+    - mvn deploy:deploy-file
+        -Dfile=target/gms-lib.jar
+        -DartifactId=gms
+        -DgroupId=it.inaf.ia2
+        -Dclassifier=lib
+        -DrepositoryId=ia2.snapshots
+        -Dversion=$version
+        -Durl=${IA2_MVN_REPO_SNAPSHOTS}
+  rules:
+    - if: '$CI_COMMIT_BRANCH == "master"'
+      changes:
+        - gms/*
+
 dockerize_db:
   stage: deploy
   tags: