diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
new file mode 100644
index 0000000000000000000000000000000000000000..edab9e06b7335e81ec5d7c2dcd14547a1b06550a
--- /dev/null
+++ b/.gitlab-ci.yml
@@ -0,0 +1,24 @@
+image: "sbtscala/scala-sbt:graalvm-ce-22.3.0-b2-java17_1.8.2_3.2.2"
+
+variables:
+  SBT_VERSION: "1.7.1"
+  SBT_OPTS: "-Dsbt.global.base=sbt-cache/.sbtboot -Dsbt.boot.directory=sbt-cache/.boot -Dsbt.ivy.home=sbt-cache/.ivy"
+
+cache:
+  key: "$CI_BUILD_REF_NAME" # contains either the branch or the tag, so it's caching per branch
+  untracked: true
+  paths:
+    - "sbt-cache/.ivy.cache"
+    - "sbt-cache/.boot"
+    - "sbt-cache/.sbtboot"
+    - "sbt-cache/target"
+
+stages:
+  - test
+
+test:
+  timeout: 10m
+  tags:
+    - cs320
+  script:
+    - sbt "runMain lecture1.javaThreads"
diff --git a/README.md b/README.md
index 47fae791c3592d76d407de7e3157d67a9d9bc4a3..6e6f14c90128e81353030c8d4f127718f94fee9f 100644
--- a/README.md
+++ b/README.md
@@ -59,7 +59,7 @@ You can try [`01-sumList.worksheet.sc`](src/main/scala/ex01/01-sumList.worksheet
 
 Try to change the code and you should see the results automatically updating!
 
-### Format code
+### Format code
 
 This project uses [scalafmt](https://scalameta.org/scalafmt/) to format code.