Add make check target and CI workflow #36
24
.gitea/workflows/check.yml
Normal file
24
.gitea/workflows/check.yml
Normal file
@ -0,0 +1,24 @@
|
||||
name: check
|
||||
on:
|
||||
push:
|
||||
branches: [main, next]
|
||||
pull_request:
|
||||
branches: [main, next]
|
||||
jobs:
|
||||
check:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
|
||||
- uses: actions/setup-go@40f1582b2485089dde7abd97c1529aa768e1baff # v5
|
||||
with:
|
||||
go-version-file: go.mod
|
||||
- name: Install golangci-lint
|
||||
run: go install github.com/golangci/golangci-lint/v2/cmd/golangci-lint@5d1e709b7be35cb2025444e19de266b056b7b7ee # v2.10.1
|
||||
- name: Install protoc-gen-go
|
||||
run: go install google.golang.org/protobuf/cmd/protoc-gen-go@4dfe9d308b477d29e8c2b6d75abf3e78aafe3cb8 # v1.28.1
|
||||
- name: Generate protobuf
|
||||
run: |
|
||||
sudo apt-get update && sudo apt-get install -y protobuf-compiler
|
||||
cd mfer && go generate .
|
||||
- name: Run checks
|
||||
run: make check
|
||||
15
Makefile
15
Makefile
@ -13,7 +13,7 @@ GOLDFLAGS += -X main.Version=$(VERSION)
|
||||
GOLDFLAGS += -X main.Gitrev=$(GITREV_BUILD)
|
||||
GOFLAGS := -ldflags "$(GOLDFLAGS)"
|
||||
|
||||
.PHONY: docker default run ci test fixme
|
||||
.PHONY: docker default run ci test fixme check check-fmt lint
|
||||
|
||||
default: fmt test
|
||||
|
||||
@ -51,9 +51,8 @@ fmt: mfer/mf.pb.go
|
||||
-prettier -w *.json
|
||||
-prettier -w *.md
|
||||
|
||||
lint:
|
||||
golangci-lint run
|
||||
sh -c 'test -z "$$(gofmt -l .)"'
|
||||
lint: mfer/mf.pb.go
|
||||
golangci-lint run ./...
|
||||
|
||||
docker: sneak-mfer.$(ARCH).tzst.dockerimage
|
||||
|
||||
@ -79,3 +78,11 @@ modcache.tzst: go.mod go.sum
|
||||
go mod download -x
|
||||
cd $(shell go env GOMODCACHE) && tar -c . | pv | zstdmt -19 > $(PWD)/$@.tmp
|
||||
mv $@.tmp $@
|
||||
|
||||
# Individual check targets
|
||||
check-fmt:
|
||||
@echo "==> Checking formatting..."
|
||||
@test -z "$$(gofmt -l .)" || (echo "Files not formatted:" && gofmt -l . && exit 1)
|
||||
|
||||
# Run all checks (formatting, linting, tests) without modifying files
|
||||
check: check-fmt lint test
|
||||
|
||||
Loading…
Reference in New Issue
Block a user