ref: 03b6dd93214f0af3aaa0176725e5e7cdac002dac
parent: a16d3d640512b4bec17eaafa3ea4a216f71bc551
author: ISSOtm <[email protected]>
date: Sat Nov 12 09:03:35 EST 2022
Only cache dependency directories instead of whole test/ Otherwise, changes made to the test suite are not picked up
--- a/.github/workflows/testing.yml
+++ b/.github/workflows/testing.yml
@@ -55,13 +55,21 @@
with:
name: rgbds-canary-${{ matrix.os }}-${{ matrix.cc }}-${{ matrix.buildsys }}
path: bins
+ - name: Compute test dependency cache params
+ id: test-deps-cache-params
+ shell: bash
+ run: |
+ paths=$(test/fetch-test-deps.sh --get-paths)
+ hash=$(test/fetch-test-deps.sh --get-hash)
+ tee -a <<<"paths=\"${paths//,/\\n}\"" $GITHUB_OUTPUT
+ tee -a <<<"hash=${hash%-}" $GITHUB_OUTPUT
- name: Check test dependency repositories cache
id: test-deps-cache
uses: actions/cache@v3
with:
- path: test
- key: ${{ matrix.os }}-${{ hashFiles('test/fetch-test-deps.sh') }}
- - if: ${{ steps.test-deps-cache.outputs.cache-hit != 'true' }}
+ path: ${{ fromJSON(steps.test-deps-cache-params.outputs.paths) }}
+ key: ${{ matrix.os }}-${{ steps.test-deps-cache-params.outputs.hash }}
+ - if: steps.test-deps-cache.outputs.cache-hit != 'true'
name: Fetch test dependency repositories
continue-on-error: true
run: |
@@ -127,16 +135,21 @@
with:
name: rgbds-canary-win${{ matrix.bits }}
path: bins
+ - name: Compute test dependency cache params
+ id: test-deps-cache-params
+ shell: bash
+ run: |
+ paths=$(test/fetch-test-deps.sh --get-paths)
+ hash=$(test/fetch-test-deps.sh --get-hash)
+ tee -a <<<"paths=\"${paths//,/\\n}\"" $GITHUB_OUTPUT
+ tee -a <<<"hash=${hash%-}" $GITHUB_OUTPUT
- name: Check test dependency repositories cache
id: test-deps-cache
uses: actions/cache@v3
with:
- path: test
- # Intentionally using matrix.bits instead matrix.arch as it's fine to share a cache
- # with a different job below that also runs on Windows but doesn't have arch property
- # defined.
- key: ${{ matrix.os }}-${{ matrix.bits }}-${{ hashFiles('test/fetch-test-deps.sh') }}
- - if: ${{ steps.test-deps-cache.outputs.cache-hit != 'true' }}
+ path: ${{ fromJSON(steps.test-deps-cache-params.outputs.paths) }}
+ key: ${{ matrix.os }}-${{ matrix.bits }}-${{ steps.test-deps-cache-params.outputs.hash }}
+ - if: steps.test-deps-cache.outputs.cache-hit != 'true'
name: Fetch test dependency repositories
shell: bash
continue-on-error: true
@@ -224,13 +237,21 @@
run: |
cp bins/* .
cp bins/*.dll test/gfx
+ - name: Compute test dependency cache params
+ id: test-deps-cache-params
+ shell: bash
+ run: |
+ paths=$(test/fetch-test-deps.sh --get-paths)
+ hash=$(test/fetch-test-deps.sh --get-hash)
+ tee -a <<<"paths=\"${paths//,/\\n}\"" $GITHUB_OUTPUT
+ tee -a <<<"hash=${hash%-}" $GITHUB_OUTPUT
- name: Check test dependency repositories cache
id: test-deps-cache
uses: actions/cache@v3
with:
- path: test
- key: ${{ matrix.os }}-${{ matrix.bits }}-${{ hashFiles('test/fetch-test-deps.sh') }}
- - if: ${{ steps.test-deps-cache.outputs.cache-hit != 'true' }}
+ path: ${{ fromJSON(steps.test-deps-cache-params.outputs.paths) }}
+ key: mingw-${{ matrix.bits }}-${{ steps.test-deps-cache-params.outputs.hash }}
+ - if: steps.test-deps-cache.outputs.cache-hit != 'true'
name: Fetch test dependency repositories
shell: bash
continue-on-error: true
--- a/test/fetch-test-deps.sh
+++ b/test/fetch-test-deps.sh
@@ -4,20 +4,35 @@
cd "$(dirname "$0")"
-echo "Fetching test dependency repositories"
+case "$1" in
+ --get-hash)
+ action() { # owner/repo shallow-since commit
+ printf "%s@%s-" "${1##*/}" "$3"
+ }
+ ;;
-fetch_downstream() { # owner/repo shallow-since commit
- if [ ! -d ${1##*/} ]; then
- git clone https://github.com/$1.git --shallow-since=$2 --single-branch
- fi
- pushd ${1##*/}
- git checkout -f $3
- if [ -f ../patches/${1##*/}.patch ]; then
- git apply --ignore-whitespace ../patches/${1##*/}.patch
- fi
- popd
-}
+ --get-paths)
+ action() { # owner/repo shallow-since commit
+ printf "test/%s," "${1##*/}"
+ }
+ ;;
-fetch_downstream pret/pokecrystal 2022-09-29 70a3ec1accb6de1c1c273470af0ddfa2edc1b0a9
-fetch_downstream pret/pokered 2022-09-29 2b52ceb718b55dce038db24d177715ae4281d065
-fetch_downstream AntonioND/ucity 2022-04-20 d8878233da7a6569f09f87b144cb5bf140146a0f
+ *)
+ echo "Fetching test dependency repositories"
+
+ action() { # owner/repo shallow-since commit
+ if [ ! -d ${1##*/} ]; then
+ git clone https://github.com/$1.git --shallow-since=$2 --single-branch
+ fi
+ pushd ${1##*/}
+ git checkout -f $3
+ if [ -f ../patches/${1##*/}.patch ]; then
+ git apply --ignore-whitespace ../patches/${1##*/}.patch
+ fi
+ popd
+ }
+esac
+
+action pret/pokecrystal 2022-09-29 70a3ec1accb6de1c1c273470af0ddfa2edc1b0a9
+action pret/pokered 2022-09-29 2b52ceb718b55dce038db24d177715ae4281d065
+action AntonioND/ucity 2022-04-20 d8878233da7a6569f09f87b144cb5bf140146a0f