forked from TrueCloudLab/frostfs-testcases
100 lines
3.8 KiB
Makefile
100 lines
3.8 KiB
Makefile
#!/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:7
|
|
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
|