ci: replace superlinter with megalinter (#923)
* ci: replace superlinter with megalinter Signed-off-by: hackercat <me@hackerc.at> * fix: apply lint recommendations Signed-off-by: hackercat <me@hackerc.at>
This commit is contained in:
parent
adabf2a202
commit
9be6a58c0e
15 changed files with 58 additions and 56 deletions
|
@ -8,14 +8,10 @@ trim_trailing_whitespace = true
|
|||
indent_style = tab
|
||||
indent_size = 4
|
||||
|
||||
[*.sh]
|
||||
indent_style = space
|
||||
indent_size = 2
|
||||
|
||||
[{Dockerfile,*.md,*_test.go}]
|
||||
[{Dockerfile,*.md,*_test.go,install.sh,act-cli.nuspec}]
|
||||
indent_style = unset
|
||||
indent_size = unset
|
||||
|
||||
[*.{yml,yaml,json}]
|
||||
[*.{yml,yaml,js{,on}}]
|
||||
indent_style = space
|
||||
indent_size = 2
|
||||
|
|
12
.github/dependabot.yml
vendored
12
.github/dependabot.yml
vendored
|
@ -5,11 +5,11 @@
|
|||
|
||||
version: 2
|
||||
updates:
|
||||
- package-ecosystem: "github-actions"
|
||||
directory: "/"
|
||||
- package-ecosystem: 'github-actions'
|
||||
directory: '/'
|
||||
schedule:
|
||||
interval: "weekly"
|
||||
- package-ecosystem: "gomod"
|
||||
directory: "/"
|
||||
interval: 'weekly'
|
||||
- package-ecosystem: 'gomod'
|
||||
directory: '/'
|
||||
schedule:
|
||||
interval: "weekly"
|
||||
interval: 'weekly'
|
||||
|
|
1
.github/linters/.golangci.yml
vendored
1
.github/linters/.golangci.yml
vendored
|
@ -1 +0,0 @@
|
|||
../../.golangci.yml
|
1
.github/linters/.markdown-lint.yml
vendored
1
.github/linters/.markdown-lint.yml
vendored
|
@ -1 +0,0 @@
|
|||
../../.markdownlint.yml
|
16
.github/workflows/checks.yml
vendored
16
.github/workflows/checks.yml
vendored
|
@ -5,6 +5,7 @@ env:
|
|||
ACT_OWNER: ${{ github.repository_owner }}
|
||||
ACT_REPOSITORY: ${{ github.repository }}
|
||||
GO_VERSION: 1.17
|
||||
CGO_ENABLED: 0
|
||||
|
||||
jobs:
|
||||
lint:
|
||||
|
@ -18,22 +19,15 @@ jobs:
|
|||
with:
|
||||
go-version: ${{ env.GO_VERSION }}
|
||||
- uses: golangci/golangci-lint-action@v2
|
||||
env:
|
||||
CGO_ENABLED: 0
|
||||
with:
|
||||
version: latest
|
||||
- uses: github/super-linter@v3
|
||||
- uses: megalinter/megalinter/flavors/go@v5
|
||||
env:
|
||||
DEFAULT_BRANCH: master
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
FILTER_REGEX_EXCLUDE: .*testdata/*
|
||||
VALIDATE_ALL_CODEBASE: false
|
||||
VALIDATE_BASH: false
|
||||
VALIDATE_DOCKERFILE: false
|
||||
VALIDATE_DOCKERFILE_HADOLINT: false
|
||||
VALIDATE_GO: false # it's broken, see commit message
|
||||
VALIDATE_JSCPD: false
|
||||
VALIDATE_SHELL_SHFMT: false
|
||||
GITHUB_STATUS_REPORTER: ${{ !env.ACT }}
|
||||
GITHUB_COMMENT_REPORTER: ${{ !env.ACT }}
|
||||
|
||||
test-linux:
|
||||
name: test-linux
|
||||
|
@ -55,8 +49,6 @@ jobs:
|
|||
restore-keys: |
|
||||
${{ runner.os }}-go-
|
||||
- run: go test -v -cover -coverprofile=coverage.txt -covermode=atomic ./...
|
||||
env:
|
||||
CGO_ENABLED: 0
|
||||
- name: Upload Codecov report
|
||||
uses: codecov/codecov-action@v2.1.0
|
||||
with:
|
||||
|
|
4
.gitignore
vendored
4
.gitignore
vendored
|
@ -29,5 +29,5 @@ coverage.txt
|
|||
.env
|
||||
.secrets
|
||||
|
||||
# ignore docker registry from .github/workflows/checks.yml
|
||||
docker-registry/
|
||||
# megalinter
|
||||
report/
|
||||
|
|
|
@ -2,6 +2,9 @@
|
|||
run:
|
||||
timeout: 3m
|
||||
|
||||
skip-dirs:
|
||||
- report # megalinter results+fixes
|
||||
|
||||
linters-settings:
|
||||
gocyclo:
|
||||
# minimal code complexity to report, 30 by default (but we recommend 10-20)
|
||||
|
@ -43,3 +46,6 @@ linters:
|
|||
- misspell
|
||||
- depguard
|
||||
- importas
|
||||
- contextcheck
|
||||
- nolintlint
|
||||
- revive
|
||||
|
|
|
@ -10,15 +10,15 @@ builds:
|
|||
- windows
|
||||
goarch:
|
||||
- amd64
|
||||
- 386
|
||||
- '386'
|
||||
- arm64
|
||||
- arm
|
||||
goarm:
|
||||
- 6
|
||||
- 7
|
||||
- '6'
|
||||
- '7'
|
||||
ignore:
|
||||
- goos: windows
|
||||
goarm: 6
|
||||
goarm: '6'
|
||||
checksum:
|
||||
name_template: 'checksums.txt'
|
||||
archives:
|
||||
|
|
|
@ -2,7 +2,8 @@
|
|||
default: true
|
||||
|
||||
# MD013/line-length - Line length
|
||||
MD013: false
|
||||
MD013:
|
||||
line_length: 1024
|
||||
|
||||
# MD033/no-inline-html - Inline HTML
|
||||
MD033: false
|
||||
|
|
17
.mega-linter.yml
Normal file
17
.mega-linter.yml
Normal file
|
@ -0,0 +1,17 @@
|
|||
---
|
||||
APPLY_FIXES: none
|
||||
DISABLE:
|
||||
- ACTION
|
||||
- BASH
|
||||
- COPYPASTE
|
||||
- DOCKERFILE
|
||||
- GO
|
||||
- JAVASCRIPT
|
||||
- SPELL
|
||||
DISABLE_LINTERS:
|
||||
- YAML_YAMLLINT
|
||||
- MARKDOWN_MARKDOWN_TABLE_FORMATTER
|
||||
FILTER_REGEX_EXCLUDE: .*testdata/*
|
||||
MARKDOWN_MARKDOWNLINT_CONFIG_FILE: .markdownlint.yml
|
||||
PARALLEL: false
|
||||
PRINT_ALPACA: false
|
12
Makefile
12
Makefile
|
@ -54,16 +54,10 @@ lint-md:
|
|||
.PHONY: lint-rest
|
||||
lint-rest:
|
||||
docker run --rm -it \
|
||||
-e 'RUN_LOCAL=true' \
|
||||
-e 'FILTER_REGEX_EXCLUDE=.*testdata/*' \
|
||||
-e 'VALIDATE_BASH=false' \
|
||||
-e 'VALIDATE_DOCKERFILE=false' \
|
||||
-e 'VALIDATE_DOCKERFILE_HADOLINT=false' \
|
||||
-e 'VALIDATE_GO=false' \
|
||||
-e 'VALIDATE_JSCPD=false' \
|
||||
-e 'VALIDATE_SHELL_SHFMT=false' \
|
||||
-v $(PWD):/tmp/lint \
|
||||
github/super-linter
|
||||
-e GITHUB_STATUS_REPORTER=false \
|
||||
-e GITHUB_COMMENT_REPORTER=false \
|
||||
megalinter/megalinter-go:v5
|
||||
|
||||
.PHONY: lint
|
||||
lint: lint-go lint-rest
|
||||
|
|
|
@ -88,8 +88,7 @@ func NewContainer(input *NewContainerInput) Container {
|
|||
|
||||
// supportsContainerImagePlatform returns true if the underlying Docker server
|
||||
// API version is 1.41 and beyond
|
||||
func supportsContainerImagePlatform(cli *client.Client) bool {
|
||||
ctx := context.TODO()
|
||||
func supportsContainerImagePlatform(ctx context.Context, cli *client.Client) bool {
|
||||
logger := common.Logger(ctx)
|
||||
ver, err := cli.ServerVersion(ctx)
|
||||
if err != nil {
|
||||
|
@ -290,7 +289,7 @@ func (cr *containerReference) remove() common.Executor {
|
|||
}
|
||||
|
||||
logger := common.Logger(ctx)
|
||||
err := cr.cli.ContainerRemove(context.Background(), cr.id, types.ContainerRemoveOptions{
|
||||
err := cr.cli.ContainerRemove(ctx, cr.id, types.ContainerRemoveOptions{
|
||||
RemoveVolumes: true,
|
||||
Force: true,
|
||||
})
|
||||
|
@ -333,7 +332,7 @@ func (cr *containerReference) create(capAdd []string, capDrop []string) common.E
|
|||
}
|
||||
|
||||
var platSpecs *specs.Platform
|
||||
if supportsContainerImagePlatform(cr.cli) && cr.input.Platform != "" {
|
||||
if supportsContainerImagePlatform(ctx, cr.cli) && cr.input.Platform != "" {
|
||||
desiredPlatform := strings.SplitN(cr.input.Platform, `/`, 2)
|
||||
|
||||
if len(desiredPlatform) != 2 {
|
||||
|
|
|
@ -158,24 +158,24 @@ func (*expressionEvaluator) advString(w *strings.Builder, r *strings.Reader) err
|
|||
return err
|
||||
}
|
||||
if c != '\'' {
|
||||
w.WriteRune(c) //nolint
|
||||
w.WriteRune(c)
|
||||
continue
|
||||
}
|
||||
|
||||
// Handles a escaped string: ex. 'It''s ok'
|
||||
c, _, err = r.ReadRune()
|
||||
if err != nil {
|
||||
w.WriteString("'") //nolint
|
||||
w.WriteString("'")
|
||||
return err
|
||||
}
|
||||
if c != '\'' {
|
||||
w.WriteString("'") //nolint
|
||||
w.WriteString("'")
|
||||
if err := r.UnreadRune(); err != nil {
|
||||
return err
|
||||
}
|
||||
break
|
||||
}
|
||||
w.WriteString(`\'`) //nolint
|
||||
w.WriteString(`\'`)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
@ -192,7 +192,7 @@ func (*expressionEvaluator) advPropertyName(w *strings.Builder, r *strings.Reade
|
|||
}
|
||||
break
|
||||
}
|
||||
w.WriteRune(c) //nolint
|
||||
w.WriteRune(c)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
|
|
@ -342,7 +342,7 @@ func (rc *RunContext) newStepExecutor(step *model.Step) common.Executor {
|
|||
rc.ExprEval = exprEval
|
||||
|
||||
common.Logger(ctx).Infof("\u2B50 Run %s", sc.Step)
|
||||
err = sc.Executor()(ctx)
|
||||
err = sc.Executor(ctx)(ctx)
|
||||
if err == nil {
|
||||
common.Logger(ctx).Infof(" \u2705 Success - %s", sc.Step)
|
||||
} else {
|
||||
|
|
|
@ -46,7 +46,7 @@ func (e formatError) Error() string {
|
|||
}
|
||||
|
||||
// Executor for a step context
|
||||
func (sc *StepContext) Executor() common.Executor {
|
||||
func (sc *StepContext) Executor(ctx context.Context) common.Executor {
|
||||
rc := sc.RunContext
|
||||
step := sc.Step
|
||||
|
||||
|
@ -92,7 +92,7 @@ func (sc *StepContext) Executor() common.Executor {
|
|||
Token: github.Token,
|
||||
})
|
||||
var ntErr common.Executor
|
||||
if err := gitClone(context.TODO()); err != nil {
|
||||
if err := gitClone(ctx); err != nil {
|
||||
if err.Error() == "short SHA references are not supported" {
|
||||
err = errors.Cause(err)
|
||||
return common.NewErrorExecutor(fmt.Errorf("Unable to resolve action `%s`, the provided ref `%s` is the shortened version of a commit SHA, which is not supported. Please use the full commit SHA `%s` instead", step.Uses, remoteAction.Ref, err.Error()))
|
||||
|
@ -482,7 +482,6 @@ func (sc *StepContext) getContainerActionPaths(step *model.Step, actionDir strin
|
|||
return actionName, containerActionDir
|
||||
}
|
||||
|
||||
// nolint: gocyclo
|
||||
func (sc *StepContext) runAction(actionDir string, actionPath string, localAction bool) common.Executor {
|
||||
rc := sc.RunContext
|
||||
step := sc.Step
|
||||
|
@ -704,7 +703,7 @@ func (sc *StepContext) execAsComposite(ctx context.Context, step *model.Step, _
|
|||
|
||||
stepContext.Step = &stepClone
|
||||
|
||||
executors = append(executors, stepContext.Executor())
|
||||
executors = append(executors, stepContext.Executor(ctx))
|
||||
}
|
||||
return common.NewPipelineExecutor(executors...)(ctx)
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue