cmake, ci: Add caching support to speed up builds

This commit is contained in:
Michael Fabian 'Xaymar' Dirks 2020-07-15 21:43:49 +02:00
parent 16489c4180
commit 731dbd26a7
2 changed files with 42 additions and 13 deletions

View file

@ -2,14 +2,6 @@ name: Build
on: on:
push: push:
tags:
- '[0-9].[0-9].[0-9]'
- '[0-9].[1-9][0-9].[1-9][0-9]'
- '[0-9].[1-9][0-9].[0-9]'
- '[1-9][0-9].[1-9][0-9].[1-9][0-9]'
- '[1-9][0-9].[1-9][0-9].[0-9]'
- '[1-9][0-9].[0-9].[1-9][0-9]'
- '[1-9][0-9].[0-9].[0-9]'
branches-ignore: branches-ignore:
- 'l10n_master' - 'l10n_master'
pull_request: pull_request:
@ -40,6 +32,14 @@ jobs:
- name: "Clone Submodules" - name: "Clone Submodules"
shell: bash shell: bash
run: git submodule update --init --recursive run: git submodule update --init --recursive
- name: "Cache: Prerequisites"
uses: actions/cache@v2
with:
path: |
build/temp/qt-download/qt-download-prefix/src/qt.7z
build/temp/obsdeps-download/obsdeps-download-prefix/src/obsdeps.7z
build/temp/libobs-download/libobs-download-prefix/src/libobs.7z
key: ${{ matrix.id }}
- name: "Configure Project" - name: "Configure Project"
shell: bash shell: bash
run: | run: |
@ -143,6 +143,12 @@ jobs:
git \ git \
qt5-default libqwt-qt5-dev libqt5svg5-dev qt5-default libqwt-qt5-dev libqt5svg5-dev
${{ matrix.extra_command }} ${{ matrix.extra_command }}
- name: "Cache: Prerequisites"
uses: actions/cache@v2
with:
path: |
build/temp/libobs-download/libobs-download-prefix/src/libobs.7z
key: ${{ matrix.id }}
- name: "Configure Project" - name: "Configure Project"
shell: bash shell: bash
run: | run: |

View file

@ -317,26 +317,45 @@ if(NOT TARGET libobs)
set(OBS_DOWNLOAD_VERSION "25.0.3-fe-ci") set(OBS_DOWNLOAD_VERSION "25.0.3-fe-ci")
if(WIN32) if(WIN32)
# Windows # Windows
set(OBS_DOWNLOAD_HASH_32 "SHA512=C8CABFAA59BDF5E4CD1C69CBC349F3E62FD6FE37A1A1A8BE4AC1B37BF087F597A313B2B004E019827C43A5951B50957B60578B7F2249383C117E634FD8714844")
set(OBS_DOWNLOAD_HASH_64 "SHA512=75E83548AD8FD994D45BE2395E97499BED8444C245857C811BA44D35BF3C49186B1187D3EF250F2618295D7AFA7D8ED5A66582BD140A01A46A77F6BC19BDDBE2")
set(OBS_DEPENDENCIES_VERSION "25.0.0") set(OBS_DEPENDENCIES_VERSION "25.0.0")
set(OBS_DEPENDENCIES_HASH "SHA512=7545696B5B684E6BF57F11158FBDF7A0477C4C2CBB872070105A400E56ACD16A54934928BB917E8C952631667DB63953B56F8BACB9C52D36285EA3DD83B9F473")
set(OBS_QT_VERSION "5.10.1") set(OBS_QT_VERSION "5.10.1")
set(OBS_QT_HASH "SHA512=848B9AC00B06FCA1F1A85BD4EFEA4138D278E8EC96823C5C36CC988DDE5D27E2F91300B02F2F0E71F075CCB0D791D3C888CDA6A5048DDFE6F946A8697DFEF1E9")
download_project( download_project(
PROJ libobs PROJ libobs
URL https://github.com/Xaymar/obs-studio/releases/download/${OBS_DOWNLOAD_VERSION}/obs-studio-${ARCH}-0.0.0.0-vs2019.7z URL https://github.com/Xaymar/obs-studio/releases/download/${OBS_DOWNLOAD_VERSION}/obs-studio-${ARCH}-0.0.0.0-vs2019.7z
UPDATE_DISCONNECTED 1 URL_HASH "${OBS_DOWNLOAD_HASH_${ARCH}}"
DOWNLOAD_NAME "libobs.7z"
DOWNLOAD_NO_PROGRESS ON
UPDATE_DISCONNECTED ON
QUIET
) )
download_project( download_project(
PROJ obsdeps PROJ obsdeps
URL https://cdn.xaymar.com/obs/dependencies_${OBS_DEPENDENCIES_VERSION}.7z URL https://cdn.xaymar.com/obs/dependencies_${OBS_DEPENDENCIES_VERSION}.7z
UPDATE_DISCONNECTED 1 URL_HASH "${OBS_DEPENDENCIES_HASH}"
DOWNLOAD_NAME "obsdeps.7z"
DOWNLOAD_NO_PROGRESS ON
UPDATE_DISCONNECTED ON
QUIET
) )
elseif(UNIX) elseif(UNIX)
# Unix, Linux # Unix, Linux
set(OBS_DOWNLOAD_HASH_32 "")
set(OBS_DOWNLOAD_HASH_64 "SHA512=EAB0450F4B3D9C6252C347CD138A4AB49725CF930A742FF6D1EAEADDEDE31627D1C0A45831FE26A19C0B278386A476736CAA170B351EF833E8A5E8DAD6BB57D2")
download_project( download_project(
PROJ libobs PROJ libobs
URL https://github.com/Xaymar/obs-studio/releases/download/${OBS_DOWNLOAD_VERSION}/obs-studio-${ARCH}-0.0.0.0-ubuntu1804.7z URL https://github.com/Xaymar/obs-studio/releases/download/${OBS_DOWNLOAD_VERSION}/obs-studio-${ARCH}-0.0.0.0-ubuntu1804.7z
UPDATE_DISCONNECTED 1 URL_HASH "${OBS_DOWNLOAD_HASH_${ARCH}}"
DOWNLOAD_NAME "libobs.7z"
DOWNLOAD_NO_PROGRESS ON
UPDATE_DISCONNECTED ON
QUIET
) )
# Dependencies must be installed like normal OBS Studio # Dependencies must be installed like normal OBS Studio
@ -374,7 +393,11 @@ if(NOT TARGET libobs)
download_project( download_project(
PROJ qt PROJ qt
URL https://cdn.xaymar.com/obs/qt_${OBS_QT_VERSION}.7z URL https://cdn.xaymar.com/obs/qt_${OBS_QT_VERSION}.7z
UPDATE_DISCONNECTED 1 URL_HASH "${OBS_QT_HASH}"
DOWNLOAD_NAME "qt.7z"
DOWNLOAD_NO_PROGRESS ON
UPDATE_DISCONNECTED ON
QUIET
) )
set(Qt5_DIR "${qt_SOURCE_DIR}" CACHE STRING "Path to Qt5") set(Qt5_DIR "${qt_SOURCE_DIR}" CACHE STRING "Path to Qt5")