#!/usr/bin/make -f .DEFAULT_GOAL := help SHELL = bash OUTPUT_DIR = artifacts/ KEYWORDS_REPO = git@github.com:nspcc-dev/neofs-keywords.git VENVS = $(shell ls -1d venv/*/ | sort -u | xargs basename -a) ROOT_DIR := $(shell dirname $(realpath $(firstword $(MAKEFILE_LIST)))) DEV_IMAGE_PY ?= registry.spb.yadro.com/tools/pytest-neofs-x86_64:6 SETUP_DIR ?= $(CURDIR)/.setup DEV_ENV_DEPLOY_DIR ?= /opt/dev-env ifeq ($(shell uname -s),Darwin) DOCKER_NETWORK = --network bridge -p 389:389 -p 636:636 endif .PHONY: all all: venvs include venv_template.mk run: venvs @echo "⇒ Test Run" @robot --timestampoutputs --outputdir $(OUTPUT_DIR) robot/testsuites/integration/ .PHONY: venvs venvs: $(foreach venv,$(VENVS),venv.$(venv)) $(foreach venv,$(VENVS),$(eval $(call VENV_template,$(venv)))) submodules: @git submodule init @git submodule update --recursive --remote clean: rm -rf venv.* pytest-local: @echo "⇒ Run Pytest" export PYTHONPATH=$(ROOT_DIR)/neofs-keywords/lib:$(ROOT_DIR)/neofs-keywords/robot:$(ROOT_DIR)/robot/resources/lib:$(ROOT_DIR)/robot/resources/lib/python_keywords:$(ROOT_DIR)/robot/variables && \ python -m pytest pytest_tests/testsuites/ help: @echo "⇒ run Run testcases ${R}" .PHONY: setup-for-remote-devenv setup-for-remote-devenv: mkdir -p $(SETUP_DIR) # Download services directory from remote devenv into $(SETUP_DIR)/services scp -r root@$(DEV_ENV_HOST_NAME):$(DEV_ENV_DEPLOY_DIR)/services $(SETUP_DIR) # Generate .env file echo NEO_MAINNET_ENDPOINT=http://$(DEV_ENV_HOST_NAME):30333 > $(CURDIR)/.env echo MORPH_ENDPOINT=http://$(DEV_ENV_HOST_NAME):30334 >> $(CURDIR)/.env echo HTTP_GATE=http://$(DEV_ENV_HOST_NAME):81 >> $(CURDIR)/.env echo S3_GATE=https://$(DEV_ENV_HOST_NAME):8080 >> $(CURDIR)/.env echo STORAGE_CONTROL_ENDPOINT_1=$(DEV_ENV_HOST_NAME):8181 >> $(CURDIR)/.env echo STORAGE_CONTROL_ENDPOINT_2=$(DEV_ENV_HOST_NAME):8182 >> $(CURDIR)/.env echo STORAGE_CONTROL_ENDPOINT_3=$(DEV_ENV_HOST_NAME):8183 >> $(CURDIR)/.env echo STORAGE_CONTROL_ENDPOINT_4=$(DEV_ENV_HOST_NAME):8184 >> $(CURDIR)/.env echo STORAGE_RPC_ENDPOINT_1=$(DEV_ENV_HOST_NAME):8081 >> $(CURDIR)/.env echo STORAGE_RPC_ENDPOINT_2=$(DEV_ENV_HOST_NAME):8082 >> $(CURDIR)/.env echo STORAGE_RPC_ENDPOINT_3=$(DEV_ENV_HOST_NAME):8083 >> $(CURDIR)/.env echo STORAGE_RPC_ENDPOINT_4=$(DEV_ENV_HOST_NAME):8084 >> $(CURDIR)/.env echo NEOFS_ENDPOINT=$(DEV_ENV_HOST_NAME):8081 >> $(CURDIR)/.env echo STORAGE_WALLET_PATH_1="/.setup/services/storage/wallet01.json" echo STORAGE_WALLET_PATH_2="/.setup/services/storage/wallet02.json" echo STORAGE_WALLET_PATH_3="/.setup/services/storage/wallet03.json" echo STORAGE_WALLET_PATH_4="/.setup/services/storage/wallet04.json" echo MAINNET_WALLET_PATH="/.setup/services/chain/node-wallet.json" >> $(CURDIR)/.env echo IR_WALLET_PATH="/.setup/services/ir/wallet01.json" >> $(CURDIR)/.env ssh root@$(DEV_ENV_HOST_NAME) 'cd $(DEV_ENV_DEPLOY_DIR) && make env | grep NEOFS_IR_CONTRACTS_NEOFS' >> $(CURDIR)/.env .PHONY: pytest-docker pytest-docker: -docker ps -docker rm neofs_tests_py -docker pull $(DEV_IMAGE_PY) docker run -t --rm \ -w /tests \ --name neofs_tests_py \ -e PYTHONPATH="/tests/neofs-keywords/lib:/tests/neofs-keywords/robot:/tests/robot/resources/lib:/tests/robot/resources/lib/python_keywords:/tests/robot/variables:/tests/pytest_tests/helpers" \ -v $(CURDIR):/tests \ -v /var/run/docker.sock:/var/run/docker.sock \ -v $(NEO_BIN_DIR):/neofs \ -v $(SETUP_DIR):/.setup \ --privileged \ $(DOCKER_NETWORK) \ --env-file $(CURDIR)/.env \ $(DEV_IMAGE_PY) \ -v \ -m "$(CI_MARKERS)" \ --color=no \ --junitxml=/tests/xunit_results.xml \ --alluredir=/tests/allure_results \ --setup-show \ /tests/pytest_tests/testsuites