Search code examples
gotravis-cihugo

The command "go get github.com/gohugoio/hugo" failed and exited with 2 during


I am building websites with Hugo and deploying using Travis-Ci. Recently (about within 3 days) an error occurred:

$ go get github.com/gohugoio/hugo
# github.com/gohugoio/hugo/tpl/internal/go_templates/fmtsort
../../gohugoio/hugo/tpl/internal/go_templates/fmtsort/sort.go:58:18: mapValue.MapRange undefined (type reflect.Value has no field or method MapRange)
The command "go get github.com/gohugoio/hugo" failed and exited with 2 during .

Since the code errored at go get line, I think it must be caused by some updates by Hugo.

.travis.yml

sudo: false

language: go

git:
  depth: 1

install: 
  - go get github.com/gohugoio/hugo

script:
  - git submodule init
  - git submodule update
  - hugo

  # Deploy to GitHub pages
deploy:
  provider: pages
  skip_cleanup: true
  github_token: $GITHUB_TOKEN
  local_dir: public
  on:
    branch: master

Solution

  • Since Hugo 0.48, Hugo uses the Go Modules support built into Go 1.11 to build.

    • docker run -it golang:1.10

      root@2598ed7e489d: go get github.com/gohugoio/hugo

      src/github.com/gohugoio/hugo/tpl/internal/go_templates/fmtsort/sort.go:58:18: mapValue.MapRange undefined (type reflect.Value has no field or method MapRange)

    • docker run -it golang:1.11

      root@07e6e634656a: go get https://github.com/gohugoio/hugo

      will not return any error

    using go versions > 1.11 will not cause this issue.
    In example 1,similar error is there.
    In example 2,it is installed successfully.