GO := CGO_ENABLED=0 GOOS=$(GOOS) GOARCH=$(GOARCH) go

.PHONY: run fmt

testbed: #install-tcctl
	tcctl testbed create -f testcases/$(CASE)/testbed.yaml
	echo 'TI_PARAM_STR_executeSql: "UPDATE binlog_kafka_large_transcation.sbtest1 SET k=k+1  WHERE id < 2000000;"' >> .env
	echo 'TI_PARAM_STR_VersionNo1: release-5.0' >> .env
	echo 'TI_PARAM_STR_VersionNo2: release-5.1' >> .env
	echo 'TI_PARAM_STR_VersionNo3: release-5.2' >> .env
	echo 'TI_PARAM_STR_VersionNo4: release-5.3' >> .env
	echo 'TI_PARAM_STR_global_variable: [{"name": "tidb_enable_clustered_index", "value": "on"}, {"name": "tidb_row_format_version", "value": "1"}]' >> .env


destroy-testbed:
	tcctl testbed delete

run:
	KUBECONFIG=kubeconfig.yml MYSQL_PROXY=socks5h://rms-staging.pingcap.net:30081 go run main.go --workload testcases/$(CASE)/workload.yaml

build:
	$(GO) build -trimpath -o bin/binlog-test main.go

image:
	GOOS=linux GOARCH=amd64 make build 
	docker build  --platform=linux/amd64 -t hub-new.pingcap.net/qa/binlog-test:$(CASE) .
	docker image push hub-new.pingcap.net/qa/binlog-test:$(CASE)

apply:
	tcctl apply -f testcases/$(CASE)/cases.yaml

oneshot:
	tcctl run -f  testcases/$(CASE)/oneshot.yaml

fmt: groupimports
	go fmt ./...

groupimports: install-goimports
	goimports -w -l -local github.com/pingcap/test-infra .

install-goimports:
ifeq (, $(shell which goimports))
	@{ \
	set -e ;\
	TMP_DIR=$$(mktemp -d) ;\
	cd $$TMP_DIR ;\
	GO111MODULE=on go get golang.org/x/tools/cmd/goimports ;\
	rm -rf $$TMP_DIR ;\
	}
endif

install-testbed-cli:
	go install github.com/pingcap/test-infra/services/rms/cmd/testbed@latest

