234 lines
3.4 KiB
Markdown
234 lines
3.4 KiB
Markdown
|
# Throw away pastebin
|
||
|
|
||
|
Just a place to throw away some text.
|
||
|
|
||
|
## GitHub Actions
|
||
|
|
||
|
`dependabot.yml`:
|
||
|
|
||
|
```yaml
|
||
|
version: 2
|
||
|
updates:
|
||
|
- package-ecosystem: "gomod"
|
||
|
directory: "/"
|
||
|
schedule:
|
||
|
interval: "daily"
|
||
|
- package-ecosystem: "github-actions"
|
||
|
directory: "/"
|
||
|
schedule:
|
||
|
interval: "daily"
|
||
|
```
|
||
|
|
||
|
`go.yml`:
|
||
|
|
||
|
```yaml
|
||
|
name: Go
|
||
|
|
||
|
on:
|
||
|
push:
|
||
|
branches:
|
||
|
- main
|
||
|
paths:
|
||
|
- "**.go"
|
||
|
- "go.mod"
|
||
|
- "go.sum"
|
||
|
pull_request:
|
||
|
branches:
|
||
|
- main
|
||
|
paths:
|
||
|
- "**.go"
|
||
|
- "go.mod"
|
||
|
- "go.sum"
|
||
|
|
||
|
concurrency:
|
||
|
group: ${{ github.workflow }}-${{ github.ref }}
|
||
|
cancel-in-progress: true
|
||
|
|
||
|
jobs:
|
||
|
test:
|
||
|
name: Test
|
||
|
runs-on: ubuntu-latest
|
||
|
steps:
|
||
|
- uses: actions/checkout@v3
|
||
|
- uses: actions/setup-go@v4
|
||
|
with:
|
||
|
go-version: "stable"
|
||
|
- run: go test -race -failfast ./...
|
||
|
build:
|
||
|
name: Build
|
||
|
runs-on: ${{ matrix.os }}
|
||
|
strategy:
|
||
|
matrix:
|
||
|
os: [ubuntu-latest, macos-latest, windows-latest]
|
||
|
steps:
|
||
|
- uses: actions/checkout@v3
|
||
|
- uses: actions/setup-go@v4
|
||
|
with:
|
||
|
go-version: "stable"
|
||
|
- run: go build .
|
||
|
golangci-lint:
|
||
|
name: golangci-lint
|
||
|
runs-on: ubuntu-latest
|
||
|
steps:
|
||
|
- uses: actions/checkout@v3
|
||
|
with:
|
||
|
fetch-depth: 0
|
||
|
- uses: actions/setup-go@v4
|
||
|
with:
|
||
|
go-version: "stable"
|
||
|
- uses: golangci/golangci-lint-action@v3
|
||
|
with:
|
||
|
version: latest
|
||
|
```
|
||
|
|
||
|
## Go
|
||
|
|
||
|
`.golangci.yml`:
|
||
|
|
||
|
```yaml
|
||
|
run:
|
||
|
timeout: 5m
|
||
|
tests: false
|
||
|
skip-dirs:
|
||
|
- ".*test.*"
|
||
|
- ".*mock.*"
|
||
|
- ".*example.*"
|
||
|
- ".*utils.*"
|
||
|
skip-files:
|
||
|
- ".*Mock.*"
|
||
|
- ".*_mock.*"
|
||
|
|
||
|
output:
|
||
|
sort-results: true
|
||
|
|
||
|
linters:
|
||
|
disable-all: true
|
||
|
enable:
|
||
|
# Default
|
||
|
- errcheck
|
||
|
- gosimple
|
||
|
- govet
|
||
|
- ineffassign
|
||
|
- staticcheck
|
||
|
- typecheck
|
||
|
- unused
|
||
|
# Custom
|
||
|
- errchkjson
|
||
|
- errname
|
||
|
- errorlint
|
||
|
- execinquery
|
||
|
- forcetypeassert
|
||
|
- gocritic
|
||
|
- goerr113
|
||
|
- gofumpt
|
||
|
- gosec
|
||
|
- importas
|
||
|
- makezero
|
||
|
- nilnil
|
||
|
- noctx
|
||
|
- prealloc
|
||
|
- reassign
|
||
|
# - rowserrcheck
|
||
|
- sqlclosecheck
|
||
|
- unconvert
|
||
|
# - wastedassign
|
||
|
fast: true
|
||
|
|
||
|
linters-settings:
|
||
|
# Default
|
||
|
govet:
|
||
|
check-shadowing: false
|
||
|
disable-all: true
|
||
|
enable:
|
||
|
- assign
|
||
|
- atomic
|
||
|
- bools
|
||
|
- buildtag
|
||
|
- composites
|
||
|
- copylocks
|
||
|
- fieldalignment
|
||
|
- httpresponse
|
||
|
- loopclosure
|
||
|
- lostcancel
|
||
|
- nilfunc
|
||
|
- printf
|
||
|
- unmarshal
|
||
|
- unreachable
|
||
|
- unusedresult
|
||
|
staticcheck:
|
||
|
checks: ["all", "-SA1019"]
|
||
|
# Custom
|
||
|
gocritic:
|
||
|
disabled-checks:
|
||
|
- ifElseChain
|
||
|
- singleCaseSwitch
|
||
|
- unnamedResult
|
||
|
- whyNoLint
|
||
|
enabled-tags:
|
||
|
- diagnostic
|
||
|
- style
|
||
|
gosec:
|
||
|
excludes:
|
||
|
- G101
|
||
|
- G112
|
||
|
- G402
|
||
|
- G404
|
||
|
- G501
|
||
|
- G505
|
||
|
exclude-generated: true
|
||
|
reassign:
|
||
|
patterns:
|
||
|
- ".*"
|
||
|
```
|
||
|
|
||
|
`.goreleaser.yml`:
|
||
|
|
||
|
```yaml
|
||
|
before:
|
||
|
hooks:
|
||
|
- go mod tidy
|
||
|
builds:
|
||
|
- main: .
|
||
|
goos:
|
||
|
- linux
|
||
|
- windows
|
||
|
- darwin
|
||
|
goarch:
|
||
|
- amd64
|
||
|
- arm64
|
||
|
universal_binaries:
|
||
|
- replace: true
|
||
|
archives:
|
||
|
- format_overrides:
|
||
|
- goos: windows
|
||
|
format: zip
|
||
|
changelog:
|
||
|
skip: false
|
||
|
use: github
|
||
|
```
|
||
|
|
||
|
## Misc
|
||
|
|
||
|
`.gitignore`:
|
||
|
|
||
|
```txt
|
||
|
# macOS
|
||
|
.DS_Store
|
||
|
|
||
|
# Window
|
||
|
*.exe
|
||
|
|
||
|
# IntelliJ
|
||
|
.idea
|
||
|
|
||
|
# VSCode
|
||
|
.vscode
|
||
|
|
||
|
# Go
|
||
|
coverage.out
|
||
|
vendor
|
||
|
|
||
|
# GoReleaser
|
||
|
dist
|
||
|
```
|