diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 8a60fdea7e864292635fd189dd3a49e32f32f6b4..edbeb1f10c08b114d308d3a2260d10eb3ee30dca 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -10,11 +10,6 @@ stages: - deploy - cleanup -variables: - IMAGE: "prozorro-document-service/develop:$CI_COMMIT_SHORT_SHA" - IMAGE_TEST: "prozorro-document-service/develop:$CI_COMMIT_SHORT_SHA-test" - FULL_NAME_IMAGE: "registry-gitlab.prozorro.sale/prozorro-sale/document-service" - helm-linter: extends: .helm-lint-template @@ -60,7 +55,3 @@ deploy-dev-kubernetes: clenup-test-images: extends: .cleanup-test-images-template - script: - - docker rmi -f $IMAGE || true - - docker rmi -f $IMAGE_TEST || true - - docker network rm ${CI_COMMIT_SHORT_SHA}_default || true diff --git a/Makefile b/Makefile index c3fbda06c3830fe35edb0060eef3540af9556417..cf7cffb0b46e1356f33c53d3ee04ce0d21e8cb95 100644 --- a/Makefile +++ b/Makefile @@ -4,6 +4,11 @@ IMAGE_TEST ?= prozorro-sale-$(PROJECT_NAME):develop-test CI_COMMIT_SHORT_SHA ?= $(shell git rev-parse --short HEAD) GIT_STAMP ?= $(shell git describe || echo v0.1.0) CHART_MUSEUM_URL ?= "https://helm.prozorro.sale/api/charts" +COMPOSE_PROJECT_NAME ?= $(PROJECT_NAME)-$(CI_PIPELINE_ID) +PROJECT_ID ?= $(COMPOSE_PROJECT_NAME)-$(CI_COMMIT_SHORT_SHA) +PROJECT_ID_UNIT=$(PROJECT_ID)-unit +PROJECT_ID_INTEGRATION ?= $(PROJECT_ID)-integration +PUBLISH_STAGE_CONTAINER_NAME ?= $(PROJECT_ID)-publish ifdef CI REBUILD_IMAGES_FOR_TESTS = @@ -40,29 +45,31 @@ run: $(REBUILD_IMAGES_FOR_TESTS) docker run -e "SWAGGER_DOC=1" -p 80:80 $(IMAGE) python -m prozorro_sale.document_service.api test-unit: $(REBUILD_IMAGES_FOR_TESTS) - docker rm -f $(CI_COMMIT_SHORT_SHA) || true - docker run \ - --name $(CI_COMMIT_SHORT_SHA) \ - $(IMAGE_TEST) \ + docker rm -f $(PROJECT_ID_UNIT) || true + docker run --name $(PROJECT_ID_UNIT) $(IMAGE_TEST) \ nosetests --with-coverage --cover-package=prozorro_sale tests.unit -v - docker cp $(CI_COMMIT_SHORT_SHA):/document_service/.coverage .coverage.unit + docker cp $(PROJECT_ID_UNIT):/document_service/.coverage .coverage.unit test-integration: $(REBUILD_IMAGES_FOR_TESTS) - docker rm -f integration-$(CI_COMMIT_SHORT_SHA) || true - docker run \ - --name integration-$(CI_COMMIT_SHORT_SHA) \ - $(IMAGE_TEST) \ + docker rm -f $(PROJECT_ID_INTEGRATION) || true + docker run --name $(PROJECT_ID_INTEGRATION) $(IMAGE_TEST) \ nosetests --with-coverage --cover-package=prozorro_sale tests.integration -v - docker cp $(CI_COMMIT_SHORT_SHA):/document_service/.coverage .coverage.integration + docker cp $(PROJECT_ID_INTEGRATION):/document_service/.coverage .coverage.integration + +## Stop application and remove containers for a service. +remove-compose: + docker ps -a -q -f name=$(COMPOSE_PROJECT_NAME).* | xargs --no-run-if-empty docker stop || exit 0 + docker ps -a -q -f name=$(COMPOSE_PROJECT_NAME).* | xargs --no-run-if-empty docker rm -v -f || exit 0 + docker network ls -q -f name=$(COMPOSE_PROJECT_NAME).* | xargs --no-run-if-empty docker network rm || exit 0 publish-coverage: - docker rm -f $(CI_COMMIT_SHORT_SHA) || true - docker run -d --name $(CI_COMMIT_SHORT_SHA) $(IMAGE_TEST) sleep infinity - docker cp .coverage.unit $(CI_COMMIT_SHORT_SHA):/tmp/ - docker cp .coverage.integration $(CI_COMMIT_SHORT_SHA):/tmp/ - docker exec $(CI_COMMIT_SHORT_SHA) bash -c "cd /tmp && coverage combine && coverage report && coverage html -d cover-html" - docker cp $(CI_COMMIT_SHORT_SHA):/tmp/cover-html cover-html - docker rm -f $(CI_COMMIT_SHORT_SHA) + docker rm -f $(PUBLISH_STAGE_CONTAINER_NAME) || true + docker run -d --name $(PUBLISH_STAGE_CONTAINER_NAME) $(IMAGE_TEST) sleep infinity + docker cp .coverage.unit $(PUBLISH_STAGE_CONTAINER_NAME):/tmp/ + docker cp .coverage.integration $(PUBLISH_STAGE_CONTAINER_NAME):/tmp/ + docker exec $(PUBLISH_STAGE_CONTAINER_NAME) bash -c "cd /tmp && coverage combine && coverage report && coverage html -d cover-html" + docker cp $(PUBLISH_STAGE_CONTAINER_NAME):/tmp/cover-html cover-html + docker rm -f $(PUBLISH_STAGE_CONTAINER_NAME) version: $(eval GIT_TAG ?= $(shell git describe --abbrev=0)) diff --git a/requirements.txt b/requirements.txt index b0d793a509c16c7d2061f7dac2445eae0e89fb2a..44163ec0c7c21b42919f8bd3c60ff9d756e69815 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,9 +1,10 @@ +-i https://pypi-int.prozorro.sale/ aiobotocore==1.2.1 pyjwt~=2.0.0 cryptography==3.4.4 aiohttp==3.7.3 aiohttp-swagger==1.0.15 -prozorro-tools==0.11.0 +prozorro-tools==0.13.0 prozorro-metrics~=1.4.0 prozorro-auth uvloop==0.15.2