diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
new file mode 100644
index 0000000000000000000000000000000000000000..2f8b9e59589f5a370e7d2c17b28c14e0414bb8b9
--- /dev/null
+++ b/.gitlab-ci.yml
@@ -0,0 +1,32 @@
+stages:
+  - build
+
+variables:
+  # Use a Python 3.8 image for both macOS and Linux builds
+  PYTHON_VERSION: "3.8"
+
+build_linux:
+  image: python:${PYTHON_VERSION}-slim
+  stage: build
+  script:
+    - pip install pyinstaller pyqt6 pandas matplotlib
+    - pyinstaller --onefile --windowed main.py
+  artifacts:
+    paths:
+      - dist/*  # Store the generated executables
+  only:
+    - main  # Run only when changes are pushed to the main branch
+
+build_macos:
+  image: apple/swift:latest
+  stage: build
+  script:
+    - apt-get update && apt-get install -y python3 python3-pip
+    - pip3 install pyinstaller pyqt6 pandas matplotlib
+    - pyinstaller --onefile --windowed main.py
+  artifacts:
+    paths:
+      - dist/*
+  only:
+    - main
+