diff --git a/.circleci/config.yml b/.circleci/config.yml index e7d7bfd194..c28a0f5ea3 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -11,27 +11,11 @@ jobs: steps: - checkout - run: make release - coverage: - docker: - - image: circleci/golang:1.10 - working_directory: /go/src/github.com/weaveworks/eksctl - steps: - - checkout - - restore_cache: - keys: - - v1-pkg-cache - - run: make setup-coverage - - run: make test-with-coverage - - save_cache: - key: v1-pkg-cache - paths: - - "/go/pkg" workflows: version: 2 any-commit: jobs: - - coverage - make-eksctl-image: filters: tags: diff --git a/Dockerfile b/Dockerfile index ec1189b3eb..580a67cb0f 100644 --- a/Dockerfile +++ b/Dockerfile @@ -21,12 +21,13 @@ RUN apk add --no-cache --initdb --root /out \ python \ && true -RUN go get github.com/jteeuwen/go-bindata/go-bindata - ENV EKSCTL $GOPATH/src/github.com/weaveworks/eksctl RUN mkdir -p "$(dirname ${EKSCTL})" COPY . $EKSCTL +ARG COVERALLS_TOKEN +ENV COVERALLS_TOKEN $COVERALLS_TOKEN + WORKDIR $EKSCTL RUN make test && make \ && cp ./eksctl /out/usr/local/bin/eksctl diff --git a/Makefile b/Makefile index 47ea994c42..208175072e 100644 --- a/Makefile +++ b/Makefile @@ -6,51 +6,38 @@ EKSCTL_IMAGE ?= weaveworks/eksctl:latest .PHONY: build build: - go build -ldflags "-X main.gitCommit=$(git_commit) -X main.builtAt=$(built_at)" ./cmd/eksctl + @go build -ldflags "-X main.gitCommit=$(git_commit) -X main.builtAt=$(built_at)" ./cmd/eksctl + +.PHONY: install-build-deps +install-build-deps: + @cd build && dep ensure && ./install.sh .PHONY: test test: - go test -v ./pkg/... ./cmd/... - -.PHONY: test-with-coverage -test-with-coverage: - go test -v -covermode=count -coverprofile=coverage.out ./pkg/... ./cmd/... - goveralls -coverprofile=coverage.out -service=circle-ci - -.PHONY: setup-coverage -setup-coverage: - curl https://raw.githubusercontent.com/golang/dep/master/install.sh | sh - dep ensure - go get github.com/mattn/goveralls - -.PHONY: update-bindata -update-bindata: - go generate ./pkg/eks + @go test -v -covermode=count -coverprofile=coverage.out ./pkg/... ./cmd/... + @test -z $(COVERALLS_TOKEN) || goveralls -coverprofile=coverage.out -service=circle-ci -.PHONY: install-bindata -install-bindata: - go get -u github.com/jteeuwen/go-bindata/... - -.PHONY: update-mockery -update-mockery: - go generate ./pkg/eks/mocks - -.PHONY: install-mockery -install-mockery: - go get -u github.com/vektra/mockery/cmd/mockery +.PHONY: generated +generate: + @go generate ./pkg/eks ./pkg/eks/mocks .PHONY: eksctl-build-image eksctl-build-image: @-docker pull $(EKSCTL_BUILD_IMAGE) @docker build --tag=$(EKSCTL_BUILD_IMAGE) --cache-from=$(EKSCTL_BUILD_IMAGE) ./build +EKSCTL_IMAGE_BUILD_ARGS := --build-arg=EKSCTL_BUILD_IMAGE=$(EKSCTL_BUILD_IMAGE) +ifneq ($(COVERALLS_TOKEN),) +EKSCTL_IMAGE_BUILD_ARGS += --build-arg=COVERALLS_TOKEN=$(COVERALLS_TOKEN) +endif + .PHONY: eksctl-image eksctl-image: eksctl-build-image - @docker build --tag=$(EKSCTL_IMAGE) --build-arg=EKSCTL_BUILD_IMAGE=$(EKSCTL_BUILD_IMAGE) ./ + @docker build --tag=$(EKSCTL_IMAGE) $(EKSCTL_IMAGE_BUILD_ARGS) ./ .PHONY: release release: eksctl-build-image - docker run \ + @docker run \ --env=GITHUB_TOKEN \ --env=CIRCLE_TAG \ --env=CIRCLE_PROJECT_USERNAME \ diff --git a/build/Dockerfile b/build/Dockerfile index 75a308e407..1b3f66e8f1 100644 --- a/build/Dockerfile +++ b/build/Dockerfile @@ -22,12 +22,9 @@ RUN dep ensure WORKDIR $EKSCTL_BUILD -RUN go install ./vendor/github.com/jteeuwen/go-bindata/go-bindata -RUN go install ./vendor/github.com/weaveworks/github-release -RUN go install ./vendor/golang.org/x/tools/cmd/stringer +RUN ./install.sh WORKDIR $EKSCTL_BUILD/vendor/github.com/goreleaser/goreleaser RUN make build && go install - WORKDIR $GOPATH diff --git a/build/Gopkg.lock b/build/Gopkg.lock index 7c13310e1d..56d00365cd 100644 --- a/build/Gopkg.lock +++ b/build/Gopkg.lock @@ -230,6 +230,12 @@ ] revision = "9960a25705902198f55789b9b689a686682798b5" +[[projects]] + name = "github.com/mattn/goveralls" + packages = ["."] + revision = "b71a1e4855f87991aff01c2c833a75a07059c61c" + version = "v0.0.2" + [[projects]] branch = "master" name = "github.com/mitchellh/go-homedir" @@ -242,6 +248,15 @@ revision = "645ef00459ed84a119197bfb8d8205042c6df63d" version = "v0.8.0" +[[projects]] + branch = "master" + name = "github.com/vektra/mockery" + packages = [ + "cmd/mockery", + "mockery" + ] + revision = "ea265755d541b124de6bc248f7744eab9005fd33" + [[projects]] name = "github.com/voxelbrain/goptions" packages = ["."] @@ -287,7 +302,15 @@ [[projects]] branch = "master" name = "golang.org/x/tools" - packages = ["cmd/stringer"] + packages = [ + "cmd/stringer", + "cover", + "go/ast/astutil", + "go/buildutil", + "go/loader", + "imports", + "internal/fastwalk" + ] revision = "a5b4c53f6e8bdcafa95a94671bf2d1203365858b" [[projects]] @@ -313,6 +336,6 @@ [solve-meta] analyzer-name = "dep" analyzer-version = 1 - inputs-digest = "887dfef38a82cb06af280069792d359aa1beecf96c5f07cb7bda7c8b9a5a8ad9" + inputs-digest = "201683e0e422e646cffe03bcf9811bcd504753ed54bfa7e8ae96bf58ba24d079" solver-name = "gps-cdcl" solver-version = 1 diff --git a/build/Gopkg.toml b/build/Gopkg.toml index cb4613ff85..d621aaff7d 100644 --- a/build/Gopkg.toml +++ b/build/Gopkg.toml @@ -1,6 +1,8 @@ required = [ "github.com/goreleaser/goreleaser", "github.com/jteeuwen/go-bindata/go-bindata", + "github.com/mattn/goveralls", + "github.com/vektra/mockery/cmd/mockery", "github.com/weaveworks/github-release", "golang.org/x/tools/cmd/stringer", ] diff --git a/build/install.sh b/build/install.sh new file mode 100755 index 0000000000..0a1e28de25 --- /dev/null +++ b/build/install.sh @@ -0,0 +1,7 @@ +#!/bin/sh + +go install ./vendor/github.com/jteeuwen/go-bindata/go-bindata +go install ./vendor/github.com/weaveworks/github-release +go install ./vendor/golang.org/x/tools/cmd/stringer +go install ./vendor/github.com/mattn/goveralls +go install ./vendor/github.com/vektra/mockery/cmd/mockery