ref: 8d2580f07c0253e12524a4b5c13165f876d00b21
parent: 06e5633400b37bec2ebb6e4a9ea4603a0afcd010
author: Bjørn Erik Pedersen <[email protected]>
date: Thu Oct 5 05:15:02 EDT 2017
Replace make with mage Fixes #3937
--- a/.travis.yml
+++ b/.travis.yml
@@ -13,9 +13,11 @@
- go: tip
fast_finish: true
install:
- - make vendor
+ - go get github.com/magefile/mage
+ - mage vendor
script:
- - make hugo-race check
+ - mage hugoRace
+ - mage -v check
- ./hugo -s docs/
- ./hugo --renderToMemory -s docs/
before_install:
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -145,11 +145,13 @@
### Build Hugo with Your Changes
+**Note:** Hugo uses [mage](https://github.com/magefile/mage) to build.
+
```bash
cd $HOME/go/src/github.com/gohugoio/hugo
-make hugo
+mage hugo
# or to install in $HOME/go/bin:
-make install
+mage install
```
### Updating the Hugo Sources
@@ -160,6 +162,6 @@
```
git pull
-make vendor
+mage vendor
```
--- a/Makefile
+++ /dev/null
@@ -1,86 +1,0 @@
-# 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}'
--- a/appveyor.yml
+++ b/appveyor.yml
@@ -1,5 +1,4 @@
init:
- - copy c:\MinGW\bin\mingw32-make.exe c:\MinGW\bin\make.exe
- set PATH=%PATH%;C:\MinGW\bin;%GOPATH%\bin
- go version
- go env
@@ -10,8 +9,10 @@
install:
- gem install asciidoctor
- pip install docutils
+ - go get github.com/magefile/mage
build_script:
- - make hugo-race check
+ - mage hugoRace
+ - mage -v check
- hugo -s docs/
- hugo --renderToMemory -s docs/
--- a/snapcraft.yaml
+++ b/snapcraft.yaml
@@ -28,9 +28,11 @@
export GOPATH=$(dirname $SNAPCRAFT_PART_INSTALL)/go
export PATH=$GOPATH/bin:$PATH
cd $GOPATH/src/github.com/gohugoio/hugo
- make vendor
- make test
+ go get github.com/magefile/mage
+ mage vendor
+ mage test
rm -f $GOPATH/bin/govendor
+ rm -f $GOPATH/bin/mage
install: |
strip --remove-section=.comment --remove-section=.note $SNAPCRAFT_PART_INSTALL/bin/hugo
after: [go]