Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion .gitattributes
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
site/* linguist-documentation
vendor/* linguist-vendored
vendor/* linguist-vendored
*.go text eol=lf
21 changes: 6 additions & 15 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,5 @@
name: ci

name: Runs Tests
on: [push, pull_request]

jobs:
build:
runs-on: ubuntu-latest
Expand All @@ -15,22 +13,15 @@ jobs:
- 1.19.x
- 1.18.x
- 1.17.x
- 1.16.x
- 1.15.x
- 1.14.x
- 1.13.x
- 1.12.x
- 1.11.x
os: [ubuntu-latest, macos-latest, windows-latest]
steps:
- uses: actions/checkout@v3
- name: Checkout code
uses: actions/checkout@v5
- name: Set up Go ${{ matrix.go-version }}
uses: actions/setup-go@v4
uses: actions/setup-go@v6
with:
go-version: ${{ matrix.go-version }}

- name: Test
run: |
go vet ./...
go test -tags CI -race ./...
run: go test -v -vet=all -tags CI -race ./...
env:
GOPATH: /home/runner/go
30 changes: 30 additions & 0 deletions .github/workflows/lint.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
name: golangci-lint
on:
push:
branches:
- main
- master
pull_request:

permissions:
contents: read
# Optional: allow read access to pull requests. Use with `only-new-issues` option.
# pull-requests: read

jobs:
golangci:
strategy:
matrix:
go: [stable]
os: [ubuntu-latest, macos-latest, windows-latest]
name: lint
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v5
- uses: actions/setup-go@v6
with:
go-version: ${{ matrix.go }}
- name: golangci-lint
uses: golangci/golangci-lint-action@v9
with:
version: v2.11.2
225 changes: 225 additions & 0 deletions .golangci.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,225 @@
version = '2'

[run]
issues-exit-code = 1
tests = true
allow-parallel-runners = false
relative-path-mode = 'gitroot'

[output]
path-prefix = ''

[output.formats]
[output.formats.text]
path = 'stdout'
print-linter-name = true
print-issued-lines = true

[linters]
default = 'all'
disable = [
'asciicheck',
'canonicalheader',
'containedctx',
'copyloopvar', # Not applicable in go versions under 1.22
'cyclop',
'depguard',
'dogsled',
'dupl',
'dupword',
'err113',
'errcheck',
'exhaustive',
'exhaustruct',
'forbidigo',
'funlen',
'gochecknoglobals',
'gocognit',
'goconst',
'gocyclo',
'godox',
'goheader',
'gomoddirectives',
'importas',
'inamedparam',
'intrange',
'ireturn',
'lll',
'mnd',
'musttag',
'nilnil',
'nlreturn',
'noinlineerr',
'nonamedreturns',
'paralleltest',
'perfsprint',
'prealloc',
'promlinter',
'protogetter',
'tagliatelle',
'testpackage',
'thelper',
'unparam',
'varnamelen',
'wastedassign',
'whitespace',
'wrapcheck',
'wsl',
'wsl_v5'
]

[linters.settings]
[linters.settings.errorlint]
errorf = true
asserts = true
comparison = true

[linters.settings.forbidigo]
[[linters.settings.forbidigo.forbid]]
pattern = 'time.After\.*(# use of time After can create memory allocation issues see https://github.com/github/go-linter/tree/main/doc/time_after.md )?'

[linters.settings.gocritic]
disabled-checks = [
'importShadow',
# 'unnamedResult'
]
enabled-tags = [
'diagnostic',
'performance',
'style'
]

[linters.settings.gocritic.settings]
[linters.settings.gocritic.settings.hugeParam]
sizeThreshold = 256

[linters.settings.gocritic.settings.rangeValCopy]
sizeThreshold = 256

[linters.settings.gosec]
excludes = [
'G204',
'G304',
'G307',
'G702',
'G706'
]

[linters.settings.gosec.config]
[linters.settings.gosec.config.G104]
# os = ['Setenv']

[linters.settings.govet]
disable = [
'shadow',
'fieldalignment'
]
enable-all = true

[linters.settings.nestif]
min-complexity = 9

[linters.settings.nolintlint]
require-explanation = true
require-specific = true
allow-unused = false

# [linters.settings.recvcheck]
# exclusions = ['*.UnmarshalJSON']

[linters.settings.revive]
confidence = 0.8
severity = 'error'
enable-all-rules = true

[[linters.settings.revive.rules]]
name = 'comment-spacings'
arguments = [
'nolint'
]
disabled = false

[[linters.settings.revive.rules]]
name = 'argument-limit'
disabled = true

[[linters.settings.revive.rules.arguments]]
acceptIgnoredAssertionResult = false

[[linters.settings.revive.rules]]
name = 'unhandled-error'
arguments = [
'fmt.Print',
'fmt.Printf',
'fmt.Println',
'os.Setenv',
'os.Unsetenv'
]
disabled = false

[[linters.settings.revive.rules]]
name = 'add-constant'
disabled = true

[[linters.settings.revive.rules]]
name = 'flag-parameter'
disabled = true

[[linters.settings.revive.rules]]
name = 'blank-imports'
disabled = false

[[linters.settings.revive.rules]]
name = 'cognitive-complexity'
disabled = true

[[linters.settings.revive.rules]]
name = 'constant-logical-expr'
disabled = false

[[linters.settings.revive.rules]]
name = 'cyclomatic'
disabled = true

[[linters.settings.revive.rules]]
name = 'file-header'
disabled = false

[[linters.settings.revive.rules]]
name = 'function-length'
disabled = true

[[linters.settings.revive.rules]]
name = 'get-return'
disabled = false

[[linters.settings.revive.rules]]
name = 'line-length-limit'
disabled = true

[[linters.settings.revive.rules]]
name = 'max-public-structs'
disabled = true

[[linters.settings.revive.rules]]
name = 'optimize-operands-order'
disabled = false

[[linters.settings.revive.rules]]
name = 'use-any'
disabled = true

[issues]
max-issues-per-linter = 0
max-same-issues = 0
uniq-by-line = true
new = false
fix = false

[severity]
default = 'error'

[formatters]
enable = [
'goimports'
]
2 changes: 1 addition & 1 deletion go.mod
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
module github.com/magefile/mage

go 1.12
go 1.17
7 changes: 0 additions & 7 deletions install_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@
package main

import (
"io/ioutil"
"os"
"os/exec"
"path/filepath"
Expand All @@ -13,12 +12,6 @@ import (
)

func TestBootstrap(t *testing.T) {
dir, err := ioutil.TempDir("", "")
if err != nil {
t.Fatal(err)
}
defer os.RemoveAll(dir)

s, err := run("go", "run", "bootstrap.go")
if err != nil {
t.Fatal(s)
Expand Down
Loading