diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
new file mode 100644
index 0000000000000000000000000000000000000000..d891bd576ba3cf5e0dbacf31be25dfd3b71f4a54
--- /dev/null
+++ b/.gitlab-ci.yml
@@ -0,0 +1,42 @@
+name: Frontend build-test and unit-tests
+
+on:
+  push:
+    branches: [main]
+    paths:
+      - "client/**"
+      - "!**.md"
+  pull_request:
+    branches: [main]
+    paths:
+      - "client/**"
+      - "!**.md"
+  workflow_dispatch:
+
+jobs:
+  build:
+    runs-on: ubuntu-latest
+
+    steps:
+      - uses: actions/checkout@v2
+      - uses: actions/setup-node@v2
+        with:
+          node-version: "15"
+      - name: Cache frontend node modules
+        id: cacheStep
+        uses: actions/cache@v2
+        env:
+          cache-name: cache-node-modules
+        with:
+          path: client/node_modules
+          key: ${{ runner.os }}-build-${{ hashFiles('./client/package-lock.json') }}
+
+      - name: Install frontend dependencie
+        if: steps.cacheStep.outputs.cache-hit != 'true'
+        run: cd client && npm install
+
+      - name: Builds frontend
+        run: cd client && npm run build --if-present
+
+      - name: Tests frontend
+        run: cd client && npm test