From 7a8c00be059d5e894b67174c3154c55fe8a065a6 Mon Sep 17 00:00:00 2001 From: m00g3n Date: Tue, 20 Feb 2024 11:40:47 +0100 Subject: [PATCH] Refactor lint github action action. --- .../workflows/lint-compass-runtime-agent.yml | 60 ++++--------------- .github/workflows/lint-template.yml | 50 ++++++++++++++++ 2 files changed, 60 insertions(+), 50 deletions(-) create mode 100644 .github/workflows/lint-template.yml diff --git a/.github/workflows/lint-compass-runtime-agent.yml b/.github/workflows/lint-compass-runtime-agent.yml index 4a5ba43a3af7..90c736744ee7 100644 --- a/.github/workflows/lint-compass-runtime-agent.yml +++ b/.github/workflows/lint-compass-runtime-agent.yml @@ -1,58 +1,18 @@ name: golangci-lint + +env: + GO_VERSION: '1.21' + LINTER_VERSION: v1.56.2 + LINTER_WORKING_DIRECTORY: 'components/compass-runtime-agent' + on: push: paths: - - 'components/compass-runtime-agent/**' + - '$LINTER_WORKING_DIRECTORY/**' branches: [ "main" ] pull_request: paths: - - 'components/compass-runtime-agent/**' - -permissions: - contents: read - # Optional: allow read access to pull request. Use with `only-new-issues` option. - # pull-requests: read - -jobs: - golangci: - name: lint - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - uses: actions/setup-go@v5 - with: - go-version: '1.21' - cache: false - - name: golangci-lint - uses: golangci/golangci-lint-action@v4 - with: - # Require: The version of golangci-lint to use. - # When `install-mode` is `binary` (default) the value can be v1.2 or v1.2.3 or `latest` to use the latest version. - # When `install-mode` is `goinstall` the value can be v1.2.3, `latest`, or the hash of a commit. - version: v1.56.2 - - # Optional: working directory, useful for monorepos - working-directory: 'components/compass-runtime-agent' - - # Optional: golangci-lint command line arguments. - # - # Note: By default, the `.golangci.yml` file should be at the root of the repository. - # The location of the configuration file can be changed by using `--config=` - # args: --timeout=30m --config=/my/path/.golangci.yml --issues-exit-code=0 - args: --timeout=5m - - # Optional: show only new issues if it's a pull request. The default value is `false`. - only-new-issues: true - - # Optional: if set to true, then all caching functionality will be completely disabled, - # takes precedence over all other caching options. - skip-cache: true - - # Optional: if set to true, then the action won't cache or restore ~/go/pkg. - # skip-pkg-cache: true - - # Optional: if set to true, then the action won't cache or restore ~/.cache/go-build. - # skip-build-cache: true + - '$LINTER_WORKING_DIRECTORY/**' - # Optional: The mode to install golangci-lint. It can be 'binary' or 'goinstall'. - # install-mode: "goinstall" +extends: + - .github/workflows/lint-template.yml diff --git a/.github/workflows/lint-template.yml b/.github/workflows/lint-template.yml new file mode 100644 index 000000000000..395243d15b29 --- /dev/null +++ b/.github/workflows/lint-template.yml @@ -0,0 +1,50 @@ +name: golangci-lint template + +permissions: + contents: read + # Optional: allow read access to pull request. Use with `only-new-issues` option. + # pull-requests: read + +jobs: + golangci: + name: lint + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-go@v5 + with: + go-version: '$GO_VERSION' + cache: false + - name: golangci-lint + uses: golangci/golangci-lint-action@v4 + with: + # Require: The version of golangci-lint to use. + # When `install-mode` is `binary` (default) the value can be v1.2 or v1.2.3 or `latest` to use the latest version. + # When `install-mode` is `goinstall` the value can be v1.2.3, `latest`, or the hash of a commit. + version: '$LINTER_VERSION' + + # Optional: working directory, useful for monorepos + working-directory: '$LINTER_WORKING_DIRECTORY' + + # Optional: golangci-lint command line arguments. + # + # Note: By default, the `.golangci.yml` file should be at the root of the repository. + # The location of the configuration file can be changed by using `--config=` + # args: --timeout=30m --config=/my/path/.golangci.yml --issues-exit-code=0 + args: --timeout=5m + + # Optional: show only new issues if it's a pull request. The default value is `false`. + only-new-issues: true + + # Optional: if set to true, then all caching functionality will be completely disabled, + # takes precedence over all other caching options. + skip-cache: true + + # Optional: if set to true, then the action won't cache or restore ~/go/pkg. + # skip-pkg-cache: true + + # Optional: if set to true, then the action won't cache or restore ~/.cache/go-build. + # skip-build-cache: true + + # Optional: The mode to install golangci-lint. It can be 'binary' or 'goinstall'. + # install-mode: "goinstall"