From e7b1fe4d539d03ef58dad0325770cb654be089a2 Mon Sep 17 00:00:00 2001 From: jguer Date: Sat, 2 May 2020 10:27:28 +0200 Subject: [PATCH] fix(ci): add stricter linting settings and fix upload issues --- .github/workflows/docker-ci.yml | 12 +-- .github/workflows/docker-multiarch-tag.yml | 63 +++++++------ .golangci.yml | 100 +++++++++++++++++++++ 3 files changed, 137 insertions(+), 38 deletions(-) create mode 100644 .golangci.yml diff --git a/.github/workflows/docker-ci.yml b/.github/workflows/docker-ci.yml index debc3a36..d6c0da5e 100644 --- a/.github/workflows/docker-ci.yml +++ b/.github/workflows/docker-ci.yml @@ -3,9 +3,9 @@ name: Build on: push: paths-ignore: - - 'doc/**' - - 'README.md' - - '.gitignore' + - "doc/**" + - "README.md" + - ".gitignore" pull_request: jobs: @@ -16,10 +16,10 @@ jobs: container: samip537/archlinux:devel steps: - name: Checkout - uses: actions/checkout@v1 + uses: actions/checkout@v2 - name: Run Build and tests - run: | + run: | pacman -Sy --noconfirm go - curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s v1.23.6 + curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s v1.25.1 ./bin/golangci-lint run ./... make test diff --git a/.github/workflows/docker-multiarch-tag.yml b/.github/workflows/docker-multiarch-tag.yml index 280a9121..11a6b06e 100644 --- a/.github/workflows/docker-multiarch-tag.yml +++ b/.github/workflows/docker-multiarch-tag.yml @@ -4,40 +4,39 @@ on: branches: - master - jobs: tag: name: Tag release runs-on: ubuntu-latest steps: - - uses: actions/checkout@v1 - - uses: mathieudutour/github-tag-action@v4 - id: tag_version - with: - github_token: ${{ secrets.GITHUB_TOKEN }} - tag_prefix: 'v' - - name: share variables - shell: bash - run: | - mkdir env - echo ${{ steps.tag_version.outputs.new_version }} > env/new_version - echo ${{ steps.tag_version.outputs.new_tag }} > env/new_tag - echo "${{ steps.tag_version.outputs.changelog }}" > env/changelog - - uses: actions/upload-artifact@v1 - with: - name: env - path: env + - uses: actions/checkout@v2 + - uses: mathieudutour/github-tag-action@v4 + id: tag_version + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + tag_prefix: "v" + - name: share variables + shell: bash + run: | + mkdir env + echo ${{ steps.tag_version.outputs.new_version }} > env/new_version + echo ${{ steps.tag_version.outputs.new_tag }} > env/new_tag + echo "${{ steps.tag_version.outputs.changelog }}" > env/changelog + - uses: actions/upload-artifact@v1 + with: + name: env + path: env build-releases: strategy: matrix: - arch: ['x86_64', 'armv7h', 'aarch64'] + arch: ["x86_64", "armv7h", "aarch64"] name: Build ${{ matrix.arch }} runs-on: ubuntu-latest needs: [tag] steps: - name: Checkout code - uses: actions/checkout@v1 - - uses: actions/download-artifact@v1 + uses: actions/checkout@v2 + - uses: actions/download-artifact@v2 with: name: env - name: Read info @@ -64,8 +63,8 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout code - uses: actions/checkout@master - - uses: actions/download-artifact@v1 + uses: actions/checkout@v2 + - uses: actions/download-artifact@v2 with: name: env - name: Read info @@ -75,13 +74,13 @@ jobs: echo ::set-output name=VERSION::$(cat env/new_version) echo ::set-output name=TAG::$(cat env/new_tag) echo ::set-output name=CHANGELOG::$(cat env/changelog) - - uses: actions/download-artifact@master + - uses: actions/download-artifact@v2 with: name: yay_x86_64 - - uses: actions/download-artifact@master + - uses: actions/download-artifact@v2 with: name: yay_armv7h - - uses: actions/download-artifact@master + - uses: actions/download-artifact@v2 with: name: yay_aarch64 - name: Create Release @@ -97,31 +96,31 @@ jobs: prerelease: false - name: Upload x86_64 asset id: upload-release-asset-x86_64 - uses: actions/upload-release-asset@master + uses: actions/upload-release-asset@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ steps.create_release.outputs.upload_url }} - asset_path: ./yay_x86_64/yay_${{ steps.tags.outputs.version }}_x86_64.tar.gz + asset_path: ./yay_${{ steps.tags.outputs.version }}_x86_64.tar.gz asset_name: yay_${{ steps.tags.outputs.version }}_x86_64.tar.gz asset_content_type: application/tar+gzip - name: Upload armv7h asset id: upload-release-asset-armv7h - uses: actions/upload-release-asset@master + uses: actions/upload-release-asset@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ steps.create_release.outputs.upload_url }} - asset_path: ./yay_armv7h/yay_${{ steps.tags.outputs.version }}_armv7h.tar.gz + asset_path: ./yay_${{ steps.tags.outputs.version }}_armv7h.tar.gz asset_name: yay_${{ steps.tags.outputs.version }}_armv7h.tar.gz asset_content_type: application/tar+gzip - name: Upload aarch64 asset id: upload-release-asset-aarch64 - uses: actions/upload-release-asset@master + uses: actions/upload-release-asset@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ steps.create_release.outputs.upload_url }} - asset_path: ./yay_aarch64/yay_${{ steps.tags.outputs.version }}_aarch64.tar.gz + asset_path: ./yay_${{ steps.tags.outputs.version }}_aarch64.tar.gz asset_name: yay_${{ steps.tags.outputs.version }}_aarch64.tar.gz asset_content_type: application/tar+gzip diff --git a/.golangci.yml b/.golangci.yml new file mode 100644 index 00000000..6fd28bef --- /dev/null +++ b/.golangci.yml @@ -0,0 +1,100 @@ +linters-settings: + dupl: + threshold: 100 + funlen: + lines: 100 + statements: 50 + goconst: + min-len: 2 + min-occurrences: 2 + gocritic: + enabled-tags: + - diagnostic + - experimental + - opinionated + - performance + - style + disabled-checks: + - dupImport # https://github.com/go-critic/go-critic/issues/845 + - ifElseChain + - octalLiteral + - whyNoLint + - wrapperFunc + gocyclo: + min-complexity: 15 + goimports: + local-prefixes: github.com/Jguer/yay/v9 + golint: + min-confidence: 0 + gomnd: + settings: + mnd: + # don't include the "operation" and "assign" + checks: argument,case,condition,return + govet: + check-shadowing: true + lll: + line-length: 140 + maligned: + suggest-new: true + misspell: + locale: US + +linters: + # please, do not use `enable-all`: it's deprecated and will be removed soon. + # inverted configuration with `enable-all` and `disable` is not scalable during updates of golangci-lint + disable-all: true + enable: + - bodyclose + - deadcode + - depguard + - dogsled + - dupl + - errcheck + - funlen + - gochecknoinits + - goconst + - gocritic + - gocyclo + - gofmt + - goimports + - golint + - gomnd + - goprintffuncname + - gosec + - gosimple + - govet + - ineffassign + - interfacer + - lll + - misspell + - nakedret + - rowserrcheck + - scopelint + - staticcheck + - structcheck + - stylecheck + - typecheck + - unconvert + - unparam + - unused + - varcheck + - whitespace + + - godox + - maligned + - prealloc + +issues: + # Excluding configuration per-path, per-linter, per-text and per-source + exclude-rules: + - path: _test\.go + linters: + - gomnd + +run: + skip-dirs: + - test/testdata_etc + - internal/cache + - internal/renameio + - internal/robustio