From 4a64327c1956305b52f8062480ce2593871d15dc Mon Sep 17 00:00:00 2001 From: Jonathan Stewmon Date: Tue, 29 Oct 2019 15:51:05 -0500 Subject: [PATCH] use go 1.13, replace glide with modules, add boilerplate docker_build - removed bootstrap make target, since it was only needed to install glide and run glide install - updated Dockerfile stages to optimize dependency caching - update docker-compose to use the base stage of Dockerfile for consistency --- .travis.yml | 22 ++- Dockerfile | 14 +- Makefile | 27 ++-- README.md | 8 +- boilerplate/lyft/docker_build/Makefile | 12 ++ boilerplate/lyft/docker_build/Readme.rst | 23 +++ boilerplate/lyft/docker_build/docker_build.sh | 67 +++++++++ boilerplate/update.cfg | 1 + boilerplate/update.sh | 53 +++++++ docker-compose.yml | 17 ++- glide.lock | 138 ------------------ glide.yaml | 39 ----- go.mod | 31 ++++ go.sum | 70 +++++++++ script/install-glide | 23 --- 15 files changed, 302 insertions(+), 243 deletions(-) create mode 100644 boilerplate/lyft/docker_build/Makefile create mode 100644 boilerplate/lyft/docker_build/Readme.rst create mode 100755 boilerplate/lyft/docker_build/docker_build.sh create mode 100644 boilerplate/update.cfg create mode 100755 boilerplate/update.sh delete mode 100644 glide.lock delete mode 100644 glide.yaml create mode 100644 go.mod create mode 100644 go.sum delete mode 100755 script/install-glide diff --git a/.travis.yml b/.travis.yml index ea43ffb90..022cb2cb8 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,11 +1,23 @@ sudo: required language: go -go: "1.11" -services: redis-server +go: "1.13" +services: +- docker +- redis-server before_install: sudo apt-get update -y && sudo apt-get install stunnel4 -y -install: make bootstrap bootstrap_redis_tls -before_script: +install: make bootstrap_redis_tls +before_script: - redis-server --port 6380 & - redis-server --port 6381 --requirepass password123 & - redis-server --port 6382 --requirepass password123 & -script: make check_format tests +script: make check_format tests docker_build +jobs: + include: + - stage: test + - stage: release + if: tag IS present && !fork + script: skip + deploy: + provider: script + script: make docker_build dockerhub_push + diff --git a/Dockerfile b/Dockerfile index 57173a93a..f693fce8d 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,17 +1,13 @@ -FROM golang:1.10.4 AS build +FROM golang:1.13.3 AS base WORKDIR /go/src/github.com/lyft/ratelimit +COPY go.mod go.sum ./ +RUN go mod download +FROM base as build COPY src src COPY script script -COPY vendor vendor -COPY glide.yaml glide.yaml -COPY glide.lock glide.lock COPY proto proto - -RUN script/install-glide -RUN glide install - -RUN CGO_ENABLED=0 GOOS=linux go build -o /usr/local/bin/ratelimit -ldflags="-w -s" -v github.com/lyft/ratelimit/src/service_cmd +RUN CGO_ENABLED=0 GOOS=linux go build -o /usr/local/bin/ratelimit -ldflags="-w -s" -v ./src/service_cmd FROM alpine:3.8 AS final RUN apk --no-cache add ca-certificates diff --git a/Makefile b/Makefile index 2110f1075..b3ada08cf 100644 --- a/Makefile +++ b/Makefile @@ -1,14 +1,11 @@ -ifeq ("$(GOPATH)","") -$(error GOPATH must be set) -endif - SHELL := /bin/bash -GOREPO := ${GOPATH}/src/github.com/lyft/ratelimit -.PHONY: bootstrap -bootstrap: - script/install-glide - glide install +export REPOSITORY=ratelimit +include boilerplate/lyft/docker_build/Makefile + +.PHONY: update_boilerplate +update_boilerplate: + @boilerplate/update.sh .PHONY: bootstrap_tests bootstrap_tests: @@ -59,10 +56,10 @@ check_format: docs_format .PHONY: compile compile: - mkdir -p ${GOREPO}/bin - cd ${GOREPO}/src/service_cmd && go build -o ratelimit ./ && mv ./ratelimit ${GOREPO}/bin - cd ${GOREPO}/src/client_cmd && go build -o ratelimit_client ./ && mv ./ratelimit_client ${GOREPO}/bin - cd ${GOREPO}/src/config_check_cmd && go build -o ratelimit_config_check ./ && mv ./ratelimit_config_check ${GOREPO}/bin + mkdir -p bin + go build -o bin/ratelimit ./src/service_cmd + go build -o bin/ratelimit_client ./src/client_cmd + go build -o bin/ratelimit_config_check ./src/config_check_cmd .PHONY: tests_unit tests_unit: compile @@ -71,7 +68,3 @@ tests_unit: compile .PHONY: tests tests: compile go test -race -tags=integration ./... - -.PHONY: docker -docker: tests - docker build . -t lyft/ratelimit:`git rev-parse HEAD` diff --git a/README.md b/README.md index 5e1f3e163..2bede1cd7 100644 --- a/README.md +++ b/README.md @@ -67,10 +67,6 @@ go [here](https://golang.org/doc/install). redis-server --port 6379 & redis-server --port 6380 & ``` -* To setup for the first time (only done once): - ```bash - make bootstrap - ``` * To compile: ```bash make compile @@ -96,8 +92,8 @@ go [here](https://golang.org/doc/install). The docker-compose setup has three containers: redis, ratelimit-build, and ratelimit. In order to run the docker-compose setup from the root of the repo, run ```bash -glide install -docker-compose up +docker-compose run --rm ratelimit-build +docker-compose up ratelimit ``` The ratelimit-build container will build the ratelimit binary. Then via a shared volume the binary will be shared with the ratelimit container. This dual container setup is used in order to use a diff --git a/boilerplate/lyft/docker_build/Makefile b/boilerplate/lyft/docker_build/Makefile new file mode 100644 index 000000000..4019dab83 --- /dev/null +++ b/boilerplate/lyft/docker_build/Makefile @@ -0,0 +1,12 @@ +# WARNING: THIS FILE IS MANAGED IN THE 'BOILERPLATE' REPO AND COPIED TO OTHER REPOSITORIES. +# ONLY EDIT THIS FILE FROM WITHIN THE 'LYFT/BOILERPLATE' REPOSITORY: +# +# TO OPT OUT OF UPDATES, SEE https://github.com/lyft/boilerplate/blob/master/Readme.rst + +.PHONY: docker_build +docker_build: + IMAGE_NAME=$$REPOSITORY ./boilerplate/lyft/docker_build/docker_build.sh + +.PHONY: dockerhub_push +dockerhub_push: + IMAGE_NAME=lyft/$$REPOSITORY REGISTRY=docker.io ./boilerplate/lyft/docker_build/docker_build.sh diff --git a/boilerplate/lyft/docker_build/Readme.rst b/boilerplate/lyft/docker_build/Readme.rst new file mode 100644 index 000000000..bb6af9b49 --- /dev/null +++ b/boilerplate/lyft/docker_build/Readme.rst @@ -0,0 +1,23 @@ +Docker Build and Push +~~~~~~~~~~~~~~~~~~~~~ + +Provides a ``make docker_build`` target that builds your image locally. + +Provides a ``make dockerhub_push`` target that pushes your final image to Dockerhub. + +The Dockerhub image will tagged ``:`` + +If git head has a git tag, the Dockerhub image will also be tagged ``:``. + +**To Enable:** + +Add ``lyft/docker_build`` to your ``boilerplate/update.cfg`` file. + +Add ``include boilerplate/lyft/docker_build/Makefile`` in your main ``Makefile`` _after_ your REPOSITORY environment variable + +:: + + REPOSITORY= + include boilerplate/lyft/docker_build/Makefile + +(this ensures the extra Make targets get included in your main Makefile) diff --git a/boilerplate/lyft/docker_build/docker_build.sh b/boilerplate/lyft/docker_build/docker_build.sh new file mode 100755 index 000000000..f504c100c --- /dev/null +++ b/boilerplate/lyft/docker_build/docker_build.sh @@ -0,0 +1,67 @@ +#!/usr/bin/env bash + +# WARNING: THIS FILE IS MANAGED IN THE 'BOILERPLATE' REPO AND COPIED TO OTHER REPOSITORIES. +# ONLY EDIT THIS FILE FROM WITHIN THE 'LYFT/BOILERPLATE' REPOSITORY: +# +# TO OPT OUT OF UPDATES, SEE https://github.com/lyft/boilerplate/blob/master/Readme.rst + +set -e + +echo "" +echo "------------------------------------" +echo " DOCKER BUILD" +echo "------------------------------------" +echo "" + +if [ -n "$REGISTRY" ]; then + # Do not push if there are unstaged git changes + CHANGED=$(git status --porcelain) + if [ -n "$CHANGED" ]; then + echo "Please commit git changes before pushing to a registry" + exit 1 + fi +fi + + +GIT_SHA=$(git rev-parse HEAD) + +IMAGE_TAG_SUFFIX="" +# for intermediate build phases, append -$BUILD_PHASE to all image tags +if [ -n "$BUILD_PHASE" ]; then + IMAGE_TAG_SUFFIX="-${BUILD_PHASE}" +fi + +IMAGE_TAG_WITH_SHA="${IMAGE_NAME}:${GIT_SHA}${IMAGE_TAG_SUFFIX}" + +RELEASE_SEMVER=$(git describe --tags --exact-match "$GIT_SHA" 2>/dev/null) || true +if [ -n "$RELEASE_SEMVER" ]; then + IMAGE_TAG_WITH_SEMVER="${IMAGE_NAME}:${RELEASE_SEMVER}${IMAGE_TAG_SUFFIX}" +fi + +# build the image +# passing no build phase will build the final image +docker build -t "$IMAGE_TAG_WITH_SHA" --target=${BUILD_PHASE} . +echo "${IMAGE_TAG_WITH_SHA} built locally." + +# if REGISTRY specified, push the images to the remote registy +if [ -n "$REGISTRY" ]; then + + if [ -n "${DOCKER_REGISTRY_PASSWORD}" ]; then + docker login --username="$DOCKER_REGISTRY_USERNAME" --password="$DOCKER_REGISTRY_PASSWORD" + fi + + docker tag "$IMAGE_TAG_WITH_SHA" "${REGISTRY}/${IMAGE_TAG_WITH_SHA}" + + docker push "${REGISTRY}/${IMAGE_TAG_WITH_SHA}" + echo "${REGISTRY}/${IMAGE_TAG_WITH_SHA} pushed to remote." + + # If the current commit has a semver tag, also push the images with the semver tag + if [ -n "$RELEASE_SEMVER" ]; then + + docker tag "$IMAGE_TAG_WITH_SHA" "${REGISTRY}/${IMAGE_TAG_WITH_SEMVER}" + + docker push "${REGISTRY}/${IMAGE_TAG_WITH_SEMVER}" + echo "${REGISTRY}/${IMAGE_TAG_WITH_SEMVER} pushed to remote." + + fi +fi diff --git a/boilerplate/update.cfg b/boilerplate/update.cfg new file mode 100644 index 000000000..3ffc8e4f9 --- /dev/null +++ b/boilerplate/update.cfg @@ -0,0 +1 @@ +lyft/docker_build diff --git a/boilerplate/update.sh b/boilerplate/update.sh new file mode 100755 index 000000000..bea661d9a --- /dev/null +++ b/boilerplate/update.sh @@ -0,0 +1,53 @@ +#!/usr/bin/env bash + +# WARNING: THIS FILE IS MANAGED IN THE 'BOILERPLATE' REPO AND COPIED TO OTHER REPOSITORIES. +# ONLY EDIT THIS FILE FROM WITHIN THE 'LYFT/BOILERPLATE' REPOSITORY: +# +# TO OPT OUT OF UPDATES, SEE https://github.com/lyft/boilerplate/blob/master/Readme.rst + +set -e + +DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null && pwd )" + +OUT="$(mktemp -d)" +git clone git@github.com:lyft/boilerplate.git "${OUT}" + +echo "Updating the update.sh script." +cp "${OUT}/boilerplate/update.sh" "${DIR}/update.sh" +echo "" + + +CONFIG_FILE="${DIR}/update.cfg" +README="https://github.com/lyft/boilerplate/blob/master/Readme.rst" + +if [ ! -f "$CONFIG_FILE" ]; then + echo "$CONFIG_FILE not found." + echo "This file is required in order to select which features to include." + echo "See $README for more details." + exit 1 +fi + +if [ -z "$REPOSITORY" ]; then + echo '$REPOSITORY is required to run this script' + echo "See $README for more details." + exit 1 +fi + +while read directory; do + echo "***********************************************************************************" + echo "$directory is configured in update.cfg." + echo "-----------------------------------------------------------------------------------" + echo "syncing files from source." + dir_path="${OUT}/boilerplate/${directory}" + rm -rf "${DIR}/${directory}" + mkdir -p $(dirname "${DIR}/${directory}") + cp -r "$dir_path" "${DIR}/${directory}" + if [ -f "${DIR}/${directory}/update.sh" ]; then + echo "executing ${DIR}/${directory}/update.sh" + "${DIR}/${directory}/update.sh" + fi + echo "***********************************************************************************" + echo "" +done < "$CONFIG_FILE" + +rm -rf "${OUT}" diff --git a/docker-compose.yml b/docker-compose.yml index d2af278c2..864754f55 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,4 +1,4 @@ -version: "3" +version: "2.4" services: redis: @@ -9,26 +9,31 @@ services: - 6379:6379 networks: - ratelimit-network + healthcheck: + test: redis-cli ping # minimal container that builds the ratelimit service binary and exits. ratelimit-build: - image: golang:1.10-alpine - working_dir: /go/src/github.com/lyft/ratelimit + build: + context: . + target: base command: go build -o /usr/local/bin/ratelimit /go/src/github.com/lyft/ratelimit/src/service_cmd/main.go volumes: - .:/go/src/github.com/lyft/ratelimit - binary:/usr/local/bin/ ratelimit: - image: alpine:3.6 + build: + context: . + target: base command: /usr/local/bin/ratelimit ports: - 8080:8080 - 8081:8081 - 6070:6070 depends_on: - - redis - - ratelimit-build + redis: + condition: service_healthy networks: - ratelimit-network volumes: diff --git a/glide.lock b/glide.lock deleted file mode 100644 index cbe41b84f..000000000 --- a/glide.lock +++ /dev/null @@ -1,138 +0,0 @@ -hash: dbaf34c6a11259517cf882afa8a5ecf03eade91f1cac4c4e54edc30a3b4fdd3e -updated: 2019-04-08T10:22:39.596389-07:00 -imports: -- name: github.com/envoyproxy/go-control-plane - version: 0ad6fa1cf0b9b6ca8f3617a7188a568e81f40b87 - subpackages: - - envoy/api/v2/core - - envoy/api/v2/ratelimit - - envoy/service/ratelimit/v2 - - envoy/type -- name: github.com/envoyproxy/protoc-gen-validate - version: ff6f7a9bc2e5fe006509b9f8c7594c41a953d50f -- name: github.com/fsnotify/fsnotify - version: 629574ca2a5df945712d3079857300b5e4da0236 -- name: github.com/gogo/protobuf - version: ba06b47c162d49f2af050fb4c75bcbc86a159d5c - subpackages: - - gogoproto - - proto - - protoc-gen-gogo/descriptor - - protoc-gen-gogofast - - sortkeys - - types -- name: github.com/golang/mock - version: 8a44ef6e8be577e050008c7886f24fc705d709fb - subpackages: - - gomock -- name: github.com/golang/protobuf - version: b5d812f8a3706043e23a9cd5babf2e5423744d30 - subpackages: - - jsonpb - - proto - - protoc-gen-go/descriptor - - ptypes - - ptypes/any - - ptypes/duration - - ptypes/struct - - ptypes/timestamp -- name: github.com/google/protobuf - version: 6973c3a5041636c1d8dc5f7f6c8c1f3c15bc63d6 -- name: github.com/gorilla/mux - version: 9e1f5955c0d22b55d9e20d6faa28589f83b2faca -- name: github.com/kavu/go_reuseport - version: 3d6c1e425f717ee59152524e73b904b67705eeb8 -- name: github.com/kelseyhightower/envconfig - version: ac12b1f15efba734211a556d8b125110dc538016 -- name: github.com/lyft/goruntime - version: a0d6acf20fcfd48f53e623ed62b87ffb7fe17038 - subpackages: - - loader - - snapshot - - snapshot/entry -- name: github.com/lyft/gostats - version: 943f43ede7b2dbf1d7162587689cb484d49ecd15 -- name: github.com/lyft/protoc-gen-validate - version: f9d2b11e44149635b23a002693b76512b01ae515 - subpackages: - - validate -- name: github.com/mediocregopher/radix.v2 - version: 94360be262532d465b7e4760c7a67195d3319a87 - subpackages: - - pool - - redis -- name: github.com/sirupsen/logrus - version: d682213848ed68c0a260ca37d6dd5ace8423f5ba -- name: github.com/stretchr/testify - version: f390dcf405f7b83c997eac1b06768bb9f44dec18 - subpackages: - - assert -- name: golang.org/x/crypto - version: 81e90905daefcd6fd217b62423c0908922eadb30 - subpackages: - - ssh/terminal -- name: golang.org/x/net - version: d0887baf81f4598189d4e12a37c6da86f0bba4d0 - subpackages: - - context - - http/httpguts - - http2 - - http2/hpack - - idna - - internal/timeseries - - trace -- name: golang.org/x/sys - version: acbc56fc7007d2a01796d5bde54f39e3b3e95945 - subpackages: - - unix - - windows -- name: golang.org/x/text - version: b19bf474d317b857955b12035d2c5acb57ce8b01 - subpackages: - - secure/bidirule - - transform - - unicode/bidi - - unicode/norm -- name: google.golang.org/genproto - version: 221a8d4f74948678f06caaa13c9d41d22e069ae8 - subpackages: - - googleapis/rpc/status -- name: google.golang.org/grpc - version: 41344da2231b913fa3d983840a57a6b1b7b631a1 - subpackages: - - balancer - - balancer/base - - balancer/roundrobin - - channelz - - codes - - connectivity - - credentials - - encoding - - encoding/proto - - grpclb/grpc_lb_v1/messages - - grpclog - - health - - health/grpc_health_v1 - - internal - - keepalive - - metadata - - naming - - peer - - resolver - - resolver/dns - - resolver/passthrough - - stats - - status - - tap - - transport -- name: gopkg.in/yaml.v2 - version: 5420a8b6744d3b0345ab293f6fcba19c978f1183 -testImports: -- name: github.com/davecgh/go-spew - version: 2df174808ee097f90d259e432cc04442cf60be21 - subpackages: - - spew -- name: github.com/pmezard/go-difflib - version: d8ed2627bdf02c080bf22230dbb337003b7aba2d - subpackages: - - difflib diff --git a/glide.yaml b/glide.yaml deleted file mode 100644 index c6690dc92..000000000 --- a/glide.yaml +++ /dev/null @@ -1,39 +0,0 @@ -package: github.com/lyft/ratelimit -import: -- package: github.com/golang/mock - version: master - subpackages: - - gomock -- package: github.com/kelseyhightower/envconfig - version: 1.1.0 -- package: github.com/lyft/gostats - version: v0.2.6 -- package: github.com/lyft/goruntime - version: v0.2.1 -- package: github.com/mediocregopher/radix.v2 - version: master - subpackages: - - pool - - redis -- package: github.com/sirupsen/logrus - version: ^1.0 -- package: golang.org/x/net - version: master - subpackages: - - context -- package: gopkg.in/yaml.v2 - version: master -- package: github.com/stretchr/testify - version: v1.1.3 -- package: google.golang.org/grpc - version: v1.12.0 -- package: github.com/kavu/go_reuseport - version: v1.2.0 -- package: github.com/envoyproxy/go-control-plane - version: v0.6.9 -- package: github.com/envoyproxy/protoc-gen-validate - version: v0.0.14 -- package: github.com/google/protobuf - version: v3.7.1 -- package: github.com/golang/protobuf/proto - version: v1.3.1 diff --git a/go.mod b/go.mod new file mode 100644 index 000000000..7b7a398a2 --- /dev/null +++ b/go.mod @@ -0,0 +1,31 @@ +module github.com/lyft/ratelimit + +go 1.13 + +require ( + github.com/davecgh/go-spew v1.1.1 // indirect + github.com/envoyproxy/go-control-plane v0.6.9 + github.com/gogo/protobuf v1.2.1 // indirect + github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b // indirect + github.com/golang/mock v1.1.2-0.20181024150832-8a44ef6e8be5 + github.com/golang/protobuf v1.3.1 + github.com/gorilla/mux v1.6.3-0.20180903154305-9e1f5955c0d2 + github.com/kavu/go_reuseport v1.2.0 + github.com/kelseyhightower/envconfig v1.1.0 + github.com/lyft/goruntime v0.2.1 + github.com/lyft/gostats v0.2.6 + github.com/lyft/protoc-gen-validate v0.0.7-0.20180626203901-f9d2b11e4414 // indirect + github.com/mediocregopher/radix.v2 v0.0.0-20180603022615-94360be26253 + github.com/onsi/ginkgo v1.10.2 // indirect + github.com/onsi/gomega v1.7.0 // indirect + github.com/pmezard/go-difflib v1.0.0 // indirect + github.com/sirupsen/logrus v1.0.4 + github.com/stretchr/testify v1.1.3 + golang.org/x/crypto v0.0.0-20170825220121-81e90905daef // indirect + golang.org/x/net v0.0.0-20180906233101-161cd47e91fd + google.golang.org/genproto v0.0.0-20180924164928-221a8d4f7494 // indirect + google.golang.org/grpc v1.12.0 + gopkg.in/airbrake/gobrake.v2 v2.0.9 // indirect + gopkg.in/gemnasium/logrus-airbrake-hook.v2 v2.1.2 // indirect + gopkg.in/yaml.v2 v2.2.1 +) diff --git a/go.sum b/go.sum new file mode 100644 index 000000000..89d2ab29b --- /dev/null +++ b/go.sum @@ -0,0 +1,70 @@ +github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= +github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/envoyproxy/go-control-plane v0.6.9 h1:deEH9W8ZAUGNbCdX+9iNzBOGrAOrnpJGoy0PcTqk/tE= +github.com/envoyproxy/go-control-plane v0.6.9/go.mod h1:SBwIajubJHhxtWwsL9s8ss4safvEdbitLhGGK48rN6g= +github.com/fsnotify/fsnotify v1.4.7 h1:IXs+QLmnXW2CcXuY+8Mzv/fWEsPGWxqefPtCP5CnV9I= +github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= +github.com/gogo/protobuf v1.2.1 h1:/s5zKNz0uPFCZ5hddgPdo2TK2TVrUNMn0OOX8/aZMTE= +github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= +github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b h1:VKtxabqXZkF25pY9ekfRL6a582T4P37/31XEstQ5p58= +github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= +github.com/golang/mock v1.1.2-0.20181024150832-8a44ef6e8be5 h1:E2QdK4oDdLe6YNqMKfJS2UpbQRWPgx2uMUv4IMpM0q8= +github.com/golang/mock v1.1.2-0.20181024150832-8a44ef6e8be5/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= +github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.1 h1:YF8+flBXS5eO826T4nzqPrxfhQThhXl0YzfuUPu4SBg= +github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/gorilla/mux v1.6.3-0.20180903154305-9e1f5955c0d2 h1:ek3yoAtChzppNI3BIfa8tOaNUmWhxsqUHk6hxJFg0TM= +github.com/gorilla/mux v1.6.3-0.20180903154305-9e1f5955c0d2/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs= +github.com/hpcloud/tail v1.0.0 h1:nfCOvKYfkgYP8hkirhJocXT2+zOD8yUNjXaWfTlyFKI= +github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= +github.com/kavu/go_reuseport v1.2.0 h1:YO+pt6m5Z3WkVH9DjaDJzoSS/0FO2Q8x3CfObxk/i2E= +github.com/kavu/go_reuseport v1.2.0/go.mod h1:CG8Ee7ceMFSMnx/xr25Vm0qXaj2Z4i5PWoUx+JZ5/CU= +github.com/kelseyhightower/envconfig v1.1.0 h1:4htXR8ameS6KBfrNBoqEgpg0IK2D6rozN9ATOPwRfM0= +github.com/kelseyhightower/envconfig v1.1.0/go.mod h1:cccZRl6mQpaq41TPp5QxidR+Sa3axMbJDNb//FQX6Gg= +github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= +github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= +github.com/lyft/goruntime v0.2.1 h1:7DebA8oMVuoQ5TQ0j1xR/X2xRagbGrm0e2SoMdt5tRs= +github.com/lyft/goruntime v0.2.1/go.mod h1:8rUh5gwIPQtyIkIXHbLN1j45HOb8cMgDhrw5GA7DF4g= +github.com/lyft/gostats v0.2.6 h1:m4XmqpBamBXaFjp76h2Ao4TrNpsIVODNClDrH0YTbjM= +github.com/lyft/gostats v0.2.6/go.mod h1:Tpx2xRzz4t+T2Tx0xdVgIoBdR2UMVz+dKnE3X01XSd8= +github.com/lyft/protoc-gen-validate v0.0.7-0.20180626203901-f9d2b11e4414 h1:kLCSHuk3X+SI8Up26wM71id7jz77B3zCZDp01UWMVbM= +github.com/lyft/protoc-gen-validate v0.0.7-0.20180626203901-f9d2b11e4414/go.mod h1:XbGvPuh87YZc5TdIa2/I4pLk0QoUACkjt2znoq26NVQ= +github.com/mediocregopher/radix.v2 v0.0.0-20180603022615-94360be26253 h1:Vr5Q1i03Z36XuXdX1OQYUuJjnX7sYDLT3skT2VBgXrQ= +github.com/mediocregopher/radix.v2 v0.0.0-20180603022615-94360be26253/go.mod h1:fLRUbhbSd5Px2yKUaGYYPltlyxi1guJz1vCmo1RQL50= +github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.10.2 h1:uqH7bpe+ERSiDa34FDOF7RikN6RzXgduUF8yarlZp94= +github.com/onsi/ginkgo v1.10.2/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/gomega v1.7.0 h1:XPnZz8VVBHjVsy1vzJmRwIcSwiUO+JFfrv/xGiigmME= +github.com/onsi/gomega v1.7.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/sirupsen/logrus v1.0.4 h1:gzbtLsZC3Ic5PptoRG+kQj4L60qjK7H7XszrU163JNQ= +github.com/sirupsen/logrus v1.0.4/go.mod h1:pMByvHTf9Beacp5x1UXfOR9xyW/9antXMhjMPG0dEzc= +github.com/stretchr/testify v1.1.3 h1:76sIvNG1I8oBerx/MvuVHh5HBWBW7oxfsi3snKIsz5w= +github.com/stretchr/testify v1.1.3/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= +golang.org/x/crypto v0.0.0-20170825220121-81e90905daef h1:R8ubLIilYRXIXpgjOg2l/ECVs3HzVKIjJEhxSsQ91u4= +golang.org/x/crypto v0.0.0-20170825220121-81e90905daef/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/net v0.0.0-20180906233101-161cd47e91fd h1:nTDtHvHSdCn1m6ITfMRqtOd/9+7a3s8RBNOZ3eYZzJA= +golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e h1:o3PsSEY8E4eXWkXrIP9YJALUkVZqzHJT5DOasTyn8Vs= +golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/text v0.3.0 h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +google.golang.org/genproto v0.0.0-20180924164928-221a8d4f7494 h1:WIJ3k0fGJRrCVzZTuGmcBnUzWeSDpWiP+jUOxWkA8bo= +google.golang.org/genproto v0.0.0-20180924164928-221a8d4f7494/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= +google.golang.org/grpc v1.12.0 h1:Mm8atZtkT+P6R43n/dqNDWkPPu5BwRVu/1rJnJCeZH8= +google.golang.org/grpc v1.12.0/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw= +gopkg.in/airbrake/gobrake.v2 v2.0.9 h1:7z2uVWwn7oVeeugY1DtlPAy5H+KYgB1KeKTnqjNatLo= +gopkg.in/airbrake/gobrake.v2 v2.0.9/go.mod h1:/h5ZAUhDkGaJfjzjKLSjv6zCL6O0LLBxU4K+aSYdM/U= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/fsnotify.v1 v1.4.7 h1:xOHLXZwVvI9hhs+cLKq5+I5onOuwQLhQwiu63xxlHs4= +gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= +gopkg.in/gemnasium/logrus-airbrake-hook.v2 v2.1.2 h1:OAj3g0cR6Dx/R07QgQe8wkA9RNjB2u4i700xBkIT4e0= +gopkg.in/gemnasium/logrus-airbrake-hook.v2 v2.1.2/go.mod h1:Xk6kEKp8OKb+X14hQBKWaSkCsqBpgog8nAV2xsGOxlo= +gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ= +gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= +gopkg.in/yaml.v2 v2.2.1 h1:mUhvW9EsL+naU5Q3cakzfE91YhliOondGd6ZrsDBHQE= +gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= diff --git a/script/install-glide b/script/install-glide deleted file mode 100755 index 8b450e880..000000000 --- a/script/install-glide +++ /dev/null @@ -1,23 +0,0 @@ -#!/bin/bash -set -e - -which glide > /dev/null 2>&1 && exit 0 - -if test "Darwin" == "$(uname)" - then brew install glide -fi - -which glide > /dev/null 2>&1 || { - mkdir -p ./glide - - curl -L https://github.com/Masterminds/glide/releases/download/v0.12.2/glide-v0.12.2-linux-amd64.tar.gz | tar xz -C ./glide --strip-components=1 - chmod 755 -R ./glide - - if which sudo >/dev/null; - then sudo mv ./glide/glide /usr/local/bin/ - else - mv ./glide/glide /usr/local/bin/ - fi -} - -which glide > /dev/null 2>&1 \ No newline at end of file