123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198 |
- 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.
|