mirror of
https://github.com/status-im/status-go.git
synced 2025-01-09 14:16:21 +00:00
2897f0ec0f
Refactor and little bit clean up Notify api: Created interface and package "notification" and extracted related code into it Set dependencies into constructor notificatotion.Manager Mocks for notificatotion.Manager and FCMClient Bacis unit tests for Notify and Send Notify func is now deprecated Notify users uses new API: message, Payload and a list of tokens
117 lines
5.1 KiB
Makefile
117 lines
5.1 KiB
Makefile
.PHONY: statusgo all test xgo clean help
|
|
.PHONY: statusgo-android statusgo-ios
|
|
|
|
include ./static/tools/mk/lint.mk
|
|
|
|
GOBIN = build/bin
|
|
GO ?= latest
|
|
|
|
# This is a code for automatic help generator.
|
|
# It supports ANSI colors and categories.
|
|
# To add new item into help output, simply add comments
|
|
# starting with '##'. To add category, use @category.
|
|
GREEN := $(shell tput -Txterm setaf 2)
|
|
WHITE := $(shell tput -Txterm setaf 7)
|
|
YELLOW := $(shell tput -Txterm setaf 3)
|
|
RESET := $(shell tput -Txterm sgr0)
|
|
HELP_FUN = \
|
|
%help; \
|
|
while(<>) { push @{$$help{$$2 // 'options'}}, [$$1, $$3] if /^([a-zA-Z\-]+)\s*:.*\#\#(?:@([a-zA-Z\-]+))?\s(.*)$$/ }; \
|
|
print "Usage: make [target]\n\n"; \
|
|
for (sort keys %help) { \
|
|
print "${WHITE}$$_:${RESET}\n"; \
|
|
for (@{$$help{$$_}}) { \
|
|
$$sep = " " x (32 - length $$_->[0]); \
|
|
print " ${YELLOW}$$_->[0]${RESET}$$sep${GREEN}$$_->[1]${RESET}\n"; \
|
|
}; \
|
|
print "\n"; \
|
|
}
|
|
|
|
help: ##@other Show this help
|
|
@perl -e '$(HELP_FUN)' $(MAKEFILE_LIST)
|
|
|
|
# Main targets
|
|
|
|
UNIT_TEST_PACKAGES := $(shell go list ./... | grep -v /vendor | grep -v /e2e | grep -v /cmd)
|
|
|
|
statusgo: ##@build Build status-go as statusd server
|
|
build/env.sh go build -i -o $(GOBIN)/statusd -v $(shell build/testnet-flags.sh) ./cmd/statusd
|
|
@echo "\nCompilation done.\nRun \"build/bin/statusd help\" to view available commands."
|
|
|
|
statusgo-cross: statusgo-android statusgo-ios
|
|
@echo "Full cross compilation done."
|
|
@ls -ld $(GOBIN)/statusgo-*
|
|
|
|
statusgo-android: xgo ##@cross-compile Build status-go for Android
|
|
build/env.sh $(GOBIN)/xgo --image farazdagi/xgo --go=$(GO) -out statusgo --dest=$(GOBIN) --targets=android-16/aar -v $(shell build/testnet-flags.sh) ./cmd/statusd
|
|
@echo "Android cross compilation done."
|
|
|
|
statusgo-ios: xgo ##@cross-compile Build status-go for iOS
|
|
build/env.sh $(GOBIN)/xgo --image farazdagi/xgo --go=$(GO) -out statusgo --dest=$(GOBIN) --targets=ios-9.3/framework -v $(shell build/testnet-flags.sh) ./cmd/statusd
|
|
@echo "iOS framework cross compilation done."
|
|
|
|
statusgo-ios-simulator: xgo ##@cross-compile Build status-go for iOS Simulator
|
|
@build/env.sh docker pull farazdagi/xgo-ios-simulator
|
|
build/env.sh $(GOBIN)/xgo --image farazdagi/xgo-ios-simulator --go=$(GO) -out statusgo --dest=$(GOBIN) --targets=ios-9.3/framework -v $(shell build/testnet-flags.sh) ./cmd/statusd
|
|
@echo "iOS framework cross compilation done."
|
|
|
|
xgo:
|
|
build/env.sh docker pull farazdagi/xgo
|
|
build/env.sh go get github.com/karalabe/xgo
|
|
|
|
statusgo-mainnet:
|
|
build/env.sh go build -i -o $(GOBIN)/statusgo -v $(shell build/mainnet-flags.sh) ./cmd/statusd
|
|
@echo "status go compilation done (mainnet)."
|
|
@echo "Run \"build/bin/statusgo\" to view available commands"
|
|
|
|
statusgo-android-mainnet: xgo
|
|
build/env.sh $(GOBIN)/xgo --image farazdagi/xgo --go=$(GO) -out statusgo --dest=$(GOBIN) --targets=android-16/aar -v $(shell build/mainnet-flags.sh) ./cmd/statusd
|
|
@echo "Android cross compilation done (mainnet)."
|
|
|
|
statusgo-ios-mainnet: xgo
|
|
build/env.sh $(GOBIN)/xgo --image farazdagi/xgo --go=$(GO) -out statusgo --dest=$(GOBIN) --targets=ios-9.3/framework -v $(shell build/mainnet-flags.sh) ./cmd/statusd
|
|
@echo "iOS framework cross compilation done (mainnet)."
|
|
|
|
statusgo-ios-simulator-mainnet: xgo
|
|
build/env.sh $(GOBIN)/xgo --image farazdagi/xgo-ios-simulator --go=$(GO) -out statusgo --dest=$(GOBIN) --targets=ios-9.3/framework -v $(shell build/mainnet-flags.sh) ./cmd/statusd
|
|
@echo "iOS framework cross compilation done (mainnet)."
|
|
|
|
generate: ##@other Regenerate assets and other auto-generated stuff
|
|
cp ./node_modules/web3/dist/web3.js ./static/scripts/web3.js
|
|
build/env.sh go generate ./static
|
|
rm ./static/scripts/web3.js
|
|
|
|
|
|
mock-install: ##@other Install mocking tools
|
|
go get -u github.com/golang/mock/mockgen
|
|
|
|
mock: ##@other Regenerate mocks
|
|
mockgen -source=geth/common/types.go -destination=geth/common/types_mock.go -package=common
|
|
mockgen -source=geth/common/notification.go -destination=geth/common/notification_mock.go -package=common -imports fcm=github.com/NaySoftware/go-fcm
|
|
mockgen -source=geth/notification/fcm/client.go -destination=geth/notification/fcm/client_mock.go -package=fcm -imports fcm=github.com/NaySoftware/go-fcm
|
|
|
|
test: test-unit-coverage ##@tests Run basic, short tests during development
|
|
|
|
test-unit: ##@tests Run unit and integration tests
|
|
build/env.sh go test $(UNIT_TEST_PACKAGES)
|
|
|
|
test-unit-coverage: ##@tests Run unit and integration tests with coverage
|
|
build/env.sh go test -coverpkg= $(UNIT_TEST_PACKAGES)
|
|
|
|
test-e2e: ##@tests Run e2e tests
|
|
# order: reliability then alphabetical
|
|
# TODO(tiabc): make a single command out of them adding `-p 1` flag.
|
|
build/env.sh go test -timeout 5m ./e2e/accounts/...
|
|
build/env.sh go test -timeout 5m ./e2e/api/...
|
|
build/env.sh go test -timeout 5m ./e2e/node/...
|
|
build/env.sh go test -timeout 15m ./e2e/jail/...
|
|
build/env.sh go test -timeout 20m ./e2e/rpc/...
|
|
build/env.sh go test -timeout 20m ./e2e/whisper/...
|
|
build/env.sh go test -timeout 10m ./e2e/transactions/...
|
|
build/env.sh go test -timeout 40m ./cmd/statusd
|
|
|
|
ci: lint mock-install mock test-unit test-e2e ##@tests Run all linters and tests at once
|
|
|
|
clean: ##@other Cleanup
|
|
rm -fr build/bin/*
|
|
rm coverage.out coverage-all.out coverage.html
|