diff --git a/.forgejo/workflows/run-tests.yml b/.forgejo/workflows/run-tests.yml index d790e36e..608781fe 100644 --- a/.forgejo/workflows/run-tests.yml +++ b/.forgejo/workflows/run-tests.yml @@ -8,10 +8,24 @@ on: jobs: test: runs-on: docker + container: + image: lisyarus/psemek:test-runner steps: - name: Checkout uses: actions/checkout@v4 + with: + submodules: recursive + + - name: Configure + run: | + mkdir build && cd build + cmake .. -DCMAKE_BUILD_TYPE=Release -DPSEMEK_BUILD_TESTS=ON -DCMAKE_PREFIX_PATH="/home/sdl2/install" + + - name: Build + run: | + cd build + cmake --build . -j4 - name: Run tests run: | - echo "Replace with your real test command" + ./build/tools/test/psemek-run-tests diff --git a/tools/test/runner/Dockerfile b/tools/test/runner/Dockerfile new file mode 100644 index 00000000..75da8e1e --- /dev/null +++ b/tools/test/runner/Dockerfile @@ -0,0 +1,24 @@ +FROM ubuntu:24.04 + +# Install tools +RUN apt-get update && apt-get upgrade -y && apt-get install -y \ + build-essential chrpath cmake git \ + file wget zip \ + libpng-dev libxext-dev libgl-dev libboost-all-dev libmpg123-dev \ + libxi-dev libxrender-dev \ + libasound2-dev libpulse-dev \ + libfreetype-dev libsdl2-dev nodejs + +# Set user +RUN useradd -u 1000 -U -o -d /home -M worker +RUN chown -R worker:worker /home /usr/local +USER worker +WORKDIR /home + +# Install wgpu-native +RUN wget https://github.com/gfx-rs/wgpu-native/releases/download/v0.19.4.1/wgpu-linux-x86_64-release.zip +RUN mkdir -p wgpu-native +RUN unzip wgpu-*.zip -d wgpu-native +RUN rm wgpu-*.zip +RUN mkdir -p wgpu-native/install +RUN mv wgpu-native/libwgpu_native.a wgpu-native/install diff --git a/tools/test/runner/build.sh b/tools/test/runner/build.sh new file mode 100755 index 00000000..d7421bf1 --- /dev/null +++ b/tools/test/runner/build.sh @@ -0,0 +1,7 @@ +#!/usr/bin/env bash + +set -e + +cd "$(dirname "$0")" + +docker build -t lisyarus/psemek:test-runner .