diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
new file mode 100644
index 0000000000000000000000000000000000000000..ce76fe1993c2ca444c7bba7f1e3ab81437648932
--- /dev/null
+++ b/.gitlab-ci.yml
@@ -0,0 +1,41 @@
+.parallel:
+  parallel:
+    matrix:
+    - GOOS: "linux"
+      GOARCH:
+      - amd64
+      - arm64
+    - GOOS: "windows"
+      GOARCH:
+      - amd64
+      - arm64
+    - GOOS: "darwin"
+      GOARCH:
+      - amd64
+      - arm64
+
+stages:
+- build
+- deploy
+
+build-application-binary:
+  stage: build
+  needs: []
+  parallel: !reference [ .parallel, parallel ]
+  image: golang:1.23.5
+  script:
+  - CGO_ENABLED=0 go build -ldflags="-s -w" -o ems-esp-logger-${GOOS}-${GOARCH} ./
+  - "if [ \"${GOOS}\" = \"windows\" ]; then
+
+    \  mv ems-esp-logger-${GOOS}-${GOARCH} ems-esp-logger-${GOOS}-${GOARCH}.exe\ 
+
+    fi\n"
+  artifacts:
+    paths:
+    - ems-esp-logger-${GOOS}-${GOARCH}
+    - ems-esp-logger-${GOOS}-${GOARCH}.exe
+    expire_in: 1 week
+
+include:
+- project: 'infra/ci'
+  file: '/pipelines/docker.yml'