diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index c85a6eab6e91ccf239b0a56baece5953422bbd51..2e6539cf8a193209c86ad69db2619eb1adcf30d0 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,16 +1,25 @@
 image: maven:3.8.3-openjdk-17
 
+variables:
+  MAVEN_OPTS: "-DskipUiTests=true"
+  MAVEN_CLI_OPTS: "--batch-mode -P headless"
+
 stages:
   - test
   - build
 
+cache:
+  paths:
+    - .m2/repository
+  key: "$CI_BUILD_REF_NAME"
+
 test:
   stage: test
   script:
-    - cd todolist; mvn test -B -P headless "-DskipUiTests=true"
+    - mvn clean test -f todolist/pom.xml
 
 build:
   stage: build
   when: manual
   script:
-    - cd todolist; mvn install -B -P headless "-DskipUiTests=true"
+    - mvn clean install -f todolist/pom.xml