From 6e2ca4d5fc748725b41ce990fbf8ef35e9a3d432 Mon Sep 17 00:00:00 2001
From: El Yaagoubi Bilel <bilel.el-yaagoubi@student-cs.fr>
Date: Fri, 3 Jun 2022 18:19:40 +0200
Subject: [PATCH] configure CI

---
 .gitlab-ci.yml       | 56 ++++++++++++++++++++++++++++++++++++++++++++
 backend/package.json |  3 ++-
 2 files changed, 58 insertions(+), 1 deletion(-)
 create mode 100644 .gitlab-ci.yml

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
new file mode 100644
index 0000000..e472b73
--- /dev/null
+++ b/.gitlab-ci.yml
@@ -0,0 +1,56 @@
+stages:
+  - lint
+  - build
+
+.eslint:
+  image: node:16.14.0-alpine
+  stage: lint
+  script:
+    - cd $CONTEXT
+    # install packages
+    - npm install
+    # Run eslint
+    - npm run lint
+
+.build:
+  stage: build
+  rules:
+    - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
+    - if: $CI_COMMIT_BRANCH
+  image:
+    name: gcr.io/kaniko-project/executor:debug
+    entrypoint: [""]
+  script:
+    - if [ $CI_COMMIT_BRANCH = $CI_DEFAULT_BRANCH ] ; then
+    - TAG="latest" ; else
+    - TAG=$CI_COMMIT_BRANCH ; fi
+    - mkdir -p /kaniko/.docker
+    - echo "{\"auths\":{\"${REGISTRY}\":{\"auth\":\"$(printf "%s:%s" "robot\$${REGISTRY_USERNAME}" "${REGISTRY_PASSWORD}" | base64 | tr -d '\n')\"}}}" > /kaniko/.docker/config.json
+    - >-
+      /kaniko/executor
+      --context $CONTEXT
+      --dockerfile $CONTEXT/Dockerfile
+      --destination "${REGISTRY}/$IMAGE_NAME:${TAG}"
+      --cache
+
+lint-front:
+  extends: .eslint
+  variables:
+    CONTEXT: frontend/
+
+lint-back:
+  extends: .eslint
+  variables:
+    CONTEXT: backend/
+
+build-front:
+  extends: .build
+  variables:
+    CONTEXT: frontend/
+    IMAGE_NAME: front
+
+build-back:
+  extends: .build
+  variables:
+    CONTEXT: backend/
+    IMAGE_NAME: back
diff --git a/backend/package.json b/backend/package.json
index d1fd700..a067f27 100644
--- a/backend/package.json
+++ b/backend/package.json
@@ -5,7 +5,8 @@
   "scripts": {
     "dev": "dotenv nodemon ./server.js",
     "start": "dotenv node ./server.js",
-    "lint": "eslint . --fix"
+    "lint": "eslint . ",
+    "format": "eslint . --fix"
   },
   "dependencies": {
     "cors": "^2.8.5",
-- 
GitLab