From 2c59c6f9a51b92c37e4ade151a7cfc030de8134f Mon Sep 17 00:00:00 2001 From: KADDOUR Sidi Mohammed <sidi-mohammed.kaddour@inria.fr> Date: Wed, 18 Dec 2024 16:55:17 +0100 Subject: [PATCH] update readme.md --- .gitlab-ci.yml | 61 +++++++++++++++++++++++++++++--------------------- 1 file changed, 35 insertions(+), 26 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index f83aa09..ba8e171 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -4,48 +4,57 @@ stages: - deploy variables: - DOCKER_USERNAME: "medkaddour" - TAG: "latest" - DEPLOY_ENV: "local" # Change to 'cloud' if deploying to the cloud + DOCKER_REGISTRY: "registry.gitlab.com" + PROJECT_NAME: "surveillance-system" + K8S_NAMESPACE: "surveillance-system" -before_script: - - echo "Setting up environment..." - -# Build stage: Build the Docker images +# Build stage: Builds Docker images for all services build: stage: build + services: + - docker:dind + image: docker:stable script: + - echo "Logging in to Docker registry..." + - echo "$CI_REGISTRY_PASSWORD" | docker login $CI_REGISTRY -u "$CI_REGISTRY_USER" --password-stdin - echo "Building Docker images..." - - docker build -t ${DOCKER_USERNAME}/camera:${TAG} ./services/camera - - docker build -t ${DOCKER_USERNAME}/motion_detector:${TAG} ./services/motion_detector - - docker build -t ${DOCKER_USERNAME}/object_recognizer:${TAG} ./services/object_recognizer + - docker build -t $CI_REGISTRY_IMAGE/camera:latest ./services/camera + - docker build -t $CI_REGISTRY_IMAGE/motion_detector:latest ./services/motion_detector + - docker build -t $CI_REGISTRY_IMAGE/object_recognizer:latest ./services/object_recognizer + - echo "Pushing Docker images to registry..." + - docker push $CI_REGISTRY_IMAGE/camera:latest + - docker push $CI_REGISTRY_IMAGE/motion_detector:latest + - docker push $CI_REGISTRY_IMAGE/object_recognizer:latest only: - main -# Test stage: Run unit tests (optional, can be customized based on your services) +# Test stage: Runs tests for each service test: stage: test + image: python:3.9 + before_script: + - pip install pytest script: - - echo "Running tests..." - - docker run ${DOCKER_USERNAME}/camera:${TAG} pytest tests/ - - docker run ${DOCKER_USERNAME}/motion_detector:${TAG} pytest tests/ - - docker run ${DOCKER_USERNAME}/object_recognizer:${TAG} pytest tests/ + - echo "Running tests for Camera service..." + - pytest ./services/camera/tests + - echo "Running tests for Motion Detection service..." + - pytest ./services/motion_detector/tests + - echo "Running tests for Object Recognizer service..." + - pytest ./services/object_recognizer/tests only: - main -# Deploy stage: Deploy using Docker Compose +# Deploy stage: Deploys services to Kubernetes deploy: stage: deploy + image: bitnami/kubectl:latest + before_script: + - echo "$KUBE_CONFIG" | base64 -d > kubeconfig + - export KUBECONFIG=$(pwd)/kubeconfig script: - - echo "Deploying the system..." - - if [ "$DEPLOY_ENV" == "local" ]; then - docker-compose -f ./deploy/docker-compose/docker-compose.yml down --volumes --remove-orphans; - docker-compose -f ./deploy/docker-compose/docker-compose.yml up -d --build --force-recreate; - fi - - if [ "$DEPLOY_ENV" == "cloud" ]; then - docker-compose -f ./deploy/docker-compose/docker-compose.yml down --volumes --remove-orphans; - docker-compose -f ./deploy/docker-compose/docker-compose.yml pull --ignore-pull-failures; - docker-compose -f ./deploy/docker-compose/docker-compose.yml up -d --build --force-recreate; - fi + - echo "Deploying to Kubernetes namespace $K8S_NAMESPACE..." + - kubectl apply -f k8s/deployment.yaml + - kubectl apply -f k8s/service.yaml + - echo "Deployment completed." only: - main -- GitLab