diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
new file mode 100644
index 0000000000000000000000000000000000000000..56f235f7b66e9dcc4a5d1ce9cb07062bcdeddb47
--- /dev/null
+++ b/.gitlab-ci.yml
@@ -0,0 +1,14 @@
+before_script:
+  - if [ ! -d "venv" ]; then python3 -m venv .venv; fi
+  - source .venv/bin/activate
+  - pip install -r requirements.txt
+
+test_job:
+  stage: test
+  tags:
+    - macos
+  only:
+    - main
+  script:
+    - echo "Running tests"
+    - .venv/bin/python test.py
diff --git a/requirements.txt b/requirements.txt
new file mode 100644
index 0000000000000000000000000000000000000000..e214769a654c0d5b900d76a14e8910929d9dc52f
--- /dev/null
+++ b/requirements.txt
@@ -0,0 +1 @@
+pyspark
diff --git a/test.py b/test.py
new file mode 100644
index 0000000000000000000000000000000000000000..7879e99008bbb068c92b40473133956b493567d3
--- /dev/null
+++ b/test.py
@@ -0,0 +1,15 @@
+from pyspark.sql import SparkSession
+
+spark = SparkSession.builder.appName("demo").getOrCreate()
+
+df = spark.createDataFrame(
+    [
+        ("sue", 32),
+        ("li", 3),
+        ("bob", 75),
+        ("heo", 13),
+    ],
+    ["first_name", "age"],
+)
+
+df.show()
\ No newline at end of file