diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
new file mode 100644
index 0000000000000000000000000000000000000000..91b2902b020fa8d1ce5a3783c742f9f079a44375
--- /dev/null
+++ b/.gitlab-ci.yml
@@ -0,0 +1,19 @@
+variables:
+  GRADLE_OPTIONS: --no-daemon --stacktrace --warning-mode=all
+  GRADLE_USER_HOME: "$CI_PROJECT_DIR/.gradle"
+
+cache:
+  paths:
+    - .gradle/caches
+    - .gradle/wrapper
+
+publish:
+  stage: deploy
+  image: eclipse-temurin:8
+  script:
+    - openssl aes-256-cbc -pass "env:ENCRYPTION_PASSWORD" -d -md md5 -in secring.gpg.enc -out secring.gpg
+    - openssl aes-256-cbc -pass "env:ENCRYPTION_PASSWORD" -d -md md5 -in pubring.gpg.enc -out pubring.gpg
+    - openssl aes-256-cbc -pass "env:ENCRYPTION_PASSWORD" -d -md md5 -in gradle.properties.enc -out gradle.properties
+    - ./gradlew ${GRADLE_OPTIONS} uploadArchives
+  only:
+    - master@general/stups/rodin_eventb_ast
diff --git a/.travis.yml b/.travis.yml
deleted file mode 100644
index 1e898e71e77f8408a3f9cf2b73684ada77426888..0000000000000000000000000000000000000000
--- a/.travis.yml
+++ /dev/null
@@ -1,17 +0,0 @@
-language: java
-before_install:
-- openssl aes-256-cbc -pass pass:$ENCRYPTION_PASSWORD -in secring.gpg.enc -out secring.gpg
-  -d
-- openssl aes-256-cbc -pass pass:$ENCRYPTION_PASSWORD -in pubring.gpg.enc -out pubring.gpg
-  -d
-- openssl aes-256-cbc -pass pass:$ENCRYPTION_PASSWORD -in gradle.properties.enc -out
-  gradle.properties -d
-sudo: false
-install: /bin/true
-script: gradle uploadArchives
-env:
-  global:
-    secure: qhGqw190PVbI70Vr4UVgnKfDS8YJTrVtkMMXCc/11kypTbu5dugheD1zNAYQQAzo8Fm4SrwAhvOhGF85M+FARrxBdJsuSrWPsTS94q65m/T/WCCmDsWyD8frwtmSBWgRP+lbTlunzXEDHB71Bu2+oi70yaGn2fnfr2mkyaUn4uUzsFa2ShleBCI48nV3nekbdriPQ8rhaou5lgxN3tjyK97hQXTCcs+T++15yLR3S08Duo5F4Tmpn6TpEyQaq9VuknKGVVJ/nuSKK3GQIiNzcKxCiuMAn698M/ALAGDdIrcd8lIELRyUQpIpqRiuBYFw3ZHWFXiid76GBXownOkdAfOwPrJLd4W9bNrTPFPWoSBv4+CtqhqDWzvm1DqR280Iso1pErlSyQmRfkD7ZPpOH5DnkXg6tKTQyNUECDQxCbnrV43YOJS3HUC3J7pUIv+7NGeAX3tLMNxEiYoswGeEurcfyshKKsCaZF+sQDsGjNX76EUxmL2o2pZTEYTXdBZ1Xg7FmzqatvAPn3GE+cU9rjV9HhNPY8W10LQLx0sHw+8PstQ/3t/rwV68YqCsTOXmIJCcdENMqZbcyiZ0NpNMElGUuWpJEcIQCzmTHdt/Fq48CHKOlVmJyTcKTuHsAJT09cSLxyG+WYK7pJk4VyvLKeht3CjMWm+31BkpjWPujfU=
-notifications:
-  slack:
-    secure: fAq2RRqhWMq6FCkQVPcyILdUcJBAFjVWyD9SeF7ajIFZTRBb4tDrabUirmE2dfqNDGTv1sv6RWyp3iyKSAUui+KNzFobGRMEXgD4QZ3lF9tNIa0SN7zJJetgVMHguJJAOFomxXO0mAFjOA/ccD9yypkToJ4EVHvcmtU9FSvFsLj0Sa3bmesFcTrHMauTRATCcwMbtZzIjm3NVA9ySEBiTISExDXlzwyG8rVDyV/VolcesXc7f7EjQRGGH69mtCPNeKLTyxsheDJc0giGMZqW9e3EuQgoHh11sGxJNWHT/wkdnhNbWTe6dVLJLNaYOr3Pgbx1uKvf3g/2Rm8WwByO0s6nC0+IcR3oiRNFan4dsXfkn7TqyCInewdsO8pD6jQNWSvxY0CSarebOXeO/wMWNc4O8RGziSw29f2x4M2tcMGp9Y7/8MObDoVpjTg63/xZi0DzHl2P/l57OVHTBBf+3qcuB1fBx2bMRMsWmS7btt3+KffbbJYMKOMS/E4uQBRyuOMt6+NEuLG1O0IMss+Ce8CY1STh4s+1Cv/ekc5SnflONx52QlP/d9xVUIUxbje6ROpk9jpusJBiXZjyD5FpyKW+MsUm7gKRA2HXLk/p/yvVuNJZ2EqGUzQ88gj/fE08Z/k9/xy1xYsDLBL73Qn2mVz8jEAvAqsJQdygkgXpSFM=
diff --git a/README.md b/README.md
index 605841982c8ad08f10afeefe0de3c2735c79c8a6..0c84fdae39e700deec0a56bba9a21c475fbe3ec1 100644
--- a/README.md
+++ b/README.md
@@ -1,13 +1,12 @@
 # Rodin B AST
 
-[![Build Status](https://travis-ci.org/hhu-stups/rodin-ast.svg?branch=master)](https://travis-ci.org/hhu-stups/rodin-ast)
-
 This repository contains a standalone version of the Rodin AST. It is used within the ProB tool.
 
 No original file is changed, but we added:
+
+* .gitlab-ci.yml
 * README.md
 * build.gradle
-* .travis.yml
 * gradle
 * gradlew
 * gradlew.bat