fetch_secret_files:
	yarn fetch-secrets
fetch_gql_queries:
	yarn fetch-gql
clean_reports:
	rm -rf reports
	mkdir reports
	mkdir reports/screenshots
	chmod -R 777 ./reports
clean: clean_reports
	rm -rf dist
	rm -rf src/frameworkScripts/dist
	rm -rf src/k6Ready/
start_token_fetcher:
	yarn start-token-fetcher &
run_k6_test_in_docker: fetch_secret_files start_token_fetcher fetch_gql_queries
	yarn bundle
	@if [ -n "$$JOB_NAME" ]; then \
		k6 run --summary-export=reports/summary.json --summary-trend-stats='avg,min,med,max,p(90),p(95),p(99)' -o output-statsd k6Ready/testFile.bundle.js; \
	else \
		k6 run --summary-export=reports/summary.json --summary-trend-stats='avg,min,med,max,p(90),p(95),p(99)' k6Ready/testFile.bundle.js; \
	fi
	make zip_screenshots
	make check_thresholds
zip_screenshots:
		@if [ -n "$$(find reports/screenshots -type f -print -quit)" ]; then \
    		cd reports/screenshots && zip -j  ../screenshots.zip *; \
    	fi
check_thresholds:
	@if [ -n "$$K6_METRIC_THRESHOLDS" ]; then \
		node src/frameworkScripts/dist/metricThresholdChecker.js '${K6_METRIC_THRESHOLDS}' \
	else \
		echo "K6_METRIC_THRESHOLDS is empty, skipping."; \
	fi
build_docker_image:
	docker compose build k6-hybrid-performance-tests
build_and_run_docker_k6_test: clean build_docker_image
	docker compose run --rm --env-from-file .env k6-hybrid-performance-tests "make run_k6_test_in_docker TEST_FILE=${TEST_FILE}"
ci_run_docker_k6_test: clean_reports
	docker compose run --rm --pull always k6-hybrid-performance-tests "make run_k6_test_in_docker TEST_FILE=${TEST_FILE}"
ci_run_PR_docker_k6_test: clean_reports build_docker_image
	docker compose run --rm k6-hybrid-performance-tests "make run_k6_test_in_docker TEST_FILE=${TEST_FILE}"
