ci: add wafcache to all targets that use Waf, except Android which uses generated CMakeLists instead

This commit is contained in:
Alibek Omarov
2024-11-17 14:25:56 +03:00
parent 4a7a5f0b8c
commit 9cd456e414
8 changed files with 38 additions and 11 deletions

View File

@@ -6,8 +6,21 @@ jobs:
# steps:
# - name: Cleanup
# run: rm -rf .* || true
get_prev_runid:
runs-on: ubuntu-latest
outputs:
value: ${{ steps.do.outputs.value }}
steps:
- id: do
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
value=$(gh run -R ${{ github.repository }} list -b${{ github.ref_name }} -ssuccess -L1 --json databaseId -q'.[0].databaseId')
echo "Last run ID is $value"
echo "value=$value" >> "$GITHUB_OUTPUT"
build:
runs-on: ${{ matrix.os }}
needs: get_prev_runid
continue-on-error: true
strategy:
fail-fast: false
@@ -69,11 +82,19 @@ jobs:
SDL_VERSION: 2.30.11
GH_CPU_ARCH: ${{ matrix.targetarch }}
GH_CROSSCOMPILING: ${{ matrix.cross }}
WAFCACHE: ${{ github.workspace }}/wafcache/
WAFCACHE_EVICT_MAX_BYTES: 1000000 # github only gives 10gb for the whole repository
WAFCACHE_STATS: 1 # enable statistics in build log
steps:
- name: Checkout
uses: actions/checkout@v4
with:
submodules: recursive
- name: Restore cache
uses: actions/cache/restore@v4
with:
key: ${{ runner.os }}-${{ matrix.targetos }}-${{ matrix.targetarch }}-${{ needs.get_prev_runid.outputs.value }}
path: ${{ github.workspace }}/wafcache/
- name: Install dependencies
run: bash scripts/gha/deps_${{ matrix.targetos }}.sh
- name: Build engine
@@ -85,6 +106,12 @@ jobs:
with:
name: artifact-${{ matrix.targetos }}-${{ matrix.targetarch }}
path: artifacts/*
- name: Save cache
uses: actions/cache/save@v4
with:
path: ${{ github.workspace }}/wafcache/
key: ${{ runner.os }}-${{ matrix.targetos }}-${{ matrix.targetarch }}-${{ github.run_id }}
flatpak:
runs-on: ubuntu-latest
strategy:

View File

@@ -8,7 +8,7 @@ pushd hlsdk || die
./waf configure build install --destdir=../bin || die
popd
./waf configure --enable-utils --enable-tests --enable-lto build install --destdir=bin || die_configure
./waf configure --enable-utils --enable-tests --enable-lto --enable-wafcache build --zones=wafcache install --destdir=bin || die_configure
cp -vr /Library/Frameworks/SDL2.framework bin

View File

@@ -61,14 +61,14 @@ build_engine()
fi
if [ "$1" = "dedicated" ]; then
./waf configure $AMD64 $ENABLE_TESTS --enable-lto --enable-bundled-deps -d || die_configure
./waf configure $AMD64 $ENABLE_TESTS --enable-lto --enable-bundled-deps -d --enable-wafcache || die_configure
elif [ "$1" = "full" ]; then
./waf configure $AMD64 $ENABLE_TESTS --enable-lto --enable-bundled-deps -s SDL2_linux --enable-stb --enable-utils || die_configure
./waf configure $AMD64 $ENABLE_TESTS --enable-lto --enable-bundled-deps -s SDL2_linux --enable-stb --enable-utils --enable-wafcache || die_configure
else
die
fi
./waf build || die_configure
./waf build --zones=wafcache || die_configure
}
deploy_engine()

View File

@@ -12,7 +12,7 @@ pushd hlsdk || die
./waf configure -T fast --enable-magx --enable-simple-mod-hacks build install --destdir=../Xash || die
popd
./waf configure -T fast --enable-magx build install --destdir=Xash/ || die
./waf configure -T fast --enable-magx --enable-wafcache build install --destdir=Xash/ || die
cat > Xash/run.sh << 'EOF'
mypath=${0%/*}

View File

@@ -11,7 +11,7 @@ mkdir -p artifacts/ || die
echo "Running build script in Docker container..."
docker run --name xash-build --rm -v `pwd`:`pwd` -w `pwd` devkitpro/devkita64:latest bash ./scripts/gha/build_nswitch_docker.sh || die
docker run --name xash-build --rm -v `pwd`:`pwd` -v $HOME/.cache:$HOME/.cache -w `pwd` devkitpro/devkita64:latest bash ./scripts/gha/build_nswitch_docker.sh || die
echo "Packaging artifacts..."

View File

@@ -42,7 +42,7 @@ make -C libsolder install || die
echo "Building engine..."
./waf configure -T release --nswitch || die_configure
./waf configure -T release --nswitch --enable-wafcache || die_configure
./waf build install --destdir=pkgtemp/xash3d -v || die
echo "Building HLSDK..."

View File

@@ -44,8 +44,8 @@ popd
echo "Building engine..."
./waf configure -T release --psvita || die_configure
./waf build install --destdir=pkgtemp/data/xash3d -v || die
./waf configure -T release --psvita --enable-wafcache || die_configure
./waf build install --destdir=pkgtemp/data/xash3d || die
cp build/engine/xash.vpk pkgtemp/
echo "Building HLSDK..."

View File

@@ -12,8 +12,8 @@ fi
# NOTE: to build with other version use --msvc_version during configuration
# NOTE: sometimes you may need to add WinSDK to %PATH%
# NOTE: --enable-msvcdeps only used for CI builds, enabling it non-English versions of MSVC causes useless console spam
./waf.bat configure -s "SDL2_VC" -T release --enable-utils --enable-tests --enable-lto --enable-msvcdeps $AMD64 || die_configure
./waf.bat build || die
./waf.bat configure -s "SDL2_VC" -T release --enable-utils --enable-tests --enable-lto --enable-msvcdeps --enable-wafcache $AMD64 || die_configure
./waf.bat build --zones=wafcache || die
./waf.bat install --destdir=. || die
if [ "$ARCH" = "i386" ]; then