diff --git a/.github/workflows/00-run-unit-tests.yml b/.github-disabled/workflows/00-run-unit-tests.yml
similarity index 100%
rename from .github/workflows/00-run-unit-tests.yml
rename to .github-disabled/workflows/00-run-unit-tests.yml
diff --git a/.github/workflows/01-build-docker-image.yml b/.github-disabled/workflows/01-build-docker-image.yml
similarity index 100%
rename from .github/workflows/01-build-docker-image.yml
rename to .github-disabled/workflows/01-build-docker-image.yml
diff --git a/.github/workflows/git-sync.yml b/.github-disabled/workflows/git-sync.yml
similarity index 100%
rename from .github/workflows/git-sync.yml
rename to .github-disabled/workflows/git-sync.yml
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
new file mode 100644
index 0000000000000000000000000000000000000000..b275aaffd46b7a9019e82d2b8a0517b66782aba8
--- /dev/null
+++ b/.gitlab-ci.yml
@@ -0,0 +1,55 @@
+stages:
+  - test
+  - build
+
+test:
+  stage: test
+  image: golang:1.21
+  tags:
+    - docker
+  script:
+    - |
+      go get github.com/johnaoss/htpasswd/apr1
+      go get github.com/xanzy/go-gitlab
+      go get k8s.io/api/core/v1
+      go get k8s.io/apimachinery/pkg/apis/meta/v1
+      go get k8s.io/apimachinery/pkg/types
+      go get k8s.io/client-go/kubernetes
+      go get k8s.io/client-go/rest
+      go get github.com/evanphx/json-patch
+      go get google.golang.org/grpc
+      go install google.golang.org/grpc
+      go get github.com/golang/protobuf/protoc-gen-go
+      go install github.com/golang/protobuf/protoc-gen-go
+      wget https://github.com/protocolbuffers/protobuf/releases/download/v25.1/protoc-25.1-linux-x86_64.zip
+     unzip protoc-25.1-linux-x86_64.zip -d ./protoc
+     mkdir -p pkg/api/v1
+     protoc/bin/protoc --proto_path=api/proto/v1 --proto_path=third_party --go_out=plugins=grpc:pkg/api/v1 config-service.proto
+     go test ./...
+
+build_and_push_latest_image:
+  stage: build
+  only:
+    - develop
+  variables:
+    IMAGE_TAG: "latest"
+  script:
+    - |
+      docker image prune -f
+      docker login -u $DOCKER_USERNAME -p $DOCKER_PASSWORD $DOCKER_REPOSITORY
+      docker build -t $DOCKER_REPOSITORY_LOCAL:$IMAGE_TAG .
+      docker push $DOCKER_REPOSITORY_LOCAL:$IMAGE_TAG
+      docker logout $DOCKER_REPOSITORY
+
+build_and_push_release_image:
+  stage: build
+  only:
+    - tags
+  script:
+    - |
+      export IMAGE_TAG=$(echo $CI_COMMIT_TAG | cut -c 2-)
+      docker image prune -f
+      docker login -u $DOCKER_USERNAME -p $DOCKER_PASSWORD $DOCKER_REPOSITORY
+      docker build -t $DOCKER_REPOSITORY_LOCAL:$IMAGE_TAG .
+      docker push $DOCKER_REPOSITORY_LOCAL:$IMAGE_TAG
+      docker logout $DOCKER_REPOSITORY
\ No newline at end of file