1
0
Fork 0
mirror of https://code.forgejo.org/forgejo/runner.git synced 2025-08-06 17:40:58 +00:00

Add super-linter + fix lint issues (#650)

* feat: bump `golangci-lint`, add `super-linter`, replace outdated linter

Bump `golangci-lint` version.
Add `super-linter` to lint other languages.
Go linter is disabled because it's currently broken:
https://github.com/github/super-linter/pull/370
Replacing `scopelint` with `exportloopref`: "[runner] The linter
'scopelint' is deprecated (since v1.39.0) due to: The repository of the
linter has been deprecated by the owner.  Replaced by exportloopref."
Fixed formatting in `.golangci.yml`
Add addtional linters:
  `misspell`: purely style, detects typos in comments
  `whitespace`: detects leading and trailing whitespace
  `goimports`: it's gofmt + checks unused imports

* fix: lint/fix `go` files

* fix: lint with `standardjs`

* fix: lint/fix with `markdownlint`, make template more verbose

* feat: add lint stuff to makefile

* fix: `UseGitIgnore` formatting

* fix: lint/fix `README.md`

Co-authored-by: Casey Lee <cplee@nektos.com>
This commit is contained in:
Ryan (hackercat) 2021-05-03 18:52:03 +02:00 committed by GitHub
parent eab73d227f
commit 69b692b962
19 changed files with 66 additions and 49 deletions

View file

@ -1,20 +1,23 @@
---
name: Issue
about: Use this template for reporting a bug/issue.
title: "Issue: "
title: "Issue: <shortly describe issue>"
labels: kind/bug
assignees: ''
---
<!--
- Make sure you are able to reproduce it on the [latest version](https://github.com/nektos/act/releases)
- Search the existing issues.
- Refer to [README](https://github.com/nektos/act/blob/master/README.md).
- Make sure you are able to reproduce it on the [latest version](https://github.com/nektos/act/releases)
- Search the existing issues.
- Refer to [README](https://github.com/nektos/act/blob/master/README.md).
-->
## Act version
<!-- Paste output of `act --version` -->
<!--
- Paste output of `act --version` inside the code block below
- If you've built `act` yourself, please provide commit hash
-->
```none
@ -22,14 +25,23 @@ assignees: ''
## Expected behaviour
<!-- Describe how whole process should go and finish -->
<!--
- Describe how whole process should go and finish
-->
## Actual behaviour
<!-- Describe what happened -->
<!--
- Describe the issue
-->
## Workflow and/or repository
<!--
- Provide workflow with which we can reproduce the issue
OR
- Provide link to your GitHub repository that contains the workflow
<details>
<summary>workflow</summary>
@ -47,23 +59,23 @@ jobs:
## Steps to reproduce
<!--
Make sure to include command you used to run `act`
e.g.:
1. Clone example repo (https://github.com/cplee/github-actions-demo)
2. Enter cloned repo directory
3. Run `act -s SUPER_SECRET=im-a-value`
- Make sure to include full command with parameters you used to run `act`, example:
1. Clone example repo (https://github.com/cplee/github-actions-demo)
2. Enter cloned repo directory
3. Run `act -s SUPER_SECRET=im-a-value`
-->
## `act` output
<!-- Paste output from your terminal, use `-v` or `--verbose` for richer output -->
<!--
- Use `act` with `-v`/`--verbose` and paste output from your terminal in code block below
-->
<details>
<summary>Log</summary>
```none
PASTE YOUR LOG HERE
```
</details>

1
.github/linters/.golangci.yml vendored Symbolic link
View file

@ -0,0 +1 @@
../../.golangci.yml

11
.github/linters/.markdown-lint.yml vendored Normal file
View file

@ -0,0 +1,11 @@
# Default state for all rules
default: true
# MD013/line-length - Line length
MD013: false
# MD033/no-inline-html - Inline HTML
MD033: false
# MD041/first-line-heading/first-line-h1 - First line in a file should be a top-level heading
MD041: false

View file

@ -7,6 +7,8 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 0
- uses: actions/setup-go@v1
with:
go-version: 1.16
@ -14,7 +16,19 @@ jobs:
env:
CGO_ENABLED: 0
with:
version: v1.32.2
version: v1.39.0
- uses: github/super-linter@v3
env:
DEFAULT_BRANCH: master
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
FILTER_REGEX_EXCLUDE: .*testdata/*
VALIDATE_ALL_CODEBASE: ${{ github.event_name != 'pull_request' }} # lint only new changes when pull_request
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
test:
name: Test on Linux

View file

@ -28,7 +28,6 @@ func CopyFile(source string, dest string) (err error) {
if err != nil {
_ = os.Chmod(dest, sourceinfo.Mode())
}
}
return
@ -36,7 +35,6 @@ func CopyFile(source string, dest string) (err error) {
// CopyDir recursive copy of directory
func CopyDir(source string, dest string) (err error) {
// get properties of source dir
sourceinfo, err := os.Stat(source)
if err != nil {
@ -55,7 +53,6 @@ func CopyDir(source string, dest string) (err error) {
objects, err := directory.Readdir(-1)
for _, obj := range objects {
sourcefilepointer := source + "/" + obj.Name()
destinationfilepointer := dest + "/" + obj.Name()
@ -73,7 +70,6 @@ func CopyDir(source string, dest string) (err error) {
fmt.Println(err)
}
}
}
return err
}

View file

@ -301,7 +301,6 @@ func NewGitCloneExecutor(input NewGitCloneExecutorInput) Executor {
// Repos on disk point to commit hashes, and need to checkout input.Ref before
// we try and pull down any changes
if hash.String() != input.Ref {
// Run git fetch to make sure we have the latest sha
err := r.Fetch(&git.FetchOptions{})
if err != nil && !errors.Is(err, git.NoErrAlreadyUpToDate) {

View file

@ -40,7 +40,6 @@ func TestFindGitSlug(t *testing.T) {
assert.Equal(tt.provider, provider)
assert.Equal(tt.slug, slug)
}
}
func testDir(t *testing.T) string {

View file

@ -63,7 +63,6 @@ func NewDockerBuildExecutor(input NewDockerBuildExecutorInput) common.Executor {
}
return nil
}
}
func createBuildContext(contextDir string, relDockerfile string) (io.ReadCloser, error) {
log.Debugf("Creating archive for build context dir '%s' with relative dockerfile '%s'", contextDir, relDockerfile)

View file

@ -62,9 +62,7 @@ func NewDockerPullExecutor(input NewDockerPullExecutorInput) common.Executor {
return err
}
return nil
}
}
func cleanImage(image string) string {

View file

@ -151,7 +151,6 @@ func (cr *containerReference) UpdateFromGithubEnv(env *map[string]string) common
}
func (cr *containerReference) Exec(command []string, env map[string]string) common.Executor {
return common.NewPipelineExecutor(
cr.connect(),
cr.find(),

View file

@ -23,7 +23,6 @@ type Workflow struct {
// On events for the workflow
func (w *Workflow) On() []string {
switch w.RawOn.Kind {
case yaml.ScalarNode:
var val string
@ -109,7 +108,6 @@ func (j *Job) Container() *ContainerSpec {
// Needs list for Job
func (j *Job) Needs() []string {
switch j.RawNeeds.Kind {
case yaml.ScalarNode:
var val string
@ -131,7 +129,6 @@ func (j *Job) Needs() []string {
// RunsOn list for Job
func (j *Job) RunsOn() []string {
switch j.RawRunsOn.Kind {
case yaml.ScalarNode:
var val string
@ -183,7 +180,6 @@ func (j *Job) GetMatrixes() []map[string]interface{} {
log.Debugf("Adding include '%v'", include)
matrixes = append(matrixes, include)
}
} else {
matrixes = append(matrixes, make(map[string]interface{}))
}
@ -313,12 +309,12 @@ func (s *Step) Type() StepType {
}
func (s *Step) Validate() error {
if s.Type() != StepTypeRun {
return fmt.Errorf("(StepID: %s): Unexpected value 'uses'", s.String())
} else if s.Shell == "" {
return fmt.Errorf("(StepID: %s): Required property is missing: 'shell'", s.String())
}
return nil
if s.Type() != StepTypeRun {
return fmt.Errorf("(StepID: %s): Unexpected value 'uses'", s.String())
} else if s.Shell == "" {
return fmt.Errorf("(StepID: %s): Required property is missing: 'shell'", s.String())
}
return nil
}
// ReadWorkflow returns a list of jobs for a given workflow file reader

View file

@ -199,7 +199,6 @@ func updateTestExpressionWorkflow(t *testing.T, tables []struct {
in string
out string
}, rc *RunContext) {
var envs string
keys := make([]string, 0, len(rc.Env))
for k := range rc.Env {
@ -242,7 +241,6 @@ jobs:
if err != nil {
t.Fatal(err)
}
}
func TestRewrite(t *testing.T) {

View file

@ -109,7 +109,6 @@ func (f *stepLogFormatter) print(b *bytes.Buffer, entry *logrus.Entry) {
}
func (f *stepLogFormatter) isColored(entry *logrus.Entry) bool {
isColored := checkIfTerminal(entry.Logger.Out)
if force, ok := os.LookupEnv("CLICOLOR_FORCE"); ok && force != "0" {

View file

@ -1,14 +1,14 @@
const { spawnSync } = require('child_process')
const spawnArguments={
cwd: process.env['INPUT_CWD'],
const spawnArguments = {
cwd: process.env.INPUT_CWD,
stdio: [
process.stdin,
process.stdout,
process.stderr,
process.stderr
]
}
const child=spawnSync(
const child = spawnSync(
'/bin/sh',
[ '-c' ].concat(process.env['INPUT_COMMAND']),
['-c'].concat(process.env.INPUT_COMMAND),
spawnArguments)
process.exit(child.status)

View file

@ -336,7 +336,6 @@ func (rc *RunContext) EvalBool(expr string) (bool, error) {
!strings.Contains(part, "!")) && // but it's not negated
interpolatedPart == "false" && // and the interpolated string is false
(isString || previousOrNextPartIsAnOperator(i, parts)) { // and it's of type string or has an logical operator before or after
interpolatedPart = fmt.Sprintf("'%s'", interpolatedPart) // then we have to quote the false expression
}

View file

@ -157,7 +157,6 @@ func updateTestIfWorkflow(t *testing.T, tables []struct {
out bool
wantErr bool
}, rc *RunContext) {
var envs string
keys := make([]string, 0, len(rc.Env))
for k := range rc.Env {

View file

@ -33,7 +33,7 @@ type Config struct {
Privileged bool // use privileged mode
UsernsMode string // user namespace to use
ContainerArchitecture string // Desired OS/architecture platform for running containers
UseGitIgnore bool // controls if paths in .gitignore should not be copied into container, default true
UseGitIgnore bool // controls if paths in .gitignore should not be copied into container, default true
}
type runnerImpl struct {

View file

@ -539,7 +539,6 @@ func (sc *StepContext) runAction(actionDir string, actionPath string) common.Exe
// Interpolate the outer inputs into the composite step with items
exprEval := sc.NewExpressionEvaluator()
for k, v := range stepContext.Step.With {
if strings.Contains(v, "inputs") {
stepContext.Step.With[k] = exprEval.Interpolate(v)
}

View file

@ -8,7 +8,6 @@ import (
)
func drawGraph(plan *model.Plan) error {
drawings := make([]*common.Drawing, 0)
jobPen := common.NewPen(common.StyleSingleLine, 96)