@@ -92,7 +92,7 @@ RELEASE := $(GOBUILDDIR)/bin/release
9292GHRELEASE := $(GOBUILDDIR ) /bin/github-release
9393
9494TESTLENGTHOPTIONS := -test.short
95- TESTTIMEOUT := 20m
95+ TESTTIMEOUT := 30m
9696ifeq ($(LONG ) , 1)
9797 TESTLENGTHOPTIONS :=
9898 TESTTIMEOUT := 180m
@@ -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
@@ -294,6 +310,27 @@ $(TESTBIN): $(GOBUILDDIR) $(SOURCES)
294310docker-test : $(TESTBIN )
295311 docker build --quiet -f $(DOCKERTESTFILE ) -t $(TESTIMAGE ) .
296312
313+ .PHONY : run-upgrade-tests
314+ run-upgrade-tests :
315+ TESTOPTIONS=" -test.run=TestUpgrade" make run-tests
316+
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+
297334.PHONY : run-tests
298335run-tests : docker-test
299336ifdef PUSHIMAGES
@@ -311,7 +348,7 @@ endif
311348 kubectl apply -f $(MANIFESTPATHTEST)
312349 $(ROOTDIR)/scripts/kube_create_storage.sh $(DEPLOYMENTNAMESPACE)
313350 $(ROOTDIR)/scripts/kube_create_license_key_secret.sh "$(DEPLOYMENTNAMESPACE)" '$(ENTERPRISELICENSE)'
314- $(ROOTDIR)/scripts/kube_run_tests.sh $(DEPLOYMENTNAMESPACE) $(TESTIMAGE) "$(ARANGODIMAGE)" '$(ENTERPRISEIMAGE)' $(TESTTIMEOUT) $(TESTLENGTHOPTIONS)
351+ $(ROOTDIR)/scripts/kube_run_tests.sh $(DEPLOYMENTNAMESPACE) $(TESTIMAGE) "$(ARANGODIMAGE)" '$(ENTERPRISEIMAGE)' $(TESTTIMEOUT) $(TESTLENGTHOPTIONS) $(TESTOPTIONS)
315352
316353$(DURATIONTESTBIN ) : $(GOBUILDDIR ) $(SOURCES )
317354 @mkdir -p $(BINDIR )
@@ -420,3 +457,54 @@ redeploy-operator: delete-operator manifests
420457 kubectl apply -f $(MANIFESTPATHDEPLOYMENTREPLICATION )
421458 kubectl apply -f $(MANIFESTPATHTEST )
422459 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