Giter Club home page Giter Club logo

staticcheck-action's Introduction

staticcheck-action

This action runs Staticcheck to find bugs and other problems in your Go code.

Usage

At its simplest, just add dominikh/staticcheck-action as a step in your existing workflow. A minimal workflow might look like this:

name: "CI"
on: ["push", "pull_request"]

jobs:
  ci:
    name: "Run CI"
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v2
      with:
        fetch-depth: 1
    - uses: dominikh/[email protected]
      with:
        version: "2022.1"

A more advanced example that runs tests, go vet and Staticcheck on multiple OSs and Go versions looks like this:

name: "CI"
on: ["push", "pull_request"]

jobs:
  ci:
    name: "Run CI"
    strategy:
      fail-fast: false
      matrix:
        os:  ["windows-latest", "ubuntu-latest", "macOS-latest"]
        go:  ["1.16.x", "1.17.x"]
        dir: ["server", "client"]
    runs-on: ${{ matrix.os }}
    steps:
    - uses: actions/checkout@v2
      with:
        fetch-depth: 1
    - uses: WillAbides/[email protected]
      with:
        go-version: ${{ matrix.go }}
    - run: "go test ./..."
    - run: "go vet ./..."
    - uses: dominikh/[email protected]
      with:
        version: "2022.1"
        install-go: false
        cache-key: ${{ matrix.go }}
        working-directory: ${{ matrix.dir }}

Please see GitHub's documentation on Actions for extensive documentation on how to write and tweak workflows.

Options

version

Which version of Staticcheck to use. Because new versions of Staticcheck introduce new checks that may break your build, it is recommended to pin to a specific version and to update Staticheck consciously.

It defaults to latest, which installs the latest released version of Staticcheck.

min-go-version

Minimum version of Go to support. This affects the diagnostics reported by Staticcheck, avoiding suggestions that are not applicable to older versions of Go.

If unset, this will default to the Go version specified in your go.mod.

See https://staticcheck.io/docs/running-staticcheck/cli/#go for more information.

build-tags

Go build tags that get passed to Staticcheck via the -tags flag.

install-go

Whether the action should install a suitable version of Go to install and run Staticcheck. If Staticcheck is the only action in your job, this option can usually be left on its default value of true. If your job already installs Go prior to running Staticcheck, for example to run unit tests, it is best to set this option to false.

The latest release of Staticcheck works with the last two minor releases of Go. The action itself requires at least Go 1.16.

cache-key

String to include in the cache key, in addition to the default, which is runner.os. This is useful when using multiple Go versions.

working-directory

Relative path to the working directory Staticcheck should be executed in. This is useful when dealing with multiple projects within one repository.

Can be easily combined with a directory matrix, see the advanced example above.

staticcheck-action's People

Contributors

dominikh avatar alexanderstephan avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.