fc237b21d4
This enables support for testing in jenkins. Several minor adjustments have been performed to improve the probability that the tests pass, but there are still some random problems appearing with libp2p conections not becoming available or stopping working (similar to travis, but perhaps more often). MacOS and Windows builds are broken in worse ways (those issues will need to be addressed in the future). Thanks to @zenground0 and @victorbjelkholm for support! License: MIT Signed-off-by: Hector Sanjuan <code@hector.link>
111 lines
3.1 KiB
Makefile
111 lines
3.1 KiB
Makefile
gx_version=v0.12.1
|
|
gx-go_version=v1.6.0
|
|
|
|
deptools=deptools
|
|
|
|
gx=gx_$(gx_version)
|
|
gx-go=gx-go_$(gx-go_version)
|
|
gx_bin=$(deptools)/$(gx)
|
|
gx-go_bin=$(deptools)/$(gx-go)
|
|
bin_env=$(shell go env GOHOSTOS)-$(shell go env GOHOSTARCH)
|
|
sharness = sharness/lib/sharness
|
|
|
|
# For debugging
|
|
problematic_test = TestClustersReplicationRealloc
|
|
|
|
export PATH := $(deptools):$(PATH)
|
|
|
|
all: service ctl
|
|
clean: rwundo clean_sharness
|
|
$(MAKE) -C ipfs-cluster-service clean
|
|
$(MAKE) -C ipfs-cluster-ctl clean
|
|
|
|
gx-clean: clean
|
|
@rm -f $(deptools)/*
|
|
|
|
install: deps
|
|
$(MAKE) -C ipfs-cluster-service install
|
|
$(MAKE) -C ipfs-cluster-ctl install
|
|
|
|
build: deps
|
|
go build -ldflags "-X ipfscluster.Commit=$(shell git rev-parse HEAD)"
|
|
$(MAKE) -C ipfs-cluster-service build
|
|
$(MAKE) -C ipfs-cluster-ctl build
|
|
|
|
service: deps
|
|
$(MAKE) -C ipfs-cluster-service ipfs-cluster-service
|
|
ctl: deps
|
|
$(MAKE) -C ipfs-cluster-ctl ipfs-cluster-ctl
|
|
|
|
$(gx_bin):
|
|
@echo "Downloading gx"
|
|
@mkdir -p ./$(deptools)
|
|
@rm -f $(deptools)/gx
|
|
@wget -nc -q -O $(gx_bin).tgz https://dist.ipfs.io/gx/$(gx_version)/$(gx)_$(bin_env).tar.gz
|
|
@tar -zxf $(gx_bin).tgz -C $(deptools) --strip-components=1 gx/gx
|
|
@mv $(deptools)/gx $(gx_bin)
|
|
@ln -s $(gx) $(deptools)/gx
|
|
@rm $(gx_bin).tgz
|
|
|
|
$(gx-go_bin):
|
|
@echo "Downloading gx-go"
|
|
@mkdir -p ./$(deptools)
|
|
@rm -f $(deptools)/gx-go
|
|
@wget -nc -q -O $(gx-go_bin).tgz https://dist.ipfs.io/gx-go/$(gx-go_version)/$(gx-go)_$(bin_env).tar.gz
|
|
@tar -zxf $(gx-go_bin).tgz -C $(deptools) --strip-components=1 gx-go/gx-go
|
|
@mv $(deptools)/gx-go $(gx-go_bin)
|
|
@ln -s $(gx-go) $(deptools)/gx-go
|
|
@rm $(gx-go_bin).tgz
|
|
|
|
gx: $(gx_bin) $(gx-go_bin)
|
|
|
|
deps: gx
|
|
$(gx_bin) install --global
|
|
$(gx-go_bin) rewrite
|
|
|
|
check:
|
|
go vet ./...
|
|
golint -set_exit_status -min_confidence 0.3 ./...
|
|
|
|
test: deps
|
|
go test -timeout 20m -tags silent -v ./...
|
|
|
|
test_sharness: $(sharness)
|
|
@sh sharness/run-sharness-tests.sh
|
|
|
|
test_problem: deps
|
|
go test -timeout 20m -tags debug -v -run $(problematic_test)
|
|
|
|
$(sharness):
|
|
@echo "Downloading sharness"
|
|
@wget -q -O sharness/lib/sharness.tar.gz http://github.com/chriscool/sharness/archive/master.tar.gz
|
|
@cd sharness/lib; tar -zxf sharness.tar.gz; cd ../..
|
|
@mv sharness/lib/sharness-master sharness/lib/sharness
|
|
@rm sharness/lib/sharness.tar.gz
|
|
|
|
clean_sharness:
|
|
@rm -rf ./sharness/test-results
|
|
@rm -rf ./sharness/lib/sharness
|
|
@rm -rf sharness/trash\ directory*
|
|
|
|
rw: gx
|
|
$(gx-go_bin) rewrite
|
|
rwundo: gx
|
|
$(gx-go_bin) rewrite --undo
|
|
publish: rwundo
|
|
$(gx_bin) publish
|
|
|
|
docker:
|
|
@docker build -t cluster-image -f Dockerfile .
|
|
@docker run --name tmp-make-cluster -d cluster-image && sleep 8
|
|
@docker exec tmp-make-cluster sh -c "ipfs-cluster-ctl version"
|
|
@docker exec tmp-make-cluster sh -c "ipfs-cluster-service -v"
|
|
@docker stop tmp-make-cluster && docker rm tmp-make-cluster
|
|
@docker build -t cluster-image -f Dockerfile-test .
|
|
@docker run --name tmp-make-cluster -d cluster-image && sleep 8
|
|
@docker exec tmp-make-cluster sh -c "ipfs-cluster-ctl version"
|
|
@docker exec tmp-make-cluster sh -c "ipfs-cluster-service -v"
|
|
@docker stop tmp-make-cluster && docker rm tmp-make-cluster
|
|
|
|
.PHONY: all gx deps test test_sharness clean_sharness rw rwundo publish service ctl install clean gx-clean docker
|