ci: Cache previous builds for quicker iterative development

A full clean build is only required for releases, so opting for iterative builds will speed up CI builds significantly. As we can re-use caches from across branches, opting for the first matching key, this means that any branch should re-use the closest match from the main branch.

Downside is that this may break if there is a change to the CMakeLists.txt file, since the project configuration is now different. Might be fixable, but that's not the aim of these changes.
This commit is contained in:
Michael Fabian 'Xaymar' Dirks 2023-02-28 05:14:08 +01:00
parent 09e8e4b439
commit dd3b1c279c

View file

@ -11,7 +11,7 @@ on:
- '*' - '*'
concurrency: concurrency:
group: build-${{ github.ref }} group: build-${{ github.ref_name }}
cancel-in-progress: true cancel-in-progress: true
env: env:
@ -304,6 +304,16 @@ jobs:
--config Release \ --config Release \
--component obs_libraries --component obs_libraries
- name: "Configure (Cache)"
if: ${{ ! startsWith( github.ref, 'refs/tags/' ) }}
id: streamfx-cache
uses: actions/cache@v3
with:
path: "${{ github.workspace }}/build/ci"
key: "${{ matrix.runner }}-${{ matrix.generator }}-${{ github.ref_name }}-obs${{ env.obs_version }}-obsdeps${{ env.obs_deps_version }}-qt${{ matrix.qt }}-${{ env.CACHE_VERSION }}"
restore-keys: |
"${{ matrix.runner }}-${{ matrix.generator }}-${{ github.ref_name }}-obs${{ env.obs_version }}-obsdeps${{ env.obs_deps_version }}-qt${{ matrix.qt }}-${{ env.CACHE_VERSION }}"
"${{ matrix.runner }}-${{ matrix.generator }}-main-obs${{ env.obs_version }}-obsdeps${{ env.obs_deps_version }}-qt${{ matrix.qt }}-${{ env.CACHE_VERSION }}"
- name: "Configure" - name: "Configure"
continue-on-error: true continue-on-error: true
shell: bash shell: bash