summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.editorconfig8
-rw-r--r--.github/dependabot.yml12
l---------.github/linters/.golangci.yml1
l---------.github/linters/.markdown-lint.yml1
-rw-r--r--.github/workflows/checks.yml16
-rw-r--r--.gitignore4
-rw-r--r--.golangci.yml6
-rw-r--r--.goreleaser.yml8
-rw-r--r--.markdownlint.yml3
-rw-r--r--.mega-linter.yml17
-rw-r--r--Makefile12
-rw-r--r--pkg/container/docker_run.go7
-rw-r--r--pkg/runner/expression.go10
-rw-r--r--pkg/runner/run_context.go2
-rw-r--r--pkg/runner/step_context.go7
15 files changed, 58 insertions, 56 deletions
diff --git a/.editorconfig b/.editorconfig
index 8f8872f..4b9db1d 100644
--- a/.editorconfig
+++ b/.editorconfig
@@ -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
diff --git a/.github/dependabot.yml b/.github/dependabot.yml
index 1ba1f3b..c15de11 100644
--- a/.github/dependabot.yml
+++ b/.github/dependabot.yml
@@ -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'
diff --git a/.github/linters/.golangci.yml b/.github/linters/.golangci.yml
deleted file mode 120000
index d531ead..0000000
--- a/.github/linters/.golangci.yml
+++ /dev/null
@@ -1 +0,0 @@
-../../.golangci.yml \ No newline at end of file
diff --git a/.github/linters/.markdown-lint.yml b/.github/linters/.markdown-lint.yml
deleted file mode 120000
index 7e62b3d..0000000
--- a/.github/linters/.markdown-lint.yml
+++ /dev/null
@@ -1 +0,0 @@
-../../.markdownlint.yml \ No newline at end of file
diff --git a/.github/workflows/checks.yml b/.github/workflows/checks.yml
index ae43ebd..d34c472 100644
--- a/.github/workflows/checks.yml
+++ b/.github/workflows/checks.yml
@@ -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:
diff --git a/.gitignore b/.gitignore
index 6369f14..2415210 100644
--- a/.gitignore
+++ b/.gitignore
@@ -29,5 +29,5 @@ coverage.txt
.env
.secrets
-# ignore docker registry from .github/workflows/checks.yml
-docker-registry/
+# megalinter
+report/
diff --git a/.golangci.yml b/.golangci.yml
index c18887f..f48e55c 100644
--- a/.golangci.yml
+++ b/.golangci.yml
@@ -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
diff --git a/.goreleaser.yml b/.goreleaser.yml
index c7de3c9..4a819cd 100644
--- a/.goreleaser.yml
+++ b/.goreleaser.yml
@@ -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:
diff --git a/.markdownlint.yml b/.markdownlint.yml
index bb91f2f..4464e3b 100644
--- a/.markdownlint.yml
+++ b/.markdownlint.yml
@@ -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
diff --git a/.mega-linter.yml b/.mega-linter.yml
new file mode 100644
index 0000000..83c85c5
--- /dev/null
+++ b/.mega-linter.yml
@@ -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
diff --git a/Makefile b/Makefile
index 9dc4352..bdf9385 100644
--- a/Makefile
+++ b/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
diff --git a/pkg/container/docker_run.go b/pkg/container/docker_run.go
index bf6d6f3..2077a8e 100644
--- a/pkg/container/docker_run.go
+++ b/pkg/container/docker_run.go
@@ -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 {
diff --git a/pkg/runner/expression.go b/pkg/runner/expression.go
index ac02455..72ff56c 100644
--- a/pkg/runner/expression.go
+++ b/pkg/runner/expression.go
@@ -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
}
diff --git a/pkg/runner/run_context.go b/pkg/runner/run_context.go
index cfe37ac..ea39dd0 100644
--- a/pkg/runner/run_context.go
+++ b/pkg/runner/run_context.go
@@ -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 {
diff --git a/pkg/runner/step_context.go b/pkg/runner/step_context.go
index 00c1527..1485f69 100644
--- a/pkg/runner/step_context.go
+++ b/pkg/runner/step_context.go
@@ -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)
}