|
@@ -0,0 +1,198 @@
|
|
|
+Skip to content
|
|
|
+This repository
|
|
|
+Search
|
|
|
+Pull requests
|
|
|
+Issues
|
|
|
+Marketplace
|
|
|
+Explore
|
|
|
+ @dongcj
|
|
|
+Sign out
|
|
|
+1
|
|
|
+1 6 dmportella/powerdns
|
|
|
+forked from jgreat/powerdns
|
|
|
+ Code Issues 1 Pull requests 0 Projects 0 Insights
|
|
|
+powerdns/makefile
|
|
|
+7cb21fd on 12 May 2017
|
|
|
+@dmportella dmportella updated vet code
|
|
|
+
|
|
|
+168 lines (135 sloc) 6.39 KB
|
|
|
+APPNAME?="powerdns"
|
|
|
+REPONAME?="dmportella"
|
|
|
+TEST?=$$(go list ./... | grep -v '/vendor/')
|
|
|
+VETARGS?=-all
|
|
|
+GOFMT_FILES?=$$(find . -name '*.go' | grep -v vendor)
|
|
|
+REV?=$$(git rev-parse --short HEAD)
|
|
|
+BRANCH?=$$(git rev-parse --abbrev-ref HEAD)
|
|
|
+BUILDFILES?=$$(find bin -mindepth 1 -maxdepth 1 -type f)
|
|
|
+VERSION?="0.0.0"
|
|
|
+DOCKER_REPO?="${REPONAME}/${APPNAME}"
|
|
|
+TOKEN?=""
|
|
|
+XC_OS=$$(go env GOOS)
|
|
|
+XC_ARCH=$$(go env GOARCH)
|
|
|
+
|
|
|
+default: lazy
|
|
|
+
|
|
|
+lazy: version fmt lint vet test
|
|
|
+
|
|
|
+# Git commands
|
|
|
+save:
|
|
|
+ @git add -A
|
|
|
+ @git commit -S
|
|
|
+ @git status
|
|
|
+
|
|
|
+push:
|
|
|
+ @git push origin ${BRANCH}
|
|
|
+
|
|
|
+subtree-pull:
|
|
|
+ @git log | grep git-subtree-dir | awk '{print $2}'
|
|
|
+ @git subtree pull --prefix=website/public git@github.com:${REPONAME}/${APPNAME}.git gh-pages
|
|
|
+
|
|
|
+subtree-push:
|
|
|
+ @git log | grep git-subtree-dir | awk '{print $2}'
|
|
|
+ @git subtree push --prefix=website/public git@github.com:${REPONAME}/${APPNAME}.git gh-pages
|
|
|
+
|
|
|
+update:
|
|
|
+ @git pull origin ${BRANCH}
|
|
|
+
|
|
|
+vendor:
|
|
|
+ @govendor add +external
|
|
|
+
|
|
|
+vendor-update:
|
|
|
+ @govendor update +external
|
|
|
+
|
|
|
+version:
|
|
|
+ @echo "SOFTWARE VERSION"
|
|
|
+ @echo "\tbranch:\t\t" ${BRANCH}
|
|
|
+ @echo "\trevision:\t" ${REV}
|
|
|
+ @echo "\tversion:\t" ${VERSION}
|
|
|
+
|
|
|
+ci: tools build
|
|
|
+ @echo "CI BUILD..."
|
|
|
+
|
|
|
+tools:
|
|
|
+ @echo "GO TOOLS installation..."
|
|
|
+ @go get -u github.com/kardianos/govendor
|
|
|
+ @go get -u golang.org/x/tools/cmd/cover
|
|
|
+ @go get -u github.com/golang/lint/golint
|
|
|
+
|
|
|
+build: version test
|
|
|
+ @echo "GO BUILD..."
|
|
|
+ @CGO_ENABLED=0 go build -ldflags "-s -X main.Build=${VERSION} -X main.Revision=${REV} -X main.Branch=${BRANCH} -X main.OSArch=${XC_OS}/${XC_ARCH}" -v -o ./bin/${APPNAME} .
|
|
|
+
|
|
|
+buildonly:
|
|
|
+ @CGO_ENABLED=0 go build -ldflags "-s -X main.Build=${VERSION} -X main.Revision=${REV} -X main.Branch=${BRANCH} -X main.OSArch=${XC_OS}/${XC_ARCH}" -v -o ./bin/${APPNAME} .
|
|
|
+
|
|
|
+crosscompile: linux-build darwin-build freebsd-build windows-build tar-everything shasums
|
|
|
+ @echo "crosscompile done..."
|
|
|
+
|
|
|
+docker:
|
|
|
+ @if [ -e "bin/linux-amd64/${APPNAME}" ]; then \
|
|
|
+ docker build -t ${DOCKER_REPO}:${VERSION} -q --build-arg CONT_IMG_VER=${VERSION} --build-arg BINARY=bin/linux-amd64/${APPNAME} . ; \
|
|
|
+ docker tag ${DOCKER_REPO}:${VERSION} ${DOCKER_REPO}:latest ; \
|
|
|
+ else \
|
|
|
+ echo "Please run crosscompile before running docker command." ; \
|
|
|
+ exit 1 ; \
|
|
|
+ fi
|
|
|
+
|
|
|
+docker-run:
|
|
|
+ @docker run -it --rm -v /etc/ssl/certs/:/etc/ssl/certs/ --name ${APPNAME} ${DOCKER_REPO}:latest -t ${TOKEN} -verbose
|
|
|
+
|
|
|
+tar-everything:
|
|
|
+ @echo "tar-everything..."
|
|
|
+ @tar -zcvf bin/${APPNAME}-linux-386-${VERSION}.tgz bin/linux-386
|
|
|
+ @tar -zcvf bin/${APPNAME}-linux-amd64-${VERSION}.tgz bin/linux-amd64
|
|
|
+ @tar -zcvf bin/${APPNAME}-linux-arm-${VERSION}.tgz bin/linux-arm
|
|
|
+ @tar -zcvf bin/${APPNAME}-darwin-386-${VERSION}.tgz bin/darwin-386
|
|
|
+ @tar -zcvf bin/${APPNAME}-darwin-amd64-${VERSION}.tgz bin/darwin-amd64
|
|
|
+ @tar -zcvf bin/${APPNAME}-freebsd-386-${VERSION}.tgz bin/freebsd-386
|
|
|
+ @tar -zcvf bin/${APPNAME}-freebsd-amd64-${VERSION}.tgz bin/freebsd-amd64
|
|
|
+ @zip -9 -y -r bin/${APPNAME}-windows-386-${VERSION}.zip bin/windows-386
|
|
|
+ @zip -9 -y -r bin/${APPNAME}-windows-amd64-${VERSION}.zip bin/windows-amd64
|
|
|
+
|
|
|
+shasums:
|
|
|
+ @shasum -a 256 $(BUILDFILES) > bin/${APPNAME}-${VERSION}.shasums
|
|
|
+
|
|
|
+gpg:
|
|
|
+ @gpg --output bin/${APPNAME}-${VERSION}.sig --detach-sig bin/${APPNAME}-${VERSION}.shasums
|
|
|
+
|
|
|
+gpg-verify:
|
|
|
+ @gpg --verify bin/${APPNAME}-${VERSION}.sig bin/${APPNAME}-${VERSION}.shasums
|
|
|
+
|
|
|
+linux-build:
|
|
|
+ @echo "linux build... 386"
|
|
|
+ @CGO_ENABLED=0 GOOS=linux GOARCH=386 go build -ldflags "-s -X main.Build=${VERSION} -X main.Revision=${REV} -X main.Branch=${BRANCH} -X main.OSArch=linux/386" -v -o ./bin/linux-386/${APPNAME} . 2>/dev/null
|
|
|
+ @echo "linux build... amd64"
|
|
|
+ @CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -ldflags "-s -X main.Build=${VERSION} -X main.Revision=${REV} -X main.Branch=${BRANCH} -X main.OSArch=linux/amd64" -v -o ./bin/linux-amd64/${APPNAME} . 2>/dev/null
|
|
|
+ @echo "linux build... arm"
|
|
|
+ @CGO_ENABLED=0 GOOS=linux GOARCH=arm go build -ldflags "-s -X main.Build=${VERSION} -X main.Revision=${REV} -X main.Branch=${BRANCH} -X main.OSArch=linux/arm" -v -o ./bin/linux-arm/${APPNAME} . 2>/dev/null
|
|
|
+
|
|
|
+darwin-build:
|
|
|
+ @echo "darwin build... 386"
|
|
|
+ @CGO_ENABLED=0 GOOS=darwin GOARCH=386 go build -ldflags "-s -X main.Build=${VERSION} -X main.Revision=${REV} -X main.Branch=${BRANCH} -X main.OSArch=darwin/386" -v -o ./bin/darwin-386/${APPNAME} . 2>/dev/null
|
|
|
+ @echo "darwin build... amd64"
|
|
|
+ @CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build -ldflags "-s -X main.Build=${VERSION} -X main.Revision=${REV} -X main.Branch=${BRANCH} -X main.OSArch=darwin/amd64" -v -o ./bin/darwin-amd64/${APPNAME} . 2>/dev/null
|
|
|
+
|
|
|
+freebsd-build:
|
|
|
+ @echo "freebsd build... 386"
|
|
|
+ @CGO_ENABLED=0 GOOS=freebsd GOARCH=386 go build -ldflags "-s -X main.Build=${VERSION} -X main.Revision=${REV} -X main.Branch=${BRANCH} -X main.OSArch=freebsd/386" -v -o ./bin/freebsd-386/${APPNAME} . 2>/dev/null
|
|
|
+ @echo "freebsd build... amd64"
|
|
|
+ @CGO_ENABLED=0 GOOS=freebsd GOARCH=amd64 go build -ldflags "-s -X main.Build=${VERSION} -X main.Revision=${REV} -X main.Branch=${BRANCH} -X main.OSArch=freebsd/amd64" -v -o ./bin/freebsd-amd64/${APPNAME} . 2>/dev/null
|
|
|
+
|
|
|
+windows-build:
|
|
|
+ @echo "windows build... 386"
|
|
|
+ @CGO_ENABLED=0 GOOS=windows GOARCH=386 go build -ldflags "-s -X main.Build=${VERSION} -X main.Revision=${REV} -X main.Branch=${BRANCH} -X main.OSArch=windows/386" -v -o ./bin/windows-386/${APPNAME}.exe . 2>/dev/null
|
|
|
+ @echo "windows build... amd64"
|
|
|
+ @CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build -ldflags "-s -X main.Build=${VERSION} -X main.Revision=${REV} -X main.Branch=${BRANCH} -X main.OSArch=windows/amd64" -v -o ./bin/windows-amd64/${APPNAME}.exe . 2>/dev/null
|
|
|
+
|
|
|
+lint:
|
|
|
+ @echo "GO LINT..."
|
|
|
+ @for pkg in $$(go list ./... |grep -v /vendor/) ; do \
|
|
|
+ golint -set_exit_status $$pkg ; \
|
|
|
+ done
|
|
|
+
|
|
|
+test: fmt generate lint vet
|
|
|
+ @echo "GO TEST..."
|
|
|
+ @go test $(TEST) $(TESTARGS) -v -timeout=30s -parallel=4 -bench=. -benchmem -cover
|
|
|
+
|
|
|
+cover:
|
|
|
+ @echo "GO TOOL COVER..."
|
|
|
+ @go tool cover 2>/dev/null; if [ $$? -eq 3 ]; then \
|
|
|
+ go get -u golang.org/x/tools/cmd/cover; \
|
|
|
+ fi
|
|
|
+ @go test $(TEST) -coverprofile=coverage.out
|
|
|
+ @go tool cover -html=coverage.out
|
|
|
+ @rm coverage.out
|
|
|
+
|
|
|
+generate:
|
|
|
+ @echo "GO GENERATE..."
|
|
|
+ @go generate $(go list ./... | grep -v /vendor/) ./
|
|
|
+
|
|
|
+# vet runs the Go source code static analysis tool `vet` to find
|
|
|
+# any common errors.
|
|
|
+vet:
|
|
|
+ @echo "GO VET..."
|
|
|
+ @govendor vet +l; if [ $$? -eq 1 ]; then \
|
|
|
+ echo ""; \
|
|
|
+ echo "Vet found suspicious constructs. Please check the reported constructs"; \
|
|
|
+ echo "and fix them if necessary before submitting the code for review."; \
|
|
|
+ exit 1; \
|
|
|
+ fi
|
|
|
+
|
|
|
+fmt:
|
|
|
+ @echo "GO FMT..."
|
|
|
+ @gofmt -w -s $(GOFMT_FILES)
|
|
|
+
|
|
|
+.PHONY: tools default
|
|
|
+? 2018 GitHub, Inc.
|
|
|
+Terms
|
|
|
+Privacy
|
|
|
+Security
|
|
|
+Status
|
|
|
+Help
|
|
|
+Contact GitHub
|
|
|
+API
|
|
|
+Training
|
|
|
+Shop
|
|
|
+Blog
|
|
|
+About
|
|
|
+Press h to open a hovercard with more details.
|