Commit d1c13918 authored by Lluis Gifre Renom's avatar Lluis Gifre Renom
Browse files

Context component:

- repositioned Database Engine class
- updated CI/CD pipeline
parent fb1c48a7
Loading
Loading
Loading
Loading
+24 −6
Original line number Diff line number Diff line
@@ -49,22 +49,40 @@ unit test context:
  before_script:
    - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY
    - if docker network list | grep teraflowbridge; then echo "teraflowbridge is already created"; else docker network create -d bridge teraflowbridge; fi
    - if docker container ls | grep redis; then docker rm -f redis; else echo "redis image is not in the system"; fi
    - if docker container ls | grep crdb; then docker rm -f crdb; else echo "CockroachDB container is not in the system"; fi
    - if docker volume ls | grep crdb; then docker volume rm -f crdb; else echo "CockroachDB volume is not in the system"; fi
    - if docker container ls | grep $IMAGE_NAME; then docker rm -f $IMAGE_NAME; else echo "$IMAGE_NAME image is not in the system"; fi
  script:
    - docker pull "$CI_REGISTRY_IMAGE/$IMAGE_NAME:$IMAGE_TAG"
    - docker pull "redis:6.2"
    - docker run --name redis -d --network=teraflowbridge redis:6.2
    - docker pull "cockroachdb/cockroach:latest-v22.2"
    - docker volume create crdb
    - >
      docker run --name crdb -d --network=teraflowbridge -p 26257:26257 -p 8080:8080
      --env COCKROACH_DATABASE=tfs_test
      --env COCKROACH_USER=tfs
      --env COCKROACH_PASSWORD=tfs123
      --volume "crdb:/cockroach/cockroach-data"
      --volume "~/init-scripts:/docker-entrypoint-initdb.d"
      cockroachdb/cockroach:latest-v22.2 start-single-node
    - sleep 10
    - docker run --name $IMAGE_NAME -d -p 1010:1010 --env "DB_BACKEND=redis" --env "REDIS_SERVICE_HOST=redis" --env "REDIS_SERVICE_PORT=6379" --env "REDIS_DATABASE_ID=0" -v "$PWD/src/$IMAGE_NAME/tests:/opt/results" --network=teraflowbridge $CI_REGISTRY_IMAGE/$IMAGE_NAME:$IMAGE_TAG
    - CRDB_ADDRESS=$(docker inspect crdb --format "{{.NetworkSettings.Networks.teraflowbridge.IPAddress}}")
    - >
      docker run --name $IMAGE_NAME -d -p 1010:1010
      --env "CRDB_URI=cockroachdb://tfs:tfs123@${CRDB_ADDRESS}:26257/tfs_test?sslmode=require"
      --volume "$PWD/src/$IMAGE_NAME/tests:/opt/results"
      --network=teraflowbridge
      $CI_REGISTRY_IMAGE/$IMAGE_NAME:$IMAGE_TAG
    - docker ps -a
    - docker logs $IMAGE_NAME
    - docker exec -i $IMAGE_NAME bash -c "coverage run -m pytest --log-level=INFO --verbose $IMAGE_NAME/tests/test_unitary.py --junitxml=/opt/results/${IMAGE_NAME}_report.xml"
    - >
      docker exec -i $IMAGE_NAME bash -c
      "coverage run -m pytest --log-level=INFO --verbose $IMAGE_NAME/tests/*.py --junitxml=/opt/results/${IMAGE_NAME}_report.xml"
    - docker exec -i $IMAGE_NAME bash -c "coverage report --include='${IMAGE_NAME}/*' --show-missing"
  coverage: '/TOTAL\s+\d+\s+\d+\s+(\d+%)/'
  after_script:
    - docker rm -f $IMAGE_NAME
    - docker rm -f  redis
    - docker rm -f crdb
    - docker volume rm -f crdb
    - docker network rm teraflowbridge
  rules:
    - if: '$CI_PIPELINE_SOURCE == "merge_request_event" && ($CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "develop" || $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == $CI_DEFAULT_BRANCH)'
+4 −4
Original line number Diff line number Diff line
@@ -17,10 +17,9 @@ from prometheus_client import start_http_server
from common.Settings import get_log_level, get_metrics_port
from common.message_broker.Factory import get_messagebroker_backend
from common.message_broker.MessageBroker import MessageBroker
from sqlalchemy.orm import sessionmaker
from .database import rebuild_database
from .ContextService import ContextService
from .Engine import Engine
from .database.Engine import Engine
from .database.models._Base import rebuild_database

LOG_LEVEL = get_log_level()
logging.basicConfig(level=LOG_LEVEL, format="[%(asctime)s] %(levelname)s:%(name)s:%(message)s")
@@ -46,7 +45,8 @@ def main():
    start_http_server(metrics_port)

    db_engine = Engine.get_engine()
    rebuild_database(db_engine, drop_if_exists=False)
    Engine.create_database(db_engine)
    rebuild_database(db_engine)

    # Get message broker instance
    messagebroker = MessageBroker(get_messagebroker_backend())
+1 −1
Original line number Diff line number Diff line
@@ -25,7 +25,7 @@ from common.message_broker.Factory import get_messagebroker_backend, BackendEnum
from common.message_broker.MessageBroker import MessageBroker
from context.client.ContextClient import ContextClient
from context.service.ContextService import ContextService
from context.service.Engine import Engine
from context.service.database.Engine import Engine
from context.service.database.models._Base import rebuild_database

LOCAL_HOST = '127.0.0.1'