diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 8d3d6ab..a463aeb 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -24,8 +24,10 @@ jobs: - name: Lint Go Code run: | - go get -u golang.org/x/lint/golint - golint -set_exit_status ./... + make lint + - name: Vet Go Code + run: | + make vet test: name: Test @@ -41,8 +43,7 @@ jobs: - name: Run Unit tests. run: | - go test -short -coverprofile cover.out -covermode=atomic ./... - cat cover.out >> coverage.txt + make test-coverage - name: Upload Coverage report to CodeCov uses: codecov/codecov-action@v1.0.0 diff --git a/.gitignore b/.gitignore index 3099afc..36a470c 100644 --- a/.gitignore +++ b/.gitignore @@ -14,6 +14,7 @@ notes/help.txt # Output of the go coverage tool, specifically when used with LiteIDE *.out +coverage.txt # Dependency directories (remove the comment below to include it) # vendor/ diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..62a03ba --- /dev/null +++ b/Makefile @@ -0,0 +1,39 @@ +# PROJECT_NAME := "github-actions-demo-go" +# PKG := "github.com/brpaz/$(PROJECT_NAME)" +# PKG_LIST := $(shell go list ${PKG}/... | grep -v /vendor/) +# GO_FILES := $(shell find . -name '*.go' | grep -v /vendor/ | grep -v _test.go) + +## GITHUB_ACTIONS is set when running as a Github Action + +.PHONY: all lint vet test test-coverage build clean + +all: build + +dep: ## Get the dependencies + @go mod download + +lint: ## Lint Golang files + @go get -u golang.org/x/lint/golint + @golint -set_exit_status ./... + +vet: ## Run go vet + @go vet ./... + +test: ## Run unit tests + @go test ./... + +test-coverage: ## Run tests with coverage + @go test -short -coverprofile cover.out -covermode=atomic ./... + @cat cover.out >> coverage.txt + +build: ## Build the binary file + @goreleaser --snapshot --skip-publish --rm-dist + @cp dist/FLEcli_darwin_amd64/FLEcli . + +clean: ## Remove previous build + @rm -f ./FLEcli + @rm -f ./cover.out + @rm -f ./coverage.txt + +help: ## Display this help screen + @grep -h -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}' \ No newline at end of file diff --git a/build.sh b/build.sh deleted file mode 100755 index bd7099e..0000000 --- a/build.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/bash - -set -e - -go test ./... - -commitRef=$(git rev-parse HEAD) -tag=$(git describe --tags) -version="${tag}_(PrivateBuild)" -buildDate=$(date -u +"%FT%TZ") -go build -ldflags="-s -w -X=FLEcli/flecmd.version=${version} -X=FLEcli/flecmd.commit=${commitRef} -X=FLEcli/flecmd.date=${buildDate} -X=FLEcli/flecmd.builtBy=${USER}" diff --git a/docker-FLEcli.sh b/test/docker-FLEcli.sh similarity index 100% rename from docker-FLEcli.sh rename to test/docker-FLEcli.sh diff --git a/test.sh b/test/test.sh similarity index 100% rename from test.sh rename to test/test.sh