fix(ci): add stricter linting settings and fix upload issues

This commit is contained in:
jguer 2020-05-02 10:27:28 +02:00
parent 023c742490
commit e7b1fe4d53
No known key found for this signature in database
GPG key ID: 6D6CC9BEA8556B35
3 changed files with 137 additions and 38 deletions

View file

@ -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

View file

@ -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

100
.golangci.yml Normal file
View file

@ -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