Commit 201b2570 authored by Lluis Gifre Renom's avatar Lluis Gifre Renom
Browse files

Arranged GitLab CI/CD for PathComp component

parent fabf076a
Loading
Loading
Loading
Loading
+13 −13
Original line number Diff line number Diff line
@@ -22,7 +22,7 @@ build pathcomp-backend:
    - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY
  script:
    # This first build tags the builder resulting image to prevent being removed by dangling image removal command
    - docker build -t "${IMAGE_NAME}-backend:$IMAGE_TAG-builder" --target builder -f ./src/$IMAGE_NAME/backend/Dockerfile .
    - docker build -t "${IMAGE_NAME}-backend:${IMAGE_TAG}-builder" --target builder -f ./src/$IMAGE_NAME/backend/Dockerfile .
    - docker build -t "${IMAGE_NAME}-backend:$IMAGE_TAG" -f ./src/$IMAGE_NAME/backend/Dockerfile .
    - docker tag "${IMAGE_NAME}-backend:$IMAGE_TAG" "$CI_REGISTRY_IMAGE/${IMAGE_NAME}-backend:$IMAGE_TAG"
    - docker push "$CI_REGISTRY_IMAGE/${IMAGE_NAME}-backend:$IMAGE_TAG"
@@ -83,13 +83,13 @@ unit test pathcomp-backend:
    - if docker container ls | grep ${IMAGE_NAME}-backend; then docker rm -f ${IMAGE_NAME}-backend; else echo "${IMAGE_NAME}-backend image is not in the system"; fi
  script:
    - docker pull "$CI_REGISTRY_IMAGE/${IMAGE_NAME}-backend:$IMAGE_TAG"
    - docker run --name ${IMAGE_NAME}-backend -d -p 8081:8081 -v "$PWD/src/${IMAGE_NAME}/backend/tests:/opt/results" --network=teraflowbridge ${IMAGE_NAME}-backend:$IMAGE_TAG-builder
    - docker run --name ${IMAGE_NAME}-backend -d -p 8081:8081 -v "$PWD/src/${IMAGE_NAME}/backend/tests:/opt/results" --network=teraflowbridge ${IMAGE_NAME}-backend:${IMAGE_TAG}-builder
    - sleep 5
    - docker ps -a
    - docker logs ${IMAGE_NAME}-backend
    - docker exec -i $IMAGE_NAME-backend bash -c "curl -0 -v -X POST -H 'Expect:' -H 'Content-Type: application/json' http://127.0.0.1:8081/pathComp/api/v1/compRoute -d @/var/teraflow/test/pc-req.json"
    - docker exec -i $IMAGE_NAME-backend bash -c "killall -USR1 pathComp-cvr"
    - docker exec -i $IMAGE_NAME-backend bash -c "gcovr"
    - docker exec -i ${IMAGE_NAME}-backend bash -c "curl -0 -v -X POST http://127.0.0.1:8081/pathComp/api/v1/compRoute -d @/var/teraflow/test/pc-req.json"
    - docker exec -i ${IMAGE_NAME}-backend bash -c "killall -USR1 pathComp-cvr"
    - docker exec -i ${IMAGE_NAME}-backend bash -c "gcovr"
  coverage: '/TOTAL\s+\d+\s+\d+\s+(\d+%)/'
  after_script:
    - docker rm -f ${IMAGE_NAME}-backend
@@ -128,19 +128,19 @@ unit test pathcomp-frontend:
  script:
    - docker pull "$CI_REGISTRY_IMAGE/${IMAGE_NAME}-frontend:$IMAGE_TAG"
    - docker pull "$CI_REGISTRY_IMAGE/${IMAGE_NAME}-backend:$IMAGE_TAG"
    - docker run --name backend -d -p 8081:8081 -v "$PWD/src/${IMAGE_NAME}/backend/tests:/opt/results" --network=teraflowbridge $CI_REGISTRY_IMAGE/${IMAGE_NAME}-backend:$IMAGE_TAG
    - docker run --name ${IMAGE_NAME}-backend -d -p 8081:8081 -v "$PWD/src/${IMAGE_NAME}/backend/tests:/opt/results" --network=teraflowbridge $CI_REGISTRY_IMAGE/${IMAGE_NAME}-backend:$IMAGE_TAG
    - sleep 1
    - docker run --name frontend -d -p 10020:10020 --env "PATHCOMP_BACKEND_HOST=backend" --env "PATHCOMP_BACKEND_PORT=8081" -v "$PWD/src/${IMAGE_NAME}/frontend/tests:/opt/results" --network=teraflowbridge $CI_REGISTRY_IMAGE/${IMAGE_NAME}-frontend:$IMAGE_TAG
    - docker run --name ${IMAGE_NAME}-frontend -d -p 10020:10020 --env "PATHCOMP_BACKEND_HOST=${IMAGE_NAME}-backend" --env "PATHCOMP_BACKEND_PORT=8081" -v "$PWD/src/${IMAGE_NAME}/frontend/tests:/opt/results" --network=teraflowbridge $CI_REGISTRY_IMAGE/${IMAGE_NAME}-frontend:$IMAGE_TAG
    - sleep 5
    - docker ps -a
    - docker logs frontend
    - docker logs backend
    - docker exec -i frontend bash -c "coverage run -m pytest --log-level=INFO --verbose $IMAGE_NAME/frontend/tests/test_unitary.py --junitxml=/opt/results/${IMAGE_NAME}-frontend_report.xml"
    - docker exec -i frontend bash -c "coverage report --include='${IMAGE_NAME}/*' --show-missing"
    - docker logs ${IMAGE_NAME}-frontend
    - docker logs ${IMAGE_NAME}-backend
    - docker exec -i ${IMAGE_NAME}-frontend bash -c "coverage run -m pytest --log-level=INFO --verbose $IMAGE_NAME/frontend/tests/test_unitary.py --junitxml=/opt/results/${IMAGE_NAME}-frontend_report.xml"
    - docker exec -i ${IMAGE_NAME}-frontend bash -c "coverage report --include='${IMAGE_NAME}/*' --show-missing"
  coverage: '/TOTAL\s+\d+\s+\d+\s+(\d+%)/'
  after_script:
    - docker rm -f frontend
    - docker rm -f backend
    - docker rm -f ${IMAGE_NAME}-frontend
    - docker rm -f ${IMAGE_NAME}-backend
    - 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)'