Commit b6347d75 authored by Yakubov, Sergey's avatar Yakubov, Sergey
Browse files

Merge branch '1-data-manager-with-local-storage-backend' into 'main'

merge to see coverage and badges work

See merge request ndip/remote-data-managers!4
parents 1b61e99f 386de6d9
Loading
Loading
Loading
Loading
Loading

.coveragerc

0 → 100644
+3 −0
Original line number Diff line number Diff line
[report]
omit =
    tests/*

.flake8

0 → 100644
+2 −0
Original line number Diff line number Diff line
[flake8]
max-line-length = 120
+3 −0
Original line number Diff line number Diff line
@@ -4,3 +4,6 @@ __pycache__
*.log
*.bkp
.dockerignore
.coverage
htmlcov
coverage.xml
+58 −4
Original line number Diff line number Diff line
@@ -3,11 +3,13 @@ stages:
  - build
  - unit-tests
  - build-prod
  - integration-tests

variables:
  GIT_STRATEGY: clone
  CONTAINER_RDM_URL: "${CI_REGISTRY_IMAGE}/remote-data-manager-dev"
  CONTAINER_RDM_URL_PROD: "${CI_REGISTRY_IMAGE}/remote-data-manager"
  coverage_report_view: "true"

# This import is for the func_rse_docker_* functions
before_script:
@@ -27,9 +29,18 @@ lint:
  script:
    - >
      docker build
      -f dockerfiles/dev.Dockerfile
      -f dockerfiles/Dockerfile
      -t remote-data-manager .
    - docker run --rm remote-data-manager bash -c "set -e; poetry run isort --filter-files --check-only . ; poetry run black --check --diff .; poetry run flake8 ."
    - >
      docker run --rm remote-data-manager bash -c 
      "set -e;
      poetry run isort --filter-files --check-only . ;
      poetry run black --check --diff .;
      poetry run flake8 .;
      poetry run pylint app;
      poetry run mypy .
      "
    - docker tag remote-data-manager $CONTAINER_RDM_URL/$CI_COMMIT_REF_NAME:$CI_COMMIT_SHORT_SHA
    - docker push $CONTAINER_RDM_URL/$CI_COMMIT_REF_NAME:$CI_COMMIT_SHORT_SHA
  tags:
    - rse-multi-builder
@@ -48,12 +59,30 @@ service-tests:
  tags:
    - rse-multi-builder

services-build:
service-coverage:
  stage: unit-tests
  variables:
  script:
    - >
      docker run --rm
      -v $PWD:/reports
      $CONTAINER_RDM_URL/$CI_COMMIT_REF_NAME:$CI_COMMIT_SHORT_SHA bash -c "poetry run pytest --cov=. --cov-fail-under=80  --cov-report=html:/reports/htmlcov --cov-report=xml:/reports/coverage.xml tests/unit "
    - sed -i "s:<source>/code:<source>${CI_BUILDS_DIR}/${CI_PROJECT_PATH}:g" coverage.xml
  coverage: '/coverage: \d+.\d+%/'
  artifacts:
    reports:
      cobertura: coverage.xml
    paths:
      - htmlcov/
  tags:
    - rse-multi-builder

service-build:
  stage: build-prod
  script:
    - >    
      docker build
      -f dockerfiles/prod.Dockerfile
      -f dockerfiles/Dockerfile --target production
      -t remote-data-manager .
    - docker tag remote-data-manager $CONTAINER_RDM_URL_PROD/$CI_COMMIT_REF_NAME:$CI_COMMIT_SHORT_SHA
    - docker tag $CONTAINER_RDM_URL_PROD/$CI_COMMIT_REF_NAME:$CI_COMMIT_SHORT_SHA $CONTAINER_RDM_URL_PROD/$CI_COMMIT_REF_NAME:latest
@@ -62,3 +91,28 @@ services-build:
  tags:
    - rse-multi-builder



service-integration-tests:
  stage: integration-tests
  variables:
    LOCALHOST: "172.17.0.1"
  script:
    - > 
      docker run --rm -d
      --name remote-data-manager
      -p 8090:8000
      $CONTAINER_RDM_URL_PROD/$CI_COMMIT_REF_NAME:$CI_COMMIT_SHORT_SHA
    - sleep 2
    - >
      docker run --rm
      -e LOCALHOST
      -v $PWD:/reports
      $CONTAINER_RDM_URL/$CI_COMMIT_REF_NAME:$CI_COMMIT_SHORT_SHA bash -c "poetry run pytest tests/integration --junitxml=/reports/report_int.xml"
    - docker rm -f remote-data-manager
  artifacts:
    when: always
    reports:
      junit: report_int.xml
  tags:
    - rse-multi-builder
+32 −0
Original line number Diff line number Diff line
@@ -39,3 +39,35 @@ repos:
        entry: poetry run flake8
        pass_filenames: false
        language: system
  - repo: local
    hooks:
      - id: system
        name: Pylint
        description: use pylint to lint
        entry: poetry run pylint app
        pass_filenames: false
        language: system
  - repo: local
    hooks:
      - id: system
        name: Mypy
        description: use mypy to check types
        entry: poetry run mypy .
        pass_filenames: false
        language: system
  - repo: local
    hooks:
      - id: system
        name: Unit tests
        description: use pytest to run unit tests
        entry: poetry run pytest tests/unit
        pass_filenames: false
        language: system
  - repo: local
    hooks:
      - id: system
        name: Coverage
        description: use pytest to run unit tests with coverage
        entry: poetry run pytest  --cov=app --cov-fail-under=80 tests/unit
        pass_filenames: false
        language: system
 No newline at end of file
Loading