diff --git a/.gitea/workflows/check.yml b/.gitea/workflows/check.yml new file mode 100644 index 0000000..3d3aba0 --- /dev/null +++ b/.gitea/workflows/check.yml @@ -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 diff --git a/Makefile b/Makefile index e27258f..53f4fb3 100644 --- a/Makefile +++ b/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