@@ -104,6 +104,22 @@ endif
104104SOURCES := $(shell find $(SRCDIR ) -name '* .go' -not -path './test/* ')
105105DASHBOARDSOURCES := $(shell find $(DASHBOARDDIR ) /src -name '* .js' -not -path './test/* ') $(DASHBOARDDIR ) /package.json
106106
107+ ifndef ARANGOSYNCSRCDIR
108+ ARANGOSYNCSRCDIR := $(SCRIPTDIR)/arangosync
109+ endif
110+ DOCKERARANGOSYNCCTRLFILE =tests/sync/Dockerfile
111+ ifndef ARANGOSYNCTESTCTRLIMAGE
112+ ARANGOSYNCTESTCTRLIMAGE := $(DOCKERNAMESPACE)/kube-arangodb-sync-test-ctrl$(IMAGESUFFIX)
113+ endif
114+ ifndef ARANGOSYNCTESTIMAGE
115+ ARANGOSYNCTESTIMAGE := $(DOCKERNAMESPACE)/kube-arangodb-sync-test$(IMAGESUFFIX)
116+ endif
117+ ifndef ARANGOSYNCIMAGE
118+ ARANGOSYNCIMAGE := $(DOCKERNAMESPACE)/kube-arangodb-sync$(IMAGESUFFIX)
119+ endif
120+ ARANGOSYNCTESTCTRLBINNAME := $(PROJECT ) _sync_test_ctrl
121+ ARANGOSYNCTESTCTRLBIN := $(BINDIR ) /$(ARANGOSYNCTESTCTRLBINNAME )
122+
107123.PHONY : all
108124all : verify-generated build
109125
@@ -298,6 +314,23 @@ docker-test: $(TESTBIN)
298314run-upgrade-tests :
299315 TESTOPTIONS=" -test.run=TestUpgrade" make run-tests
300316
317+ .PHONY : prepare-run-tests
318+ prepare-run-tests :
319+ ifdef PUSHIMAGES
320+ docker push $(OPERATORIMAGE)
321+ endif
322+ ifneq ($(DEPLOYMENTNAMESPACE ) , default)
323+ $(ROOTDIR)/scripts/kube_delete_namespace.sh $(DEPLOYMENTNAMESPACE)
324+ kubectl create namespace $(DEPLOYMENTNAMESPACE)
325+ endif
326+ kubectl apply -f $(MANIFESTPATHCRD)
327+ kubectl apply -f $(MANIFESTPATHSTORAGE)
328+ kubectl apply -f $(MANIFESTPATHDEPLOYMENT)
329+ kubectl apply -f $(MANIFESTPATHDEPLOYMENTREPLICATION)
330+ kubectl apply -f $(MANIFESTPATHTEST)
331+ $(ROOTDIR)/scripts/kube_create_storage.sh $(DEPLOYMENTNAMESPACE)
332+ $(ROOTDIR)/scripts/kube_create_license_key_secret.sh "$(DEPLOYMENTNAMESPACE)" '$(ENTERPRISELICENSE)'
333+
301334.PHONY : run-tests
302335run-tests : docker-test
303336ifdef PUSHIMAGES
@@ -424,3 +457,54 @@ redeploy-operator: delete-operator manifests
424457 kubectl apply -f $(MANIFESTPATHDEPLOYMENTREPLICATION )
425458 kubectl apply -f $(MANIFESTPATHTEST )
426459 kubectl get pods
460+
461+ # # ArangoSync Tests
462+
463+ $(ARANGOSYNCTESTCTRLBIN ) : $(GOBUILDDIR ) $(SOURCES )
464+ @mkdir -p $(BINDIR )
465+ docker run \
466+ --rm \
467+ -v $(SRCDIR ) :/usr/code \
468+ -v $(CACHEVOL ) :/usr/gocache \
469+ -e GOCACHE=/usr/gocache \
470+ -e GOPATH=/usr/code/.gobuild \
471+ -e GOOS=linux \
472+ -e GOARCH=amd64 \
473+ -e CGO_ENABLED=0 \
474+ -w /usr/code/ \
475+ golang:$(GOVERSION ) \
476+ go build -installsuffix cgo -ldflags " -X main.projectVersion=$( VERSION) -X main.projectBuild=$( COMMIT) " -o /usr/code/bin/$(ARANGOSYNCTESTCTRLBINNAME ) $(REPOPATH ) /tests/sync
477+
478+ .PHONY : check-sync-vars
479+ check-sync-vars :
480+ ifndef ARANGOSYNCSRCDIR
481+ @echo ARANGOSYNCSRCDIR must point to the arangosync source directory
482+ @exit 1
483+ endif
484+ ifndef ARANGODIMAGE
485+ @echo ARANGODIMAGE must point to the usable arangodb enterprise image
486+ @exit 1
487+ endif
488+ ifndef ENTERPRISELICENSE
489+ @echo For tests using ArangoSync you most likely need the license key. Please set ENTERPRISELICENSE.
490+ @exit 1
491+ endif
492+ @echo Using ArangoSync source at $(ARANGOSYNCSRCDIR)
493+ @echo Using ArangoDB image $(ARANGODIMAGE)
494+
495+ .PHONY : docker-sync
496+ docker-sync : check-sync-vars
497+ SYNCIMAGE=$(ARANGOSYNCIMAGE ) TESTIMAGE=$(ARANGOSYNCTESTIMAGE ) $(MAKE ) -C $(ARANGOSYNCSRCDIR ) docker docker-test
498+
499+ .PHONY :
500+ docker-sync-test-ctrl : $(ARANGOSYNCTESTCTRLBIN )
501+ docker build --quiet -f $(DOCKERARANGOSYNCCTRLFILE ) -t $(ARANGOSYNCTESTCTRLIMAGE ) .
502+
503+ .PHONY :
504+ run-sync-tests : check-vars docker-sync docker-sync-test-ctrl prepare-run-tests
505+ ifdef PUSHIMAGES
506+ docker push $(ARANGOSYNCTESTCTRLIMAGE)
507+ docker push $(ARANGOSYNCTESTIMAGE)
508+ docker push $(ARANGOSYNCIMAGE)
509+ endif
510+ $(ROOTDIR)/scripts/kube_run_sync_tests.sh $(DEPLOYMENTNAMESPACE) '$(ARANGODIMAGE)' '$(ARANGOSYNCIMAGE)' '$(ARANGOSYNCTESTIMAGE)' '$(ARANGOSYNCTESTCTRLIMAGE)' '$(TESTOPTIONS)'
0 commit comments