diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index a15d084dbd8b9c0215fec0e94ca463030bd12861..ab2a01503a8c52e5ddde62778d4f895690a09568 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,21 +1,94 @@
-image: $HELM_IMAGE
-
-include:
-  - project: 'gaiax/tsa/ci-helpers'
-    file: 'helm-package.yml'
+---
+variables:
+  HELPERS_FILE: build-eclipse.yml
+  HELM_HELPERS_FILE: helm-eclipse.yml
+  APP_HELM_NAME: infohub
+  DOCKER_FILE: app/deployment/ci/Dockerfile
 
 stages:
+  - test
+  - build
+  - manifest
   - lint
   - package
+  - deploy
+
+include:
+  - project: "${HELPERS_PATH}"
+    file: 'build-eclipse.yml'
+  - template: "Workflows/Branch-Pipelines.gitlab-ci.yml"
+  - project: "${HELPERS_PATH}"
+    file: 'helm-eclipse.yml'
+
+
+lint:
+  image: golangci/golangci-lint:latest
+  stage: test
+  tags:
+    - amd64-docker
+  script:
+    - golangci-lint --version
+    - golangci-lint run
+  before_script:
+    - ln -s /builds /go/src/gitlab.com
+    - cd /go/src/gitlab.com/${CI_PROJECT_PATH}/app
+
+unit tests:
+  image: golang:1.21.3
+  stage: test
+  tags:
+    - amd64-docker
+  script:
+    - go version
+    - go test $(go list ./... | grep -v /integration) -race -coverprofile=coverage.out
+    - go tool cover -func=coverage.out
+  before_script:
+    - ln -s /builds /go/src/gitlab.com
+    - cd /go/src/gitlab.com/${CI_PROJECT_PATH}/app
+  coverage: '/total:\s+\(statements\)\s+(\d+.\d+\%)/'
+
+govulncheck:
+  image: golang:1.21.3
+  stage: test
+  tags:
+    - amd64-docker
+  before_script:
+    - ln -s /builds /go/src/gitlab.com
+    - cd /go/src/gitlab.com/${CI_PROJECT_PATH}/app
+  script:
+    - go version
+    - go install golang.org/x/vuln/cmd/govulncheck@latest
+    - govulncheck ./...
+
+amd64:
+  extends: .docker-build
+  stage: build
+  tags:
+    - amd64-docker
+
+manifest:
+  extends: .manifest-amd64
+  stage: manifest
+
+cloud:
+  extends: .manifest-cloud
+  stage: manifest
+
+release:
+  extends: .manifest-release
+  stage: manifest
 
 helm-lint:
+  image: ${HELM_IMAGE}
   extends: .helm-lint
   stage: lint
   tags:
     - amd64-docker
 
 helm-package:
+  image: ${HELM_IMAGE}
   extends: .helm-package
   stage: package
   tags:
     - amd64-docker
+  needs: ["helm-lint"]
diff --git a/.gitmodules b/.gitmodules
new file mode 100644
index 0000000000000000000000000000000000000000..a6a50a86e7bcf6d298acdac56ef4e22c4852f4e5
--- /dev/null
+++ b/.gitmodules
@@ -0,0 +1,4 @@
+[submodule "app"]
+	path = app
+	url = https://gitlab.eclipse.org/eclipse/xfsc/tsa/infohub.git
+	branch = main
diff --git a/Chart.yaml b/Chart.yaml
index fc3e7cfdcb483125a490f32e4a133a52b8dd6d3c..d37b825e3ce6fcc65beead045688e4bc1c77ae94 100644
--- a/Chart.yaml
+++ b/Chart.yaml
@@ -1,6 +1,6 @@
 apiVersion: v1
-appVersion: v1.2.1
+appVersion: v1.2.2
 description: infohub deployment
 name: infohub
-version: 1.2.1
+version: 1.2.2
 icon: "https://www.vereign.com/wp-content/themes/vereign2020/images/vereign-logo.svg"
diff --git a/app b/app
new file mode 160000
index 0000000000000000000000000000000000000000..8f923225d4c63bb8f0a415b6ba8b260935ae2d40
--- /dev/null
+++ b/app
@@ -0,0 +1 @@
+Subproject commit 8f923225d4c63bb8f0a415b6ba8b260935ae2d40
diff --git a/values.yaml b/values.yaml
index 5aae78f86d94fcb3b2af05e9dfc9b3a011169be9..9adc7d753a4368afe32f23fc18725a56ddc711d0 100644
--- a/values.yaml
+++ b/values.yaml
@@ -8,7 +8,7 @@ nameOverride: ""
 image:
   repository: eu.gcr.io/vrgn-infra-prj
   # -- Image name
-  name: gaiax/infohub
+  name: tsa/infohub
   # -- Image tag
   # Uses .Chart.AppVersion if empty
   tag: ""