From 8f887d3a79b6f1a9b4237ce047a65f732406c5dc Mon Sep 17 00:00:00 2001 From: Jintao Zhang Date: Thu, 1 Jun 2023 09:06:36 +0800 Subject: [PATCH] ci: add fix-yamllint rule in Makefile Two rules have been specified for yamlfmt here: * Automatically add the header `---` to YAML files. * Preserve line breaks. ref: https://github.com/google/yamlfmt/blob/main/docs/config-file.md#configuration-1 Signed-off-by: Jintao Zhang Co-authored-by: Marek Siarkowicz --- .github/stale.yml | 6 +----- .github/workflows/codeql-analysis.yml | 23 ++--------------------- .golangci.yaml | 14 +++++++------- Makefile | 13 +++++++++++-- contrib/mixin/test.yaml | 17 ++++------------- tools/.yamlfmt | 4 ++++ .yamllint => tools/.yamllint | 0 tools/mod/go.mod | 7 ++++++- tools/mod/go.sum | 12 +++++++++++- tools/mod/tools.go | 1 + 10 files changed, 47 insertions(+), 50 deletions(-) create mode 100644 tools/.yamlfmt rename .yamllint => tools/.yamllint (100%) diff --git a/.github/stale.yml b/.github/stale.yml index a3ac09ee0a9..1c04a756b9a 100644 --- a/.github/stale.yml +++ b/.github/stale.yml @@ -28,11 +28,7 @@ exemptAssignees: false staleLabel: stale # Comment to post when marking as stale. Set to `false` to disable -markComment: > - This issue has been automatically marked as stale because it has not had - recent activity. It will be closed after 21 days if no further activity - occurs. Thank you for your contributions. - +markComment: This issue has been automatically marked as stale because it has not had recent activity. It will be closed after 21 days if no further activity occurs. Thank you for your contributions. # Comment to post when removing the stale label. # unmarkComment: > # Your comment here. diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index 9d525b712f1..c2c1feff5af 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -11,7 +11,6 @@ # supported CodeQL languages. # name: "CodeQL" - on: push: branches: [main, release-3.4, release-3.5, release-3.6] @@ -20,9 +19,7 @@ on: branches: [main] schedule: - cron: '20 14 * * 5' - permissions: read-all - jobs: analyze: name: Analyze @@ -31,44 +28,28 @@ jobs: actions: read contents: read security-events: write - strategy: fail-fast: false matrix: - language: ['go'] # CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python' ] # Learn more: # https://docs.github.com/en/free-pro-team@latest/github/finding-security-vulnerabilities-and-errors-in-your-code/configuring-code-scanning#changing-the-languages-that-are-analyzed - + language: ['go'] steps: - name: Checkout repository uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab # v3.5.2 - # Initializes the CodeQL tools for scanning. - name: Initialize CodeQL uses: github/codeql-action/init@0225834cc549ee0ca93cb085b92954821a145866 # v2.3.5 with: - languages: ${{ matrix.language }} # If you wish to specify custom queries, you can do so here or in a config file. # By default, queries listed here will override any specified in a config file. # Prefix the list here with "+" to use these queries and those in the config file. # queries: ./path/to/local/query, your-org/your-repo/queries@main - + languages: ${{ matrix.language }} # Autobuild attempts to build any compiled languages (C/C++, C#, or Java). # If this step fails, then you should remove it and run the build manually (see below) - name: Autobuild uses: github/codeql-action/autobuild@0225834cc549ee0ca93cb085b92954821a145866 # v2.3.5 - - # ℹ️ Command-line programs to run using the OS shell. - # 📚 https://git.io/JvXDl - - # ✏️ If the Autobuild fails above, remove it and uncomment the following three lines - # and modify them (or add more) to build your code if your project - # uses a compiled language - - #- run: | - # make bootstrap - # make release - - name: Perform CodeQL Analysis uses: github/codeql-action/analyze@0225834cc549ee0ca93cb085b92954821a145866 # v2.3.5 diff --git a/.golangci.yaml b/.golangci.yaml index 204aa4d943b..ddef673d1c9 100644 --- a/.golangci.yaml +++ b/.golangci.yaml @@ -11,7 +11,7 @@ issues: linters: [ineffassign] linters: disable-all: true - enable: # please keep this alphabetized + enable: # please keep this alphabetized # Don't use soon to deprecated[1] linters that lead to false # https://github.com/golangci/golangci-lint/issues/1841 # - deadcode @@ -23,15 +23,15 @@ linters: - staticcheck - stylecheck - unused - - unconvert # Remove unnecessary type conversions -linters-settings: # please keep this alphabetized + - unconvert # Remove unnecessary type conversions +linters-settings: # please keep this alphabetized goimports: - local-prefixes: go.etcd.io # Put imports beginning with prefix after 3rd-party packages. + local-prefixes: go.etcd.io # Put imports beginning with prefix after 3rd-party packages. staticcheck: checks: - all - - -SA1019 # TODO(fix) Using a deprecated function, variable, constant or field - - -SA2002 # TODO(fix) Called testing.T.FailNow or SkipNow in a goroutine, which isn’t allowed + - -SA1019 # TODO(fix) Using a deprecated function, variable, constant or field + - -SA2002 # TODO(fix) Called testing.T.FailNow or SkipNow in a goroutine, which isn’t allowed stylecheck: checks: - - ST1019 # Importing the same package multiple times. + - ST1019 # Importing the same package multiple times. diff --git a/Makefile b/Makefile index c36fc712720..6229e980b29 100644 --- a/Makefile +++ b/Makefile @@ -65,7 +65,7 @@ fuzz: verify: verify-gofmt verify-bom verify-lint verify-dep verify-shellcheck verify-goword \ verify-govet verify-license-header verify-receiver-name verify-mod-tidy verify-shellcheck \ verify-shellws verify-proto-annotations verify-genproto verify-goimport verify-yamllint -fix: fix-bom fix-lint +fix: fix-bom fix-lint fix-yamllint ./scripts/fix.sh .PHONY: verify-gofmt @@ -134,7 +134,16 @@ verify-goimport: .PHONY: verify-yamllint verify-yamllint: - yamllint . + yamllint --config-file tools/.yamllint . + +YAMLFMT_VERSION = $(shell cd tools/mod && go list -m -f '{{.Version}}' github.com/google/yamlfmt) + +.PHONY: fix-yamllint +fix-yamllint: +ifeq (, $(shell which yamlfmt)) + $(shell go install github.com/google/yamlfmt/cmd/yamlfmt@$(YAMLFMT_VERSION)) +endif + yamlfmt -conf tools/.yamlfmt . # Cleanup diff --git a/contrib/mixin/test.yaml b/contrib/mixin/test.yaml index 705f10b5c45..bfb50d8af3c 100644 --- a/contrib/mixin/test.yaml +++ b/contrib/mixin/test.yaml @@ -98,10 +98,7 @@ tests: job: etcd severity: warning exp_annotations: - description: 'etcd cluster "etcd": 4 leader changes within the last - 15 minutes. Frequent elections may be a sign of insufficient resources, - high network latency, or disruptions by other components and should - be investigated.' + description: 'etcd cluster "etcd": 4 leader changes within the last 15 minutes. Frequent elections may be a sign of insufficient resources, high network latency, or disruptions by other components and should be investigated.' summary: etcd cluster has high number of leader changes. - interval: 1m input_series: @@ -134,10 +131,7 @@ tests: job: etcd severity: warning exp_annotations: - description: 'etcd cluster "etcd": Predicting running out of disk space - in the next four hours, based on write observations within the past - four hours on etcd instance 10.10.10.0, please check as it might be - disruptive.' + description: 'etcd cluster "etcd": Predicting running out of disk space in the next four hours, based on write observations within the past four hours on etcd instance 10.10.10.0, please check as it might be disruptive.' summary: etcd cluster database growing very fast. - interval: 1m input_series: @@ -158,9 +152,6 @@ tests: job: etcd severity: warning exp_annotations: - description: 'etcd cluster "etcd": database size in use on instance - 10.10.10.0 is 30% of the actual allocated disk space, please run defragmentation - (e.g. etcdctl defrag) to retrieve the unused fragmented disk space.' + description: 'etcd cluster "etcd": database size in use on instance 10.10.10.0 is 30% of the actual allocated disk space, please run defragmentation (e.g. etcdctl defrag) to retrieve the unused fragmented disk space.' runbook_url: https://etcd.io/docs/v3.5/op-guide/maintenance/#defragmentation - summary: etcd database size in use is less than 50% of the actual allocated - storage. + summary: etcd database size in use is less than 50% of the actual allocated storage. diff --git a/tools/.yamlfmt b/tools/.yamlfmt new file mode 100644 index 00000000000..2e48d5dee26 --- /dev/null +++ b/tools/.yamlfmt @@ -0,0 +1,4 @@ +formatter: + type: basic + include_document_start: true + retain_line_breaks: true diff --git a/.yamllint b/tools/.yamllint similarity index 100% rename from .yamllint rename to tools/.yamllint diff --git a/tools/mod/go.mod b/tools/mod/go.mod index 482532f6ed9..5cf488847a9 100644 --- a/tools/mod/go.mod +++ b/tools/mod/go.mod @@ -9,6 +9,7 @@ require ( github.com/coreos/license-bill-of-materials v0.0.0-20190913234955-13baff47494e github.com/gogo/protobuf v1.3.2 github.com/google/addlicense v1.1.1 + github.com/google/yamlfmt v0.9.0 github.com/gordonklaus/ineffassign v0.0.0-20210914165742-4cc7213b9bc8 github.com/grpc-ecosystem/grpc-gateway v1.16.0 github.com/gyuho/gocovmerge v0.0.0-20171205171859-50c7e6afd535 @@ -26,10 +27,12 @@ require ( require ( github.com/BurntSushi/toml v1.2.1 // indirect + github.com/RageCage64/multilinediff v0.2.0 // indirect github.com/a8m/envsubst v1.4.2 // indirect github.com/akhenakh/hunspellgo v0.0.0-20160221122622-9db38fa26e19 // indirect github.com/alecthomas/participle/v2 v2.0.0 // indirect - github.com/bmatcuk/doublestar/v4 v4.0.2 // indirect + github.com/bmatcuk/doublestar/v4 v4.6.0 // indirect + github.com/braydonk/yaml v0.7.0 // indirect github.com/chavacava/garif v0.0.0-20230227094218-b8c73b2037b8 // indirect github.com/dimchansky/utfbom v1.1.1 // indirect github.com/dnephin/pflag v1.0.7 // indirect @@ -45,6 +48,7 @@ require ( github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b // indirect github.com/golang/protobuf v1.5.3 // indirect github.com/google/certificate-transparency-go v1.1.4 // indirect + github.com/google/go-cmp v0.5.9 // indirect github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect github.com/jinzhu/copier v0.3.5 // indirect @@ -59,6 +63,7 @@ require ( github.com/mattn/go-sqlite3 v1.14.15 // indirect github.com/mgechev/dots v0.0.0-20210922191527-e955255bf517 // indirect github.com/mitchellh/go-homedir v1.1.0 // indirect + github.com/mitchellh/mapstructure v1.5.0 // indirect github.com/olekukonko/tablewriter v0.0.5 // indirect github.com/pelletier/go-toml v1.9.3 // indirect github.com/pelletier/go-toml/v2 v2.0.7 // indirect diff --git a/tools/mod/go.sum b/tools/mod/go.sum index 156aa8c30d5..b789461bd59 100644 --- a/tools/mod/go.sum +++ b/tools/mod/go.sum @@ -3,6 +3,8 @@ cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMT github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/BurntSushi/toml v1.2.1 h1:9F2/+DoOYIOksmaJFPw1tGFy1eDnIJXg+UHjuD8lTak= github.com/BurntSushi/toml v1.2.1/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ= +github.com/RageCage64/multilinediff v0.2.0 h1:yNSpSF5NXIrmo6bRIgO4Q0g7SXqFD4j/WEcBE+BdCFY= +github.com/RageCage64/multilinediff v0.2.0/go.mod h1:pKr+KLgP0gvRzA+yv0/IUaYQuBYN1ucWysvsL58aMP0= github.com/a8m/envsubst v1.4.2 h1:4yWIHXOLEJHQEFd4UjrWDrYeYlV7ncFWJOCBRLOZHQg= github.com/a8m/envsubst v1.4.2/go.mod h1:MVUTQNGQ3tsjOOtKCNd+fl8RzhsXcDvvAEzkhGtlsbY= github.com/akhenakh/hunspellgo v0.0.0-20160221122622-9db38fa26e19 h1:bYOD6QJnBJY79MJQR1i9cyQePG5oNDZXDKL2bhN/uvE= @@ -14,8 +16,11 @@ github.com/alecthomas/repr v0.2.0 h1:HAzS41CIzNW5syS8Mf9UwXhNH1J9aix/BvDRf1Ml2Yk github.com/alexkohler/nakedret v1.0.2 h1:Svug5bxPnxbjw1jYlbHlnYAEORehXzsotyMUn2NQO2E= github.com/alexkohler/nakedret v1.0.2/go.mod h1:pRpUzThUf0nEk2mzur20zmf+6AVzw+3pDWQA0ehUZhI= github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= -github.com/bmatcuk/doublestar/v4 v4.0.2 h1:X0krlUVAVmtr2cRoTqR8aDMrDqnB36ht8wpWTiQ3jsA= github.com/bmatcuk/doublestar/v4 v4.0.2/go.mod h1:xBQ8jztBU6kakFMg+8WGxn0c6z1fTSPVIjEY1Wr7jzc= +github.com/bmatcuk/doublestar/v4 v4.6.0 h1:HTuxyug8GyFbRkrffIpzNCSK4luc0TY3wzXvzIZhEXc= +github.com/bmatcuk/doublestar/v4 v4.6.0/go.mod h1:xBQ8jztBU6kakFMg+8WGxn0c6z1fTSPVIjEY1Wr7jzc= +github.com/braydonk/yaml v0.7.0 h1:ySkqO7r0MGoCNhiRJqE0Xe9yhINMyvOAB3nFjgyJn2k= +github.com/braydonk/yaml v0.7.0/go.mod h1:hcm3h581tudlirk8XEUPDBAimBPbmnL0Y45hCRl47N4= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= github.com/certifi/gocertifi v0.0.0-20200922220541-2c3bb06c6054 h1:uH66TXeswKn5PW5zdZ39xEwfS9an067BirqA+P4QaLI= github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= @@ -105,9 +110,12 @@ github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/ github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.8/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38= +github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 h1:El6M4kTTCOh6aBiKaUGG7oYTSPP8MxqL4YI3kZKwcP4= github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510/go.mod h1:pupxD2MaaD3pAXIBCelhxNneeOaAeabZDe5s4K6zSpQ= github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/google/yamlfmt v0.9.0 h1:spfe6s8BvtplRZ2kDB61PYmqKWEz1vy9GsNg3ltDYvA= +github.com/google/yamlfmt v0.9.0/go.mod h1:jW0ice5/S1EBCHhIV9rkGVfUjyCXD1cTlddkKwI8TKo= github.com/gordonklaus/ineffassign v0.0.0-20210914165742-4cc7213b9bc8 h1:PVRE9d4AQKmbelZ7emNig1+NT27DUmKZn5qXxfio54U= github.com/gordonklaus/ineffassign v0.0.0-20210914165742-4cc7213b9bc8/go.mod h1:Qcp2HIAYhR7mNUVSIxZww3Guk4it82ghYcEXIAk+QT0= github.com/grpc-ecosystem/grpc-gateway v1.16.0 h1:gmcG1KaJ57LophUzW0Hy8NmPhnMZb4M0+kPpLofRdBo= @@ -162,6 +170,8 @@ github.com/mikefarah/yq/v4 v4.33.3 h1:cu6JxWAL82bpLCJTLYP3ILZ/3gXF1YfvYBCMRdnY/x github.com/mikefarah/yq/v4 v4.33.3/go.mod h1:ajAKq75gdANZHzkWu5shY2QZHpg8HOHVSyscC1+OAIs= github.com/mitchellh/go-homedir v1.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG+4E0Y= github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= +github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY= +github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/mreiferson/go-httpclient v0.0.0-20160630210159-31f0106b4474/go.mod h1:OQA4XLvDbMgS8P0CevmM4m9Q3Jq4phKUzcocxuGJ5m8= github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e h1:fD57ERR4JtEqsWbfPhv4DMiApHyliiK5xCTNVSPiaAs= github.com/olekukonko/tablewriter v0.0.5 h1:P2Ga83D34wi1o9J6Wh1mRuqd4mF/x/lgBS7N7AbDhec= diff --git a/tools/mod/tools.go b/tools/mod/tools.go index ae7f71bc965..249514210d2 100644 --- a/tools/mod/tools.go +++ b/tools/mod/tools.go @@ -27,6 +27,7 @@ import ( _ "github.com/cloudflare/cfssl/cmd/cfssljson" _ "github.com/coreos/license-bill-of-materials" _ "github.com/google/addlicense" + _ "github.com/google/yamlfmt/cmd/yamlfmt" _ "github.com/gordonklaus/ineffassign" _ "github.com/grpc-ecosystem/grpc-gateway/protoc-gen-grpc-gateway" _ "github.com/grpc-ecosystem/grpc-gateway/protoc-gen-swagger"