From 09082eeaa11bad9fd396d97faf004628141e94b1 Mon Sep 17 00:00:00 2001 From: Bhargav Ravuri Date: Sun, 26 May 2024 18:52:37 +0530 Subject: [PATCH] ci(goreportcard): Add step for goreportcard check Go report card for repo: https://goreportcard.com/report/github.com/Boeing/config-file-validator Fixes #120 Signed-off-by: Bhargav Ravuri --- .github/workflows/goreportcard.yaml | 52 +++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 .github/workflows/goreportcard.yaml diff --git a/.github/workflows/goreportcard.yaml b/.github/workflows/goreportcard.yaml new file mode 100644 index 00000000..32061034 --- /dev/null +++ b/.github/workflows/goreportcard.yaml @@ -0,0 +1,52 @@ +name: Go Report Card + +on: + push: + branches: + - master + - main + pull_request: + +jobs: + goreportcard: + strategy: + matrix: + go: ['stable'] + os: [ubuntu-latest, macos-latest, windows-latest] + runs-on: ${{ matrix.os }} + steps: + - name: Setup Go ${{ matrix.go-version }} + uses: actions/setup-go@v5 + with: + go-version: ${{ matrix.go }} + cache: false + - name: Checkout gojp/goreportcard repo + uses: actions/checkout@v4 + with: + repository: gojp/goreportcard + path: goreportcard + - name: Install goreportcard-cli + # goreportcard-cli requires the following linters: + # 1. gometalinter + # 2. golint + # 3. gocyclo + # 4. ineffassign + # 5. misspell + # among which, the linter gometalinter is deprecated. However, goreportcard repo has a vendor version of it. + # Hence installing from the repo instead of `go install`. Refer https://github.com/gojp/goreportcard/issues/301 + run: | + cd goreportcard + + # Install prerequisite linter binaries: gometalinter, golint, gocyclo, ineffassign & misspell + # Refer: https://github.com/gojp/goreportcard?tab=readme-ov-file#command-line-interface + make install + + # Install goreportcard-cli binary + go install ./cmd/goreportcard-cli + which goreportcard-cli + - name: Checkout Boeing/config-file-validator repo + uses: actions/checkout@v4 + - name: Run goreportcard + run: | + # Failure threshold is set to 100% to fail at any errors. Default is 75%. + goreportcard-cli -t 100