From 38161208b56bcfb0a8564497ef2f04703a144d3c Mon Sep 17 00:00:00 2001
From: Marco <marco.lorini@garr.it>
Date: Fri, 26 Mar 2021 12:39:13 +0100
Subject: [PATCH] 2021-03-26 ML: CI/CD - add .gitlab-ci file to run pipeline

---
 .gitlab-ci.yml | 88 ++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 88 insertions(+)
 create mode 100644 .gitlab-ci.yml

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
new file mode 100644
index 000000000..ba6817e3c
--- /dev/null
+++ b/.gitlab-ci.yml
@@ -0,0 +1,88 @@
+stages:
+  - build
+  - test
+  - package
+  - deploy
+
+build:
+  stage: build
+  image: node:12.7-alpine
+  only:
+    - master
+  before_script:
+    - npm install -g @angular/cli@8.3.26
+    - npm ci
+  script:
+    - ng build
+  artifacts:
+    paths:
+      - dist/
+    expire_in: 1 hours
+  cache:
+    paths:
+      - node_modules/
+  tags:
+    - kubernetes
+    - register-front
+
+# unit_test:
+#   stage: test
+#   image: node:latest
+#   only:
+#     - master
+#   before_script:
+#     - apt-get update
+#     - wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
+#     - apt-get install -y ./google-chrome-stable_current_amd64.deb
+#     - export CHROME_BIN=/usr/bin/google-chrome
+#     - npm install -g @angular/cli@8.3.26
+#     - npm ci
+#   script:
+#     - ng test
+#   tags:
+#     - kubernetes
+#     - register-front
+
+# e2e_test:
+#   stage: test
+#   image: trion/ng-cli-e2e
+#   only:
+#     - master
+#   allow_failure: false
+#   before_script:
+#     - npm ci
+#   script:
+#     - ng e2e
+#   tags:
+#     - kubernetes
+#     - register-front
+
+package:
+  stage: package
+  image: docker:latest
+  only:
+    - master
+  services:
+    - docker:dind
+  before_script:
+    - docker info
+    - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_TOKEN $CI_REGISTRY
+  script:
+    - docker build -t $CI_REGISTRY/$CI_REGISTRY_IMAGE:$CI_REGISTRY_IMAGE_TAG .
+    - docker push $CI_REGISTRY/$CI_REGISTRY_IMAGE:$CI_REGISTRY_IMAGE_TAG
+  tags:
+    - kubernetes
+    - register-front
+
+deploy:
+  stage: deploy
+  image: bitnami/kubectl:latest
+  only:
+    - master
+  before_script:
+    - echo -n $KUBE_CONFIG | base64 -d > .kube/config
+  script:
+    - kubectl --kubeconfig .kube/config --namespace $KUBE_NAMESPACE set image deployment/$KUBE_DEPLOYMENT $KUBE_CONTAINER=$CI_REGISTRY/$CI_REGISTRY_IMAGE:$CI_REGISTRY_IMAGE_TAG
+  tags:
+    - kubernetes
+    - register-front
-- 
GitLab