diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 89298a57..0f161488 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -57,9 +57,11 @@ jobs: restore-keys: | ${{ runner.os }}-go- - name: Test - run: make test-test + working-directory: test + run: make test - name: Check tidy - run: make check-tidy-test + working-directory: test + run: make check-tidy test-lint: needs: paths-filter @@ -80,9 +82,11 @@ jobs: restore-keys: | ${{ runner.os }}-go- - name: Test - run: make test-lint + working-directory: lint + run: make test - name: Check tidy - run: make check-tidy-lint + working-directory: lint + run: make check-tidy test-languageserver: needs: paths-filter @@ -111,9 +115,11 @@ jobs: working-directory: languageserver run: make build - name: Test - run: make test-languageserver + working-directory: languageserver + run: make test - name: Check tidy - run: make check-tidy-languageserver + working-directory: languageserver + run: make check-tidy test-docgen: needs: paths-filter @@ -136,9 +142,11 @@ jobs: restore-keys: | ${{ runner.os }}-go- - name: Test - run: make test-docgen + working-directory: docgen + run: make test - name: Check tidy - run: make check-tidy-docgen + working-directory: docgen + run: make check-tidy lint: name: Lint @@ -158,3 +166,11 @@ jobs: ${{ runner.os }}-go- - name: Check license headers run: make check-headers + - name: Run golangci-lint + uses: golangci/golangci-lint-action@v6 + with: + # Required: the version of golangci-lint is required and must be specified without patch version: we always use the latest patch version. + version: v1.54 + args: -v + # https://github.com/golangci/golangci-lint-action/issues/244 + skip-cache: true diff --git a/.golangci.yml b/.golangci.yml new file mode 100644 index 00000000..c57668f9 --- /dev/null +++ b/.golangci.yml @@ -0,0 +1,39 @@ +linters: + disable-all: true + enable: + - govet + - gosimple + - errcheck + - staticcheck + - ineffassign + - typecheck + - misspell + - unused + - exportloopref + - gocritic + - gofmt + - goimports + - unconvert + - nilerr + - forbidigo + - bidichk + - asciicheck + +issues: + max-issues-per-linter: 0 + max-same-issues: 0 + +linters-settings: + gocritic: + disabled-checks: + - ifElseChain # style + - singleCaseSwitch # style + - unslice # false positives + - commentFormatting # does not detect commented out code + - exitAfterDefer + goimports: + local-prefixes: github.com/onflow/cadence-tools + forbidigo: + forbid: + - '^maps.Keys.*(# has indeterminate order\.)?$' + - '^maps.Values.*(# has indeterminate order\.)?$' diff --git a/Makefile b/Makefile deleted file mode 100644 index fabe8aec..00000000 --- a/Makefile +++ /dev/null @@ -1,63 +0,0 @@ -.PHONY: test -test: test-test test-lint test-languageserver test-docgen - -.PHONY: test-test -test-test: - (cd ./test && make test && cd -) - -.PHONY: test-lint -test-lint: - (cd ./lint && make test && cd -) - -.PHONY: test-languageserver -test-languageserver: - (cd ./languageserver && make test && cd -) - -.PHONY: test-docgen -test-docgen: - (cd ./docgen && make test && cd -) - -.PHONY: generate -generate: generate-lint generate-test generate-languageserver generate-docgen - -.PHONY: generate-lint -generate-lint: - (cd ./lint && make generate && cd -) - -.PHONY: generate-test -generate-test: - (cd ./test && make generate && cd -) - -.PHONY: generate-languageserver -generate-languageserver: - (cd ./languageserver && make generate && cd -) - -.PHONY: generate-docgen -generate-docgen: - (cd ./docgen && make generate && cd -) - -.PHONY: check-headers -check-headers: - (cd ./lint && make check-headers && cd -) - (cd ./test && make check-headers && cd -) - (cd ./languageserver && make check-headers && cd -) - (cd ./docgen && make check-headers && cd -) - -.PHONY: check-tidy -check-tidy: check-tidy-lint check-tidy-test check-tidy-languageserver check-tidy-docgen - -.PHONY: check-tidy-lint -check-tidy-lint: generate-lint - (cd ./lint && make check-tidy && cd -) - -.PHONY: check-tidy-test -check-tidy-test: generate-test - (cd ./test && make check-tidy && cd -) - -.PHONY: check-tidy-languageserver -check-tidy-languageserver: generate-languageserver - (cd ./languageserver && make check-tidy && cd -) - -.PHONY: check-tidy-docgen -check-tidy-docgen: generate-docgen - (cd ./docgen && make check-tidy && cd -)