diff --git a/.circleci/config.yml b/.circleci/config.yml index dad714c..8359808 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -2,17 +2,28 @@ version: 2 jobs: build: docker: - - image: circleci/golang:1.14.1 + - image: cimg/go:1.14 steps: - - run: mkdir -p ~/bin - - run: echo 'export PATH="$HOME/bin:$PATH"' >> $BASH_ENV + - run: | + curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b $(go env GOPATH)/bin v1.24.0 - checkout - - run: make ci-setup-linux-amd64 - - run: make VERSION=$CIRCLE_TAG ci + - restore_cache: + keys: + - go-sum-{{ checksum "go.sum" }} + - run: + command: go get -v github.com/int128/goxzst github.com/int128/ghcp + working_directory: .circleci + - run: make check + - run: bash <(curl -s https://codecov.io/bash) + - run: make dist - run: | if [ "$CIRCLE_TAG" ]; then - make VERSION=$CIRCLE_TAG GITHUB_USERNAME=$CIRCLE_PROJECT_USERNAME GITHUB_REPONAME=$CIRCLE_PROJECT_REPONAME release + make release fi + - save_cache: + key: go-sum-{{ checksum "go.sum" }} + paths: + - ~/go/pkg - store_artifacts: path: gotest.log diff --git a/.circleci/go.mod b/.circleci/go.mod new file mode 100644 index 0000000..43507cc --- /dev/null +++ b/.circleci/go.mod @@ -0,0 +1,3 @@ +module github.com/int128/kubelogin/.circleci + +go 1.13 diff --git a/Makefile b/Makefile index 2c6864a..4c55f32 100644 --- a/Makefile +++ b/Makefile @@ -1,10 +1,10 @@ -# CI must provide the following variables (on tag push) -# VERSION -# GITHUB_USERNAME -# GITHUB_REPONAME +# CircleCI specific variables +CIRCLE_TAG ?= latest +GITHUB_USERNAME := $(CIRCLE_PROJECT_USERNAME) +GITHUB_REPONAME := $(CIRCLE_PROJECT_REPONAME) TARGET := kubelogin -VERSION ?= latest +VERSION ?= $(CIRCLE_TAG) LDFLAGS := -X main.version=$(VERSION) all: $(TARGET) @@ -12,12 +12,6 @@ all: $(TARGET) $(TARGET): $(wildcard **/*.go) go build -o $@ -ldflags "$(LDFLAGS)" -.PHONY: ci -ci: - $(MAKE) check - bash -c "bash <(curl -s https://codecov.io/bash)" - $(MAKE) dist - .PHONY: check check: golangci-lint run @@ -52,15 +46,3 @@ clean: -rm $(TARGET) -rm -r dist/output/ -rm coverage.out gotest.log - -.PHONY: ci-setup-linux-amd64 -ci-setup-linux-amd64: - mkdir -p ~/bin - # https://github.com/golangci/golangci-lint - curl -sfL https://install.goreleaser.com/github.com/golangci/golangci-lint.sh | sh -s -- -b ~/bin v1.24.0 - # https://github.com/int128/goxzst - curl -sfL -o /tmp/goxzst.zip https://github.com/int128/goxzst/releases/download/v0.3.0/goxzst_linux_amd64.zip - unzip /tmp/goxzst.zip -d ~/bin - # https://github.com/int128/ghcp - curl -sfL -o /tmp/ghcp.zip https://github.com/int128/ghcp/releases/download/v1.8.0/ghcp_linux_amd64.zip - unzip /tmp/ghcp.zip -d ~/bin