shithub: hugo

Download patch

ref: 49d5e7da42fef8fd1e0a5d98fec578effcc2fa47
parent: 190508ae1e97a579919216ca9d7d8179d74e5a77
author: Bjørn Erik Pedersen <[email protected]>
date: Mon Oct 16 06:16:58 EDT 2017

Use Make for the release for now

[ci skip]

--- a/.circleci/config.yml
+++ b/.circleci/config.yml
@@ -14,8 +14,8 @@
             command: |
                 git clone [email protected]:gohugoio/hugoDocs.git
                 cd hugo
-                mage vendor
-                mage check
+                make vendor
+                make check
       - persist_to_workspace:
           root: .
           paths: .
--- /dev/null
+++ b/Makefile
@@ -1,0 +1,86 @@
+# A Self-Documenting Makefile: http://marmelab.com/blog/2016/02/29/auto-documented-makefile.html
+
+PACKAGE = github.com/gohugoio/hugo
+COMMIT_HASH = `git rev-parse --short HEAD 2>/dev/null`
+BUILD_DATE = `date +%FT%T%z`
+LDFLAGS = -ldflags "-X ${PACKAGE}/hugolib.CommitHash=${COMMIT_HASH} -X ${PACKAGE}/hugolib.BuildDate=${BUILD_DATE}"
+NOGI_LDFLAGS = -ldflags "-X ${PACKAGE}/hugolib.BuildDate=${BUILD_DATE}"
+
+# allow user to override go executable by running as GOEXE=xxx make ... on unix-like systems
+GOEXE ?= go
+
+.PHONY: vendor docker check fmt lint test test-race vet test-cover-html help
+.DEFAULT_GOAL := help
+
+vendor: ## Install govendor and sync Hugo's vendored dependencies
+	${GOEXE} get github.com/kardianos/govendor
+	govendor sync ${PACKAGE}
+
+hugo: vendor ## Build hugo binary
+	${GOEXE} build ${LDFLAGS} ${PACKAGE}
+
+hugo-race: vendor ## Build hugo binary with race detector enabled
+	${GOEXE} build -race ${LDFLAGS} ${PACKAGE}
+
+install: vendor ## Install hugo binary
+	${GOEXE} install ${LDFLAGS} ${PACKAGE}
+
+hugo-no-gitinfo: LDFLAGS = ${NOGI_LDFLAGS}
+hugo-no-gitinfo: vendor hugo ## Build hugo without git info
+
+docker: ## Build hugo Docker container
+	docker build -t hugo .
+	docker rm -f hugo-build || true
+	docker run --name hugo-build hugo ls /go/bin
+	docker cp hugo-build:/go/bin/hugo .
+	docker rm hugo-build
+
+govendor: vendor # Deprecated: use "vendor" target
+get: vendor # Deprecated: use "vendor"
+gitinfo: hugo # Deprecated: use "hugo" target
+install-gitinfo: install # Deprecated: use "install" target
+no-git-info: hugo-no-gitinfo # Deprecated: use "hugo-no-gitinfo" target
+
+check: test-race test386 fmt vet ## Run tests and linters
+
+test386: ## Run tests in 32-bit mode
+	GOARCH=386 govendor test +local
+
+test: ## Run tests
+	govendor test +local
+
+test-race: ## Run tests with race detector
+	govendor test -race +local
+
+fmt: ## Run gofmt linter
+	@for d in `govendor list -no-status +local | sed 's/github.com.gohugoio.hugo/./'` ; do \
+		if [ "`gofmt -l $$d/*.go | tee /dev/stderr`" ]; then \
+			echo "^ improperly formatted go files" && echo && exit 1; \
+		fi \
+	done
+
+lint: ## Run golint linter
+	@for d in `govendor list -no-status +local | sed 's/github.com.gohugoio.hugo/./'` ; do \
+		if [ "`golint $$d | tee /dev/stderr`" ]; then \
+			echo "^ golint errors!" && echo && exit 1; \
+		fi \
+	done
+
+vet: ## Run go vet linter
+	@if [ "`govendor vet +local | tee /dev/stderr`" ]; then \
+		echo "^ go vet errors!" && echo && exit 1; \
+	fi
+
+test-cover-html: PACKAGES = $(shell govendor list -no-status +local | sed 's/github.com.gohugoio.hugo/./')
+test-cover-html: ## Generate test coverage report
+	echo "mode: count" > coverage-all.out
+	$(foreach pkg,$(PACKAGES),\
+		govendor test -coverprofile=coverage.out -covermode=count $(pkg);\
+		tail -n +2 coverage.out >> coverage-all.out;)
+	${GOEXE} tool cover -html=coverage-all.out
+
+check-vendor: ## Verify that vendored packages match git HEAD
+	@git diff-index --quiet HEAD vendor/ || (echo "check-vendor target failed: vendored packages out of sync" && echo && git diff vendor/ && exit 1)
+
+help:
+	@grep -E '^[a-zA-Z0-9_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}'