cec63488f3
* feat: bump `golangci-lint`, add `super-linter`, replace outdated linter Bump `golangci-lint` version. Add `super-linter` to lint other languages. Go linter is disabled because it's currently broken: https://github.com/github/super-linter/pull/370 Replacing `scopelint` with `exportloopref`: "[runner] The linter 'scopelint' is deprecated (since v1.39.0) due to: The repository of the linter has been deprecated by the owner. Replaced by exportloopref." Fixed formatting in `.golangci.yml` Add addtional linters: `misspell`: purely style, detects typos in comments `whitespace`: detects leading and trailing whitespace `goimports`: it's gofmt + checks unused imports * fix: lint/fix `go` files * fix: lint with `standardjs` * fix: lint/fix with `markdownlint`, make template more verbose * feat: add lint stuff to makefile * fix: `UseGitIgnore` formatting * fix: lint/fix `README.md` Co-authored-by: Casey Lee <cplee@nektos.com>
94 lines
2.1 KiB
Makefile
94 lines
2.1 KiB
Makefile
PREFIX ?= /usr/local
|
|
VERSION ?= $(shell git describe --tags --dirty --always | sed -e 's/^v//')
|
|
IS_SNAPSHOT = $(if $(findstring -, $(VERSION)),true,false)
|
|
MAJOR_VERSION = $(word 1, $(subst ., ,$(VERSION)))
|
|
MINOR_VERSION = $(word 2, $(subst ., ,$(VERSION)))
|
|
PATCH_VERSION = $(word 3, $(subst ., ,$(word 1,$(subst -, , $(VERSION)))))
|
|
NEW_VERSION ?= $(MAJOR_VERSION).$(MINOR_VERSION).$(shell echo $$(( $(PATCH_VERSION) + 1)) )
|
|
|
|
fix = false
|
|
ifeq (true,$(fix))
|
|
FIX = --fix
|
|
endif
|
|
|
|
ACT ?= go run main.go
|
|
|
|
HAS_TOKEN = $(if $(test -e ~/.config/github/token),true,false)
|
|
ifeq (true,$(HAS_TOKEN))
|
|
export GITHUB_TOKEN := $(shell cat ~/.config/github/token)
|
|
endif
|
|
|
|
.PHONY: build
|
|
build:
|
|
go build -ldflags "-X main.version=$(VERSION)" -o dist/local/act main.go
|
|
|
|
.PHONY: format
|
|
format:
|
|
go fmt ./...
|
|
|
|
.PHONY: test
|
|
test:
|
|
go test ./...
|
|
$(ACT)
|
|
|
|
.PHONY: lint-go
|
|
lint-go:
|
|
golangci-lint run $(FIX)
|
|
|
|
.PHONY: lint-js
|
|
lint-js:
|
|
standard $(FIX)
|
|
|
|
.PHONY: lint-md
|
|
lint-md:
|
|
markdownlint . $(FIX)
|
|
|
|
.PHONY: lint-rest
|
|
lint-rest:
|
|
docker run --rm -it \
|
|
-e 'RUN_LOCAL=true' \
|
|
-e 'FILTER_REGEX_EXCLUDE=.*testdata/*' \
|
|
-e 'VALIDATE_BASH=false' \
|
|
-e 'VALIDATE_DOCKERFILE=false' \
|
|
-e 'VALIDATE_DOCKERFILE_HADOLINT=false' \
|
|
-e 'VALIDATE_GO=false' \
|
|
-e 'VALIDATE_JSCPD=false' \
|
|
-e 'VALIDATE_SHELL_SHFMT=false' \
|
|
-v $(PWD):/tmp/lint \
|
|
github/super-linter
|
|
|
|
.PHONY: lint
|
|
lint: lint-go lint-rest
|
|
|
|
.PHONY: lint-fix
|
|
lint-fix: lint-md lint-go
|
|
|
|
.PHONY: fix
|
|
fix:
|
|
make lint-fix fix=true
|
|
|
|
.PHONY: install
|
|
install: build
|
|
@cp dist/local/act $(PREFIX)/bin/act
|
|
@chmod 755 $(PREFIX)/bin/act
|
|
@act --version
|
|
|
|
.PHONY: installer
|
|
installer:
|
|
@GO111MODULE=off go get github.com/goreleaser/godownloader
|
|
godownloader -r nektos/act -o install.sh
|
|
|
|
.PHONY: promote
|
|
promote:
|
|
@git fetch --tags
|
|
@echo "VERSION:$(VERSION) IS_SNAPSHOT:$(IS_SNAPSHOT) NEW_VERSION:$(NEW_VERSION)"
|
|
ifeq (false,$(IS_SNAPSHOT))
|
|
@echo "Unable to promote a non-snapshot"
|
|
@exit 1
|
|
endif
|
|
ifneq ($(shell git status -s),)
|
|
@echo "Unable to promote a dirty workspace"
|
|
@exit 1
|
|
endif
|
|
git tag -a -m "releasing v$(NEW_VERSION)" v$(NEW_VERSION)
|
|
git push origin v$(NEW_VERSION)
|