diff --git a/.gitignore b/.gitignore index 1631a8c3..1a543fda 100644 --- a/.gitignore +++ b/.gitignore @@ -2,7 +2,6 @@ .env .runner coverage.txt -/gitea-vet /config.yaml # Jetbrains diff --git a/.golangci.yml b/.golangci.yml index 570b4923..cff28eb2 100644 --- a/.golangci.yml +++ b/.golangci.yml @@ -13,6 +13,7 @@ linters: - forbidigo - gocheckcompilerdirectives - gocritic + - goheader - govet - ineffassign - mirror @@ -85,6 +86,11 @@ linters: enable: - nilness - unusedwrite + goheader: + values: + regexp: + HEADER: 'Copyright \d{4} The Gitea Authors\. All rights reserved\.(\nCopyright [^\n]+)*\nSPDX-License-Identifier: MIT' + template: '{{ HEADER }}' exclusions: generated: lax presets: @@ -101,9 +107,16 @@ issues: max-same-issues: 0 formatters: enable: - - gofmt + - gci - gofumpt settings: + gci: + custom-order: true + sections: + - standard + - prefix(gitea.com/gitea/act_runner) + - blank + - default gofumpt: extra-rules: true exclusions: diff --git a/Makefile b/Makefile index 91fc4cd8..1cbfef38 100644 --- a/Makefile +++ b/Makefile @@ -1,6 +1,5 @@ DIST := dist EXECUTABLE := act_runner -GOFMT ?= gofumpt -l DIST_DIRS := $(DIST)/binaries $(DIST)/release GO ?= go SHASUM ?= shasum -a 256 @@ -12,7 +11,6 @@ GXZ_PAGAGE ?= github.com/ulikunitz/xz/cmd/gxz@v0.5.10 LINUX_ARCHS ?= linux/amd64,linux/arm64 DARWIN_ARCHS ?= darwin-12/amd64,darwin-12/arm64 WINDOWS_ARCHS ?= windows/amd64 -GO_FMT_FILES := $(shell find . -type f -name "*.go" ! -name "generated.*") GOFILES := $(shell find . -type f -name "*.go" -o -name "go.mod" ! -name "generated.*") DOCKER_IMAGE ?= gitea/act_runner @@ -68,19 +66,14 @@ else endif endif -GO_PACKAGES_TO_VET ?= $(filter-out gitea.com/gitea/act_runner/internal/pkg/client/mocks,$(shell $(GO) list ./...)) - - TAGS ?= LDFLAGS ?= -X "gitea.com/gitea/act_runner/internal/pkg/ver.version=v$(RELASE_VERSION)" all: build +.PHONY: fmt fmt: - @hash gofumpt > /dev/null 2>&1; if [ $$? -ne 0 ]; then \ - $(GO) install mvdan.cc/gofumpt@latest; \ - fi - $(GOFMT) -w $(GO_FMT_FILES) + $(GO) run $(GOLANGCI_LINT_PACKAGE) fmt .PHONY: go-check go-check: @@ -93,23 +86,20 @@ go-check: fi .PHONY: fmt-check -fmt-check: - @hash gofumpt > /dev/null 2>&1; if [ $$? -ne 0 ]; then \ - $(GO) install mvdan.cc/gofumpt@latest; \ - fi - @diff=$$($(GOFMT) -d $(GO_FMT_FILES)); \ +fmt-check: fmt + @diff=$$(git diff --color=always); \ if [ -n "$$diff" ]; then \ echo "Please run 'make fmt' and commit the result:"; \ - echo "$${diff}"; \ + printf "%s" "$${diff}"; \ exit 1; \ - fi; + fi .PHONY: deps-tools deps-tools: ## install tool dependencies $(GO) install $(GOVULNCHECK_PACKAGE) .PHONY: lint -lint: lint-go vet +lint: lint-go .PHONY: lint-go lint-go: ## lint go files @@ -139,12 +129,6 @@ tidy-check: tidy test: fmt-check security-check @$(GO) test -race -v -cover -coverprofile coverage.txt ./... && echo "\n==>\033[32m Ok\033[m\n" || exit 1 -.PHONY: vet -vet: - @echo "Running go vet..." - @$(GO) build code.gitea.io/gitea-vet - @$(GO) vet -vettool=gitea-vet $(GO_PACKAGES_TO_VET) - install: $(GOFILES) $(GO) install -v -tags '$(TAGS)' -ldflags '$(EXTLDFLAGS)-s -w $(LDFLAGS)' diff --git a/build.go b/build.go deleted file mode 100644 index f2e5d825..00000000 --- a/build.go +++ /dev/null @@ -1,11 +0,0 @@ -// Copyright 2023 The Gitea Authors. All rights reserved. -// SPDX-License-Identifier: MIT - -//go:build vendor - -package main - -import ( - // for vet - _ "code.gitea.io/gitea-vet" -) diff --git a/go.mod b/go.mod index c22d6930..3dbf1a3f 100644 --- a/go.mod +++ b/go.mod @@ -4,7 +4,6 @@ go 1.26.0 require ( code.gitea.io/actions-proto-go v0.4.1 - code.gitea.io/gitea-vet v0.2.3 connectrpc.com/connect v1.19.1 github.com/avast/retry-go/v4 v4.7.0 github.com/docker/docker v25.0.13+incompatible @@ -110,7 +109,6 @@ require ( golang.org/x/net v0.50.0 // indirect golang.org/x/sync v0.19.0 // indirect golang.org/x/sys v0.41.0 // indirect - golang.org/x/tools v0.42.0 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20240903143218-8af14fe29dc1 // indirect google.golang.org/grpc v1.67.0 // indirect gopkg.in/warnings.v0 v0.1.2 // indirect diff --git a/go.sum b/go.sum index c047481b..926333c2 100644 --- a/go.sum +++ b/go.sum @@ -1,7 +1,5 @@ code.gitea.io/actions-proto-go v0.4.1 h1:l0EYhjsgpUe/1VABo2eK7zcoNX2W44WOnb0MSLrKfls= code.gitea.io/actions-proto-go v0.4.1/go.mod h1:mn7Wkqz6JbnTOHQpot3yDeHx+O5C9EGhMEE+htvHBas= -code.gitea.io/gitea-vet v0.2.3 h1:gdFmm6WOTM65rE8FUBTRzeQZYzXePKSSB1+r574hWwI= -code.gitea.io/gitea-vet v0.2.3/go.mod h1:zcNbT/aJEmivCAhfmkHOlT645KNOf9W2KnkLgFjGGfE= connectrpc.com/connect v1.19.1 h1:R5M57z05+90EfEvCY1b7hBxDVOUl45PrtXtAV2fOC14= connectrpc.com/connect v1.19.1/go.mod h1:tN20fjdGlewnSFeZxLKb0xwIZ6ozc3OQs2hTXy4du9w= cyphar.com/go-pathrs v0.2.3 h1:0pH8gep37wB0BgaXrEaN1OtZhUMeS7VvaejSr6i822o= @@ -224,7 +222,6 @@ github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 h1:EzJWgHo github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415/go.mod h1:GwrjFmJcFw6At/Gs6z4yjiIwzuJ1/+UwLxMQDVQXShQ= github.com/xeipuuv/gojsonschema v1.2.0 h1:LhYJRs+L4fBtjZUfuSZIKGeVu0QRy8e5Xi7D17UxZ74= github.com/xeipuuv/gojsonschema v1.2.0/go.mod h1:anYRn/JVcOK2ZgGU+IjEV4nwlhoK5sQluxsYJ78Id3Y= -github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= go.etcd.io/bbolt v1.3.8/go.mod h1:N9Mkw9X8x5fupy0IKsmuqVtoGDyxsaDlbk4Rd05IAQw= @@ -268,8 +265,6 @@ golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56 h1:2dVuKD2vS7b0QIHQbpyTISPd0 golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56/go.mod h1:M4RDyNAINzryxdtnbRXRL/OHtkFuWGRjvuhBJpk2IlY= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.33.0 h1:tHFzIWbBifEmbwtGz65eaWyGiGZatSrT9prnU8DbVL8= -golang.org/x/mod v0.33.0/go.mod h1:swjeQEj+6r7fODbD2cqrnje9PnziFuw4bmLbBZFrQ5w= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= @@ -308,11 +303,8 @@ golang.org/x/time v0.14.0 h1:MRx4UaLrDotUKUdCIqzPC48t1Y9hANFKIRpNx+Te8PI= golang.org/x/time v0.14.0/go.mod h1:eL/Oa2bBBK0TkX57Fyni+NgnyQQN4LitPmob2Hjnqw4= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20200325010219-a49f79bcc224/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.42.0 h1:uNgphsn75Tdz5Ji2q36v/nsFSfR/9BRFvqhGBaJGd5k= -golang.org/x/tools v0.42.0/go.mod h1:Ma6lCIwGZvHK6XtgbswSoWroEkhugApmsXyrUmBhfr0= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= diff --git a/internal/app/cmd/cmd.go b/internal/app/cmd/cmd.go index 9ef30c36..37481fa8 100644 --- a/internal/app/cmd/cmd.go +++ b/internal/app/cmd/cmd.go @@ -8,10 +8,10 @@ import ( "fmt" "os" - "github.com/spf13/cobra" - "gitea.com/gitea/act_runner/internal/pkg/config" "gitea.com/gitea/act_runner/internal/pkg/ver" + + "github.com/spf13/cobra" ) func Execute(ctx context.Context) { diff --git a/internal/app/cmd/daemon.go b/internal/app/cmd/daemon.go index fb7ab41f..b85d3a36 100644 --- a/internal/app/cmd/daemon.go +++ b/internal/app/cmd/daemon.go @@ -16,11 +16,6 @@ import ( "strings" "time" - "connectrpc.com/connect" - "github.com/mattn/go-isatty" - log "github.com/sirupsen/logrus" - "github.com/spf13/cobra" - "gitea.com/gitea/act_runner/internal/app/poll" "gitea.com/gitea/act_runner/internal/app/run" "gitea.com/gitea/act_runner/internal/pkg/client" @@ -29,6 +24,11 @@ import ( "gitea.com/gitea/act_runner/internal/pkg/labels" "gitea.com/gitea/act_runner/internal/pkg/metrics" "gitea.com/gitea/act_runner/internal/pkg/ver" + + "connectrpc.com/connect" + "github.com/mattn/go-isatty" + log "github.com/sirupsen/logrus" + "github.com/spf13/cobra" ) func runDaemon(ctx context.Context, daemArgs *daemonArgs, configFile *string) func(cmd *cobra.Command, args []string) error { diff --git a/internal/app/cmd/register.go b/internal/app/cmd/register.go index 15fd2291..04af75d7 100644 --- a/internal/app/cmd/register.go +++ b/internal/app/cmd/register.go @@ -14,17 +14,17 @@ import ( "strings" "time" + "gitea.com/gitea/act_runner/internal/pkg/client" + "gitea.com/gitea/act_runner/internal/pkg/config" + "gitea.com/gitea/act_runner/internal/pkg/labels" + "gitea.com/gitea/act_runner/internal/pkg/ver" + pingv1 "code.gitea.io/actions-proto-go/ping/v1" runnerv1 "code.gitea.io/actions-proto-go/runner/v1" "connectrpc.com/connect" "github.com/mattn/go-isatty" log "github.com/sirupsen/logrus" "github.com/spf13/cobra" - - "gitea.com/gitea/act_runner/internal/pkg/client" - "gitea.com/gitea/act_runner/internal/pkg/config" - "gitea.com/gitea/act_runner/internal/pkg/labels" - "gitea.com/gitea/act_runner/internal/pkg/ver" ) // runRegister registers a runner to the server diff --git a/internal/app/poll/poller.go b/internal/app/poll/poller.go index eaf6dac1..52ca8432 100644 --- a/internal/app/poll/poller.go +++ b/internal/app/poll/poller.go @@ -12,14 +12,14 @@ import ( "sync/atomic" "time" - runnerv1 "code.gitea.io/actions-proto-go/runner/v1" - "connectrpc.com/connect" - log "github.com/sirupsen/logrus" - "gitea.com/gitea/act_runner/internal/app/run" "gitea.com/gitea/act_runner/internal/pkg/client" "gitea.com/gitea/act_runner/internal/pkg/config" "gitea.com/gitea/act_runner/internal/pkg/metrics" + + runnerv1 "code.gitea.io/actions-proto-go/runner/v1" + "connectrpc.com/connect" + log "github.com/sirupsen/logrus" ) type Poller struct { diff --git a/internal/app/poll/poller_test.go b/internal/app/poll/poller_test.go index bf9a25ae..06060c65 100644 --- a/internal/app/poll/poller_test.go +++ b/internal/app/poll/poller_test.go @@ -9,14 +9,14 @@ import ( "testing" "time" + "gitea.com/gitea/act_runner/internal/pkg/client/mocks" + "gitea.com/gitea/act_runner/internal/pkg/config" + runnerv1 "code.gitea.io/actions-proto-go/runner/v1" connect_go "connectrpc.com/connect" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/mock" "github.com/stretchr/testify/require" - - "gitea.com/gitea/act_runner/internal/pkg/client/mocks" - "gitea.com/gitea/act_runner/internal/pkg/config" ) // TestPoller_PerWorkerCounters verifies that each worker maintains its own diff --git a/internal/app/run/runner.go b/internal/app/run/runner.go index 05158cca..85c463b9 100644 --- a/internal/app/run/runner.go +++ b/internal/app/run/runner.go @@ -15,6 +15,13 @@ import ( "sync/atomic" "time" + "gitea.com/gitea/act_runner/internal/pkg/client" + "gitea.com/gitea/act_runner/internal/pkg/config" + "gitea.com/gitea/act_runner/internal/pkg/labels" + "gitea.com/gitea/act_runner/internal/pkg/metrics" + "gitea.com/gitea/act_runner/internal/pkg/report" + "gitea.com/gitea/act_runner/internal/pkg/ver" + runnerv1 "code.gitea.io/actions-proto-go/runner/v1" "connectrpc.com/connect" "github.com/docker/docker/api/types/container" @@ -23,13 +30,6 @@ import ( "github.com/nektos/act/pkg/model" "github.com/nektos/act/pkg/runner" log "github.com/sirupsen/logrus" - - "gitea.com/gitea/act_runner/internal/pkg/client" - "gitea.com/gitea/act_runner/internal/pkg/config" - "gitea.com/gitea/act_runner/internal/pkg/labels" - "gitea.com/gitea/act_runner/internal/pkg/metrics" - "gitea.com/gitea/act_runner/internal/pkg/report" - "gitea.com/gitea/act_runner/internal/pkg/ver" ) // Runner runs the pipeline. diff --git a/internal/pkg/report/reporter.go b/internal/pkg/report/reporter.go index 9f1bf2c2..dc2bfbca 100644 --- a/internal/pkg/report/reporter.go +++ b/internal/pkg/report/reporter.go @@ -12,16 +12,16 @@ import ( "sync" "time" + "gitea.com/gitea/act_runner/internal/pkg/client" + "gitea.com/gitea/act_runner/internal/pkg/config" + "gitea.com/gitea/act_runner/internal/pkg/metrics" + runnerv1 "code.gitea.io/actions-proto-go/runner/v1" "connectrpc.com/connect" "github.com/avast/retry-go/v4" log "github.com/sirupsen/logrus" "google.golang.org/protobuf/proto" "google.golang.org/protobuf/types/known/timestamppb" - - "gitea.com/gitea/act_runner/internal/pkg/client" - "gitea.com/gitea/act_runner/internal/pkg/config" - "gitea.com/gitea/act_runner/internal/pkg/metrics" ) type Reporter struct { diff --git a/internal/pkg/report/reporter_test.go b/internal/pkg/report/reporter_test.go index 102064e0..15b361ab 100644 --- a/internal/pkg/report/reporter_test.go +++ b/internal/pkg/report/reporter_test.go @@ -12,6 +12,9 @@ import ( "testing" "time" + "gitea.com/gitea/act_runner/internal/pkg/client/mocks" + "gitea.com/gitea/act_runner/internal/pkg/config" + runnerv1 "code.gitea.io/actions-proto-go/runner/v1" connect_go "connectrpc.com/connect" log "github.com/sirupsen/logrus" @@ -20,9 +23,6 @@ import ( "github.com/stretchr/testify/require" "google.golang.org/protobuf/types/known/structpb" "google.golang.org/protobuf/types/known/timestamppb" - - "gitea.com/gitea/act_runner/internal/pkg/client/mocks" - "gitea.com/gitea/act_runner/internal/pkg/config" ) func TestReporter_parseLogRow(t *testing.T) {