# switch go version to 1.14.6
$ gvm use go1.14.6
# create istio
$ mkdir -p $GOPATH/src/istio.io && cd $GOPATH/src/istio.io
# clone isdio
$ git clone -b 1.5.6 --depth 1 git@github.com:istio/istio.git
#
$ export MIXER_REPO=$GOPATH/src/istio.io/istio/mixer
$ export ISTIO=$GOPATH/src/istio.io
$ pushd $ISTIO/istio && make mixs && make mixc
# prepare proto
$ go get github.com/gogo/protobuf/proto
$ go get github.com/gogo/protobuf/protoc-gen-gofast
$ go get github.com/gogo/protobuf/protoc-gen-gogoslick
$ go get github.com/gogo/protobuf/protoc-gen-gogo
# if you meet protoc-gen-docs: program not found or is not executable
# you need to clone istio/tools.git and build by yourself
$ cd $GOPATH/src/istio.io && git clone git@github.com:istio/tools.git && cd $GOPATH/src/istio.io/tools/cmd/protoc-gen-docs/
$ make build && mv protoc-gen-docs $GOPATH/bin
$ cd $GOPATH/src/istio.io/istio/mixer/tools/mixgen
$ go build && mv mixgen $GOPATH/bin