From cafceb66173ce2f372cf047d0c367490831180d1 Mon Sep 17 00:00:00 2001 From: falkTX Date: Thu, 14 Apr 2022 00:02:21 +0100 Subject: [PATCH] Cache entire build --- .github/workflows/build.yml | 94 ++++++++++++++++++++++++++++++++++++- 1 file changed, 93 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index f76f0a5..fb65556 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -4,7 +4,7 @@ on: push: env: - CACHE_VERSION: 12 + CACHE_VERSION: 13 DEBIAN_FRONTEND: noninteractive HOMEBREW_NO_AUTO_UPDATE: 1 LIBGL_ALWAYS_SOFTWARE: 'true' @@ -17,10 +17,14 @@ jobs: with: submodules: recursive - name: Set up cache + id: cache uses: actions/cache@v2 with: path: | ~/PawPawBuilds + build + carla/build + dpf/build key: linux-arm64-v${{ env.CACHE_VERSION }} - name: Fix GitHub's mess run: | @@ -41,12 +45,21 @@ jobs: PKG_CONFIG_PATH: /usr/lib/aarch64-linux-gnu/pkgconfig run: | ./deps/PawPaw/bootstrap-cardinal.sh linux-aarch64 + - name: Restore build timestamp + if: steps.cache.outputs.cache-hit == 'true' + shell: bash + run: | + TS=$(cat build/timestamp) + find . -type f -exec touch -a -m -t ${TS} {} \; - name: Build linux arm64 cross-compiled run: | pushd deps/PawPaw; source local.env linux-aarch64; popd make features make CIBUILD=true NOOPT=true WITH_LTO=true -j $(nproc) make unzipfx + - name: Set build timestamp + run: | + date +%Y%m%d%H%M > build/timestamp - name: Set sha8 (non-release) if: startsWith(github.ref, 'refs/tags/') != true id: slug1 @@ -83,10 +96,14 @@ jobs: with: submodules: recursive - name: Set up cache + id: cache uses: actions/cache@v2 with: path: | ~/PawPawBuilds + build + carla/build + dpf/build key: linux-armhf-v${{ env.CACHE_VERSION }} - name: Fix GitHub's mess run: | @@ -107,12 +124,21 @@ jobs: PKG_CONFIG_PATH: /usr/lib/arm-linux-gnueabihf/pkgconfig run: | ./deps/PawPaw/bootstrap-cardinal.sh linux-armhf + - name: Restore build timestamp + if: steps.cache.outputs.cache-hit == 'true' + shell: bash + run: | + TS=$(cat build/timestamp) + find . -type f -exec touch -a -m -t ${TS} {} \; - name: Build linux armhf cross-compiled run: | pushd deps/PawPaw; source local.env linux-armhf; popd make features make CIBUILD=true NOOPT=true WITH_LTO=true -j $(nproc) make unzipfx + - name: Set build timestamp + run: | + date +%Y%m%d%H%M > build/timestamp - name: Set sha8 (non-release) if: startsWith(github.ref, 'refs/tags/') != true id: slug1 @@ -149,10 +175,14 @@ jobs: with: submodules: recursive - name: Set up cache + id: cache uses: actions/cache@v2 with: path: | ~/PawPawBuilds + build + carla/build + dpf/build key: linux-i686-v${{ env.CACHE_VERSION }} - name: Fix GitHub's mess run: | @@ -169,12 +199,21 @@ jobs: PKG_CONFIG_PATH: /usr/lib/i386-linux-gnu/pkgconfig run: | ./deps/PawPaw/bootstrap-cardinal.sh linux-i686 + - name: Restore build timestamp + if: steps.cache.outputs.cache-hit == 'true' + shell: bash + run: | + TS=$(cat build/timestamp) + find . -type f -exec touch -a -m -t ${TS} {} \; - name: Build linux i686 run: | pushd deps/PawPaw; source local.env linux-i686; popd make features make CIBUILD=true NOOPT=true WITH_LTO=true -j $(nproc) make unzipfx + - name: Set build timestamp + run: | + date +%Y%m%d%H%M > build/timestamp - name: Set sha8 (non-release) if: startsWith(github.ref, 'refs/tags/') != true id: slug1 @@ -211,10 +250,14 @@ jobs: with: submodules: recursive - name: Set up cache + id: cache uses: actions/cache@v2 with: path: | ~/PawPawBuilds + build + carla/build + dpf/build key: linux-x86_64-v${{ env.CACHE_VERSION }} - name: Set up dependencies run: | @@ -223,12 +266,21 @@ jobs: - name: Build extra dependencies run: | ./deps/PawPaw/bootstrap-cardinal.sh linux + - name: Restore build timestamp + if: steps.cache.outputs.cache-hit == 'true' + shell: bash + run: | + TS=$(cat build/timestamp) + find . -type f -exec touch -a -m -t ${TS} {} \; - name: Build linux x86_64 run: | pushd deps/PawPaw; source local.env linux; popd make features make CIBUILD=true NOOPT=true WITH_LTO=true -j $(nproc) make unzipfx + - name: Set build timestamp + run: | + date +%Y%m%d%H%M > build/timestamp - name: Set sha8 (non-release) if: startsWith(github.ref, 'refs/tags/') != true id: slug1 @@ -324,10 +376,15 @@ jobs: with: submodules: recursive - name: Set up cache + id: cache uses: actions/cache@v2 with: path: | ~/PawPawBuilds + build + carla/build + dpf/build + jucewrapper/build key: macos-universal-v${{ env.CACHE_VERSION }} - name: Fix up Xcode run: | @@ -336,6 +393,12 @@ jobs: - name: Build extra dependencies run: | ./deps/PawPaw/bootstrap-cardinal.sh macos-universal + - name: Restore build timestamp + if: steps.cache.outputs.cache-hit == 'true' + shell: bash + run: | + TS=$(cat build/timestamp) + find . -type f -exec touch -a -m -t ${TS} {} \; - name: Build macOS universal (base) run: | pushd deps/PawPaw; source local.env macos-universal; popd @@ -352,6 +415,9 @@ jobs: run: | pushd deps/PawPaw; source local.env macos-universal; popd ./utils/create-macos-installer.sh + - name: Set build timestamp + run: | + date +%Y%m%d%H%M > build/timestamp - name: Set sha8 (non-release) if: startsWith(github.ref, 'refs/tags/') != true id: slug1 @@ -505,10 +571,14 @@ jobs: with: submodules: recursive - name: Set up cache + id: cache uses: actions/cache@v2 with: path: | ~/PawPawBuilds + build + carla/build + dpf/build key: win32-v${{ env.CACHE_VERSION }} - name: Fix GitHub's mess run: | @@ -523,6 +593,12 @@ jobs: - name: Build extra dependencies run: | ./deps/PawPaw/bootstrap-cardinal.sh win32 + - name: Restore build timestamp + if: steps.cache.outputs.cache-hit == 'true' + shell: bash + run: | + TS=$(cat build/timestamp) + find . -type f -exec touch -a -m -t ${TS} {} \; - name: Build win32 cross-compiled (base) run: | pushd deps/PawPaw; source local.env win32; popd @@ -538,6 +614,9 @@ jobs: run: | pushd deps/PawPaw; source local.env win32; popd xvfb-run ./utils/create-windows-installer.sh 32 + - name: Set build timestamp + run: | + date +%Y%m%d%H%M > build/timestamp - name: Set sha8 (non-release) if: startsWith(github.ref, 'refs/tags/') != true id: slug1 @@ -576,10 +655,14 @@ jobs: with: submodules: recursive - name: Set up cache + id: cache uses: actions/cache@v2 with: path: | ~/PawPawBuilds + build + carla/build + dpf/build key: win64-v${{ env.CACHE_VERSION }} - name: Fix GitHub's mess run: | @@ -594,6 +677,12 @@ jobs: - name: Build extra dependencies run: | ./deps/PawPaw/bootstrap-cardinal.sh win64 + - name: Restore build timestamp + if: steps.cache.outputs.cache-hit == 'true' + shell: bash + run: | + TS=$(cat build/timestamp) + find . -type f -exec touch -a -m -t ${TS} {} \; - name: Build win64 cross-compiled (base) run: | pushd deps/PawPaw; source local.env win64; popd @@ -609,6 +698,9 @@ jobs: run: | pushd deps/PawPaw; source local.env win64; popd xvfb-run ./utils/create-windows-installer.sh 64 + - name: Set build timestamp + run: | + date +%Y%m%d%H%M > build/timestamp - name: Set sha8 (non-release) if: startsWith(github.ref, 'refs/tags/') != true id: slug1