graphql-engine/cli/Makefile

75 lines
1.8 KiB
Makefile
Raw Normal View History

PWD := $(shell pwd)
PARENT_DIR := $(shell dirname $(PWD))
VERSION ?= $(shell ../scripts/get-version.sh)
OUTPUT_DIR := _output
# compile assets
2018-06-29 16:09:21 +03:00
.PHONY: assets
assets:
go-bindata --pkg assets -o assets/assets.go assets/**/*.html
2018-06-29 16:09:21 +03:00
HAS_GOX := $(shell command -v gox;)
HAS_DEP := $(shell command -v dep;)
HAS_BINDATA := $(shell command -v go-bindata;)
.PHONY: deps
# get dependencies
deps:
2018-06-29 16:09:21 +03:00
ifndef HAS_DEP
go get -u github.com/golang/dep/cmd/dep
endif
ifndef HAS_GOX
go get github.com/mitchellh/gox
2018-06-29 16:09:21 +03:00
endif
ifndef HAS_BINDATA
go get github.com/hasura/go-bindata/go-bindata
2018-06-29 16:09:21 +03:00
endif
if [ ! -d "vendor" ]; then dep ensure -v -vendor-only; fi
# build cli locally, for all given platform/arch
2018-06-29 16:09:21 +03:00
.PHONY: build
build:
gox -ldflags "-X github.com/hasura/graphql-engine/cli/version.BuildVersion=$(VERSION) -s -w" \
-os="linux darwin windows" \
-arch="amd64" \
2018-07-17 20:00:26 +03:00
-output="$(OUTPUT_DIR)/$(VERSION)/cli-hasura-{{.OS}}-{{.Arch}}" \
./cmd/hasura/
2018-06-29 16:09:21 +03:00
# compress
.PHONY: compress
compress:
2018-07-17 20:00:26 +03:00
ls $(OUTPUT_DIR)/$(VERSION)/cli-hasura-* | xargs upx
2018-06-29 16:09:21 +03:00
2018-07-10 13:01:02 +03:00
# to be executed in circle-ci only
ci-copy-binary:
2018-07-17 20:00:26 +03:00
mkdir -p /build/_cli_output/binaries
cp $(OUTPUT_DIR)/$(VERSION)/cli-hasura-* /build/_cli_output/binaries
2018-07-10 13:01:02 +03:00
echo "$(VERSION)" > /build/_cli_output/version.txt
# run tests
2018-06-29 16:09:21 +03:00
.PHONY: test
test:
2018-07-10 13:01:02 +03:00
go test -ldflags "-X github.com/hasura/graphql-engine/cli/version.BuildVersion=$(VERSION)" ./...
# generate docs
2018-06-29 16:09:21 +03:00
.PHONY: docs
docs:
rm -fr docs
go run cmd/hasura/hasura.go docs --type md --directory docs
# clean the output directory
2018-06-29 16:09:21 +03:00
.PHONY: clean
clean:
rm -rf "$(OUTPUT_DIR)"
2018-06-29 16:09:21 +03:00
.PHONY: all
all: deps assets test build
# build cli inside a docker container
all-in-docker:
docker build -t hasura-graphql-cli-builder -f build/builder.dockerfile build
docker run --rm -it \
-v $(PARENT_DIR):/go/src/github.com/hasura/graphql-engine \
hasura-graphql-cli-builder \
make all