From abc10f063fc5a3120e2dd2cabd08a7e5fd2a8958 Mon Sep 17 00:00:00 2001 From: Kir Kolyshkin Date: Wed, 25 Sep 2024 23:08:05 -0700 Subject: [PATCH] ci: checkout first, disable go caching First, checking out the code should be done before installing Go. Second, since we don't have top-level go.mod, actions/setup-go complains: > Restore cache failed: Dependencies file is not found in /home/runner/work/sys/sys. Supported file pattern: go.sum One way to solve this would be to cache-dependency-path: "*/go.sum" parameter to actions/setup-go. Alas it won't work because not all modules here have go.mod, and * in GHA is not what you think it is (i.e. not a part of shell glob pattern, but rather "every directory"), and as a result it complains about missing go.sum files. Another way is to list all the paths explicitly, which is not good from the maintainability perspective (someone will definitely forgot to add a go.sum path). Yet another way is to add a step which lists all go.sum. It works something like this: - name: Find go.sum files id: gosum run: | echo 'files<> "$GITHUB_OUTPUT" git ls-files '*/go.sum' >> "$GITHUB_OUTPUT" echo 'EOF' >> "$GITHUB_OUTPUT" ... - name: Install Go uses: actions/setup-go@v5 with: cache-dependency-path: ${{ steps.gosum.outputs.files }} But given the fact that caching is not doing much here (as we don't have a lot of code) it's becoming too complicated with not much to gain. So, let's just disable Go caching, so the warning above will go away. Signed-off-by: Kir Kolyshkin --- .github/workflows/test.yml | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 3a20400..6805a6e 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -11,12 +11,16 @@ jobs: run: shell: bash steps: + - name: Checkout code + uses: actions/checkout@v4 - name: Install Go uses: actions/setup-go@v5 with: go-version: ${{ matrix.go-version }} - - name: Checkout code - uses: actions/checkout@v4 + # Disable caching as we don't have top-level go.sum needed for + # the cache key, and specifying multiple go.sums is not trivial + # (see https://github.com/moby/sys/pull/160 for details). + cache: false - name: Set PACKAGES env if: ${{ matrix.go-version == '1.18.x' }} run: |