diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
new file mode 100644
index 0000000000000000000000000000000000000000..2d00bb89d01a1effe40357ccb5f8c0443296f787
--- /dev/null
+++ b/.gitlab-ci.yml
@@ -0,0 +1,32 @@
+image: maven:3.3.9-jdk-8
+
+# most of this taken from https://stackoverflow.com/questions/37785154/how-to-enable-maven-artifact-caching-for-gitlab-ci-runner
+
+cache:
+  paths:
+    - .m2/repository
+  # keep cache across branch
+  key: "$CI_BUILD_REF_NAME"
+
+variables:
+  MAVEN_OPTS: "-Djava.awt.headless=true -Dmaven.repo.local=.m2/repository"
+  MAVEN_CLI_OPTS: "--batch-mode --errors --fail-at-end --show-version"
+
+build-job:
+  stage: build
+  script:
+    - "mvn clean compile -f tdt4140-gr1800/pom.xml $MAVEN_CLI_OPTS"
+
+unittest-job:
+  stage: test
+  dependencies:
+    - build-job
+  script:
+    - "mvn package -f tdt4140-gr1800/pom.xml $MAVEN_CLI_OPTS"
+
+integrationtest-job:
+  stage: test
+  dependencies:
+    - build-job
+  script:
+    - "mvn verify -f tdt4140-gr1800/pom.xml $MAVEN_CLI_OPTS"