From 91b4f33ca1783992df091712417d96bd997970d2 Mon Sep 17 00:00:00 2001 From: neru Date: Fri, 20 Mar 2026 22:42:55 -0300 Subject: [PATCH] build: add cache and fix artifact --- .github/workflows/build.yml | 30 ++++++++++++++++++++++++------ 1 file changed, 24 insertions(+), 6 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 1cb7248..95bf071 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -17,23 +17,39 @@ jobs: with: submodules: recursive + - name: Setup Tools Cache + id: tools-cache + uses: actions/cache@v4 + with: + path: | + cmake-3.30.5-linux-x86_64 + ccache + key: ${{ runner.os }}-tools-${{ hashFiles('**/CMakeLists.txt') }} + - name: Install tools run: | sudo apt-get update - sudo apt-get install -y mingw-w64 zstd dotnet-sdk-8.0 + sudo apt-get install -y mingw-w64 zstd ccache zip + mkdir -p ccache + echo "CCACHE_DIR=$GITHUB_WORKSPACE/ccache" >> $GITHUB_ENV - name: Install CMake 3.30 + if: steps.tools-cache.outputs.cache-hit != 'true' run: | wget -q https://github.com/Kitware/CMake/releases/download/v3.30.5/cmake-3.30.5-linux-x86_64.tar.gz tar xzf cmake-3.30.5-linux-x86_64.tar.gz - echo "$GITHUB_WORKSPACE/cmake-3.30.5-linux-x86_64/bin" >> $GITHUB_PATH + + - name: Add CMake to path + run: echo "$GITHUB_WORKSPACE/cmake-3.30.5-linux-x86_64/bin" >> $GITHUB_PATH - name: Get OpenSSL for MinGW (pre-built from MSYS2) run: | - wget -q "https://repo.msys2.org/mingw/mingw64/mingw-w64-x86_64-openssl-3.3.2-1-any.pkg.tar.zst" - tar xf mingw-w64-x86_64-openssl-3.3.2-1-any.pkg.tar.zst - sudo cp -r mingw64/include/openssl /usr/x86_64-w64-mingw32/include/ - sudo cp mingw64/lib/libssl.a mingw64/lib/libcrypto.a /usr/x86_64-w64-mingw32/lib/ + if [ ! -d "/usr/x86_64-w64-mingw32/include/openssl" ]; then + wget -q "https://repo.msys2.org/mingw/mingw64/mingw-w64-x86_64-openssl-3.3.2-1-any.pkg.tar.zst" + tar xf mingw-w64-x86_64-openssl-3.3.2-1-any.pkg.tar.zst + sudo cp -r mingw64/include/openssl /usr/x86_64-w64-mingw32/include/ + sudo cp mingw64/lib/libssl.a mingw64/lib/libcrypto.a /usr/x86_64-w64-mingw32/lib/ + fi - name: Patch missing MinGW headers run: | @@ -48,6 +64,8 @@ jobs: -DCMAKE_C_COMPILER=x86_64-w64-mingw32-gcc \ -DCMAKE_CXX_COMPILER=x86_64-w64-mingw32-g++ \ -DCMAKE_RC_COMPILER=x86_64-w64-mingw32-windres \ + -DCMAKE_C_COMPILER_LAUNCHER=ccache \ + -DCMAKE_CXX_COMPILER_LAUNCHER=ccache \ -DOPENSSL_ROOT_DIR=/usr/x86_64-w64-mingw32 \ -DOPENSSL_INCLUDE_DIR=/usr/x86_64-w64-mingw32/include \ -DOPENSSL_LIBRARIES="/usr/x86_64-w64-mingw32/lib/libssl.a;/usr/x86_64-w64-mingw32/lib/libcrypto.a"