From f2f559230cafd906f039790be59ccf58a7bf71f8 Mon Sep 17 00:00:00 2001 From: albertony <12441419+albertony@users.noreply.github.com> Date: Thu, 25 Apr 2024 08:00:27 +0200 Subject: [PATCH] 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. --- .github/workflows/build.yml | 30 ++++++++++++++++++++++++------ 1 file changed, 24 insertions(+), 6 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 3a939f19d..0a1413f74 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -223,24 +223,42 @@ jobs: runs-on: ubuntu-latest 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 uses: actions/checkout@v4 - name: Install Go + id: setup-go uses: actions/setup-go@v5 with: go-version: '>=1.22.0-rc.1' check-latest: true 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) - uses: golangci/golangci-lint-action@v4 + uses: golangci/golangci-lint-action@v6 with: 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) - uses: golangci/golangci-lint-action@v4 + uses: golangci/golangci-lint-action@v6 env: GOOS: "windows" with: @@ -248,7 +266,7 @@ jobs: skip-cache: true - name: Code quality test (macOS) - uses: golangci/golangci-lint-action@v4 + uses: golangci/golangci-lint-action@v6 env: GOOS: "darwin" with: @@ -256,7 +274,7 @@ jobs: skip-cache: true - name: Code quality test (FreeBSD) - uses: golangci/golangci-lint-action@v4 + uses: golangci/golangci-lint-action@v6 env: GOOS: "freebsd" with: @@ -264,7 +282,7 @@ jobs: skip-cache: true - name: Code quality test (OpenBSD) - uses: golangci/golangci-lint-action@v4 + uses: golangci/golangci-lint-action@v6 env: GOOS: "openbsd" with: