bump golangci/golangci-lint-action from 4 to 6

Version 5 removed go cache management, and therefore also options skip-pkg-cache and
skip-build-cache, because the cache related to go itself is already handled by
actions/setup-go, and now it only caches golangci-lint analysis. Since we run multiple
golangci-lint-action steps for different goos, we want to cache package and build cache
and golangci-lint results from all of them, and therefore this commit now changes the
approach by disabling all built-in caching and introducing a separate cache step to
handle it properly.
This commit is contained in:
albertony 2024-04-25 08:00:27 +02:00
parent e0b38cc9ac
commit f2f559230c

View File

@ -223,24 +223,42 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Get runner parameters
id: get-runner-parameters
shell: bash
run: |
echo "year-week=$(/bin/date -u "+%Y%V")" >> $GITHUB_OUTPUT
echo "runner-os-version=$ImageOS" >> $GITHUB_OUTPUT
- name: Checkout - name: Checkout
uses: actions/checkout@v4 uses: actions/checkout@v4
- name: Install Go - name: Install Go
id: setup-go
uses: actions/setup-go@v5 uses: actions/setup-go@v5
with: with:
go-version: '>=1.22.0-rc.1' go-version: '>=1.22.0-rc.1'
check-latest: true check-latest: true
cache: false cache: false
- name: Cache
uses: actions/cache@v4
with:
path: |
~/go/pkg/mod
~/.cache/go-build
~/.cache/golangci-lint
key: golangci-lint-${{ steps.get-runner-parameters.outputs.runner-os-version }}-go${{ steps.setup-go.outputs.go-version }}-${{ steps.get-runner-parameters.outputs.year-week }}-${{ hashFiles('go.sum') }}
restore-keys: golangci-lint-${{ steps.get-runner-parameters.outputs.runner-os-version }}-go${{ steps.setup-go.outputs.go-version }}-${{ steps.get-runner-parameters.outputs.year-week }}-
- name: Code quality test (Linux) - name: Code quality test (Linux)
uses: golangci/golangci-lint-action@v4 uses: golangci/golangci-lint-action@v6
with: with:
version: latest version: latest
skip-cache: false # Caching enabled (which is default) on this first lint step only, it handles complete cache of build, go modules and golangci-lint analysis which was necessary to get all lint steps to properly take advantage of it skip-cache: true
- name: Code quality test (Windows) - name: Code quality test (Windows)
uses: golangci/golangci-lint-action@v4 uses: golangci/golangci-lint-action@v6
env: env:
GOOS: "windows" GOOS: "windows"
with: with:
@ -248,7 +266,7 @@ jobs:
skip-cache: true skip-cache: true
- name: Code quality test (macOS) - name: Code quality test (macOS)
uses: golangci/golangci-lint-action@v4 uses: golangci/golangci-lint-action@v6
env: env:
GOOS: "darwin" GOOS: "darwin"
with: with:
@ -256,7 +274,7 @@ jobs:
skip-cache: true skip-cache: true
- name: Code quality test (FreeBSD) - name: Code quality test (FreeBSD)
uses: golangci/golangci-lint-action@v4 uses: golangci/golangci-lint-action@v6
env: env:
GOOS: "freebsd" GOOS: "freebsd"
with: with:
@ -264,7 +282,7 @@ jobs:
skip-cache: true skip-cache: true
- name: Code quality test (OpenBSD) - name: Code quality test (OpenBSD)
uses: golangci/golangci-lint-action@v4 uses: golangci/golangci-lint-action@v6
env: env:
GOOS: "openbsd" GOOS: "openbsd"
with: with: