From 8e9a38ceb90780bb785c467cdabe8bfa93093e7b Mon Sep 17 00:00:00 2001 From: Kbz-8 Date: Sun, 13 Apr 2025 18:52:37 +0200 Subject: [PATCH] fixing ci --- .github/workflows/d3d11-test.yml | 88 ++++++++++++++++++++++++++ .github/workflows/linux-build.yml | 6 ++ .github/workflows/opengl-es-test.yml | 6 ++ .github/workflows/opengl-test.yml | 6 ++ .github/workflows/software-test.yml | 6 ++ .github/workflows/vulkan-test.yml | 11 +++- Sources/Backends/OpenGL/OpenGL.h | 4 ++ Sources/Backends/OpenGL/OpenGLDevice.c | 2 +- Tests/xmake.lua | 2 +- 9 files changed, 126 insertions(+), 5 deletions(-) diff --git a/.github/workflows/d3d11-test.yml b/.github/workflows/d3d11-test.yml index e69de29..0dd44c1 100644 --- a/.github/workflows/d3d11-test.yml +++ b/.github/workflows/d3d11-test.yml @@ -0,0 +1,88 @@ +name: D3D11-Unit-Tests + +on: + pull_request: + push: + paths-ignore: + - '.github/workflows/macos-build.yml' + - '.github/workflows/msys2-build.yml' + - '.github/workflows/windows-build.yml' + - '.github/workflows/linux-build.yml' + - '.github/workflows/opengl-es-test.yml' + - '.github/workflows/vulkan-test.yml' + - '.github/workflows/opengl-test.yml' + - '.github/workflows/software-test.yml' + - '.gitignore' + - 'LICENSE' + - 'CHANGELOG.md' + - 'README.md' + +jobs: + build: + strategy: + fail-fast: false + matrix: + os: [ubuntu-latest, "windows-latest"] + arch: [x86_64] + confs: + - { mode: debug, archive: yes } + + runs-on: ${{ matrix.os }} + if: ${{ !contains(github.event.head_commit.message, 'ci skip') }} + + steps: + - name: Get current date as package key + id: cache_key + run: echo "key=$(date +'%W')" >> $GITHUB_OUTPUT + + - name: Checkout repository + uses: actions/checkout@v4 + + # Force xmake to a specific folder (for cache) + - name: Set xmake env + run: echo "XMAKE_GLOBALDIR=${{ runner.workspace }}/xmake-global" >> $GITHUB_ENV + + # Install xmake + - name: Setup xmake + uses: xmake-io/github-action-setup-xmake@v1 + with: + xmake-version: branch@dev + actions-cache-folder: .xmake-cache-W${{ steps.cache_key.outputs.key }} + + # Update xmake repository (in order to have the file that will be cached) + - name: Update xmake repository + run: xmake repo --update + + # Fetch xmake dephash + - name: Retrieve dependencies hash + id: dep_hash + run: echo "hash=$(xmake l utils.ci.packageskey)" >> $GITHUB_OUTPUT + + # Cache xmake dependencies + - name: Restore cached xmake dependencies + id: restore-depcache + uses: actions/cache/restore@v4 + with: + path: ${{ env.XMAKE_GLOBALDIR }}/.xmake/packages + key: Linux-${{ matrix.arch }}-${{ matrix.confs.mode }}${{ matrix.confs.cache_key }}-${{ steps.dep_hash.outputs.hash }}-W${{ steps.cache_key.outputs.key }} + + # Setup compilation mode and install project dependencies + - name: Configure xmake and install dependencies + run: xmake config --arch=${{ matrix.arch }} --mode=${{ matrix.confs.mode }} ${{ matrix.confs.config }} --ccache=n --unitybuild=y --yes + + # Save dependencies + - name: Save cached xmake dependencies + if: ${{ !steps.restore-depcache.outputs.cache-hit }} + uses: actions/cache/save@v4 + with: + path: ${{ env.XMAKE_GLOBALDIR }}/.xmake/packages + key: ${{ steps.restore-depcache.outputs.cache-primary-key }} + + # Cache assets downloading + - name: Restore cached assets + id: restore-assets + uses: actions/cache/restore@v4 + with: + path: assets + key: assets-${{ hashFiles('assets/examples_version.txt', 'assets/unittests_version.txt') }} + diff --git a/.github/workflows/linux-build.yml b/.github/workflows/linux-build.yml index 7285dc4..564c5ff 100644 --- a/.github/workflows/linux-build.yml +++ b/.github/workflows/linux-build.yml @@ -34,6 +34,12 @@ jobs: - name: Checkout repository uses: actions/checkout@v4 + - name: Detect if running in act + run: | + if grep -q "act" <<< "$GITHUB_ACTOR"; then + echo "XMAKE_ROOT=y" >> $GITHUB_ENV + fi + - uses: NcStudios/VulkanCI@v1.0 # Install system dependencies diff --git a/.github/workflows/opengl-es-test.yml b/.github/workflows/opengl-es-test.yml index 38d53fd..67fc915 100644 --- a/.github/workflows/opengl-es-test.yml +++ b/.github/workflows/opengl-es-test.yml @@ -38,6 +38,12 @@ jobs: - name: Checkout repository uses: actions/checkout@v4 + - name: Detect if running in act + run: | + if grep -q "act" <<< "$GITHUB_ACTOR"; then + echo "XMAKE_ROOT=y" >> $GITHUB_ENV + fi + # Force xmake to a specific folder (for cache) - name: Set xmake env run: echo "XMAKE_GLOBALDIR=${{ runner.workspace }}/xmake-global" >> $GITHUB_ENV diff --git a/.github/workflows/opengl-test.yml b/.github/workflows/opengl-test.yml index e0582ae..50ebe74 100644 --- a/.github/workflows/opengl-test.yml +++ b/.github/workflows/opengl-test.yml @@ -38,6 +38,12 @@ jobs: - name: Checkout repository uses: actions/checkout@v4 + - name: Detect if running in act + run: | + if grep -q "act" <<< "$GITHUB_ACTOR"; then + echo "XMAKE_ROOT=y" >> $GITHUB_ENV + fi + # Force xmake to a specific folder (for cache) - name: Set xmake env run: echo "XMAKE_GLOBALDIR=${{ runner.workspace }}/xmake-global" >> $GITHUB_ENV diff --git a/.github/workflows/software-test.yml b/.github/workflows/software-test.yml index 80adce0..a2e3997 100644 --- a/.github/workflows/software-test.yml +++ b/.github/workflows/software-test.yml @@ -38,6 +38,12 @@ jobs: - name: Checkout repository uses: actions/checkout@v4 + - name: Detect if running in act + run: | + if grep -q "act" <<< "$GITHUB_ACTOR"; then + echo "XMAKE_ROOT=y" >> $GITHUB_ENV + fi + # Force xmake to a specific folder (for cache) - name: Set xmake env run: echo "XMAKE_GLOBALDIR=${{ runner.workspace }}/xmake-global" >> $GITHUB_ENV diff --git a/.github/workflows/vulkan-test.yml b/.github/workflows/vulkan-test.yml index 3d4173f..a45a8d0 100644 --- a/.github/workflows/vulkan-test.yml +++ b/.github/workflows/vulkan-test.yml @@ -38,6 +38,12 @@ jobs: - name: Checkout repository uses: actions/checkout@v4 + - name: Detect if running in act + run: | + if grep -q "act" <<< "$GITHUB_ACTOR"; then + echo "XMAKE_ROOT=y" >> $GITHUB_ENV + fi + - uses: NcStudios/VulkanCI@v1.0 # Force xmake to a specific folder (for cache) @@ -70,7 +76,7 @@ jobs: # Setup compilation mode and install project dependencies - name: Configure xmake and install dependencies - run: xmake config --arch=${{ matrix.arch }} --mode=${{ matrix.confs.mode }} ${{ matrix.confs.config }} --ccache=n --unitybuild=y --yes + run: xmake config --vulkan-tests=y --arch=${{ matrix.arch }} --mode=${{ matrix.confs.mode }} ${{ matrix.confs.config }} --ccache=n --unitybuild=y --yes # Save dependencies - name: Save cached xmake dependencies @@ -88,8 +94,7 @@ jobs: path: assets key: assets-${{ hashFiles('assets/examples_version.txt', 'assets/unittests_version.txt') }} - - name: Test + - name: Test Vulkan run: | - xmake config --vulkan-tests=y --arch=${{ matrix.arch }} --mode=${{ matrix.confs.mode }} ${{ matrix.confs.config }} --ccache=n --unitybuild=y --yes xmake build --yes VulkanUnitTests xmake run --yes VulkanUnitTests diff --git a/Sources/Backends/OpenGL/OpenGL.h b/Sources/Backends/OpenGL/OpenGL.h index cda9bdf..612e04c 100644 --- a/Sources/Backends/OpenGL/OpenGL.h +++ b/Sources/Backends/OpenGL/OpenGL.h @@ -9,6 +9,10 @@ #ifndef PULSE_OPENGL_H_ #define PULSE_OPENGL_H_ +#ifdef __STDC_NO_ATOMICS__ + #error "Atomic support is not present" +#endif + #define OPENGL_RETRIEVE_DRIVER_DATA_AS(handle, cast) ((cast)handle->driver_data) #include "OpenGLEnums.h" diff --git a/Sources/Backends/OpenGL/OpenGLDevice.c b/Sources/Backends/OpenGL/OpenGLDevice.c index b6d07af..1f62ccc 100644 --- a/Sources/Backends/OpenGL/OpenGLDevice.c +++ b/Sources/Backends/OpenGL/OpenGLDevice.c @@ -225,7 +225,7 @@ PulseDevice OpenGLCreateDevice(PulseBackend backend, PulseDevice* forbiden_devic #ifdef PULSE_PLAT_WINDOWS // WGL support - if(opengl_device->context_type == OPENGL_CONTEXT_WGL) + if(false) { // TODO: WGL device->context_type = OPENGL_CONTEXT_WGL; diff --git a/Tests/xmake.lua b/Tests/xmake.lua index 13d8f8a..144d6db 100644 --- a/Tests/xmake.lua +++ b/Tests/xmake.lua @@ -9,7 +9,7 @@ local nzsl_included = false function nzsl(backend) if not nzsl_included then add_repositories("nazara-engine-repo https://github.com/NazaraEngine/xmake-repo") - add_requires("nzsl >=2023.12.31", { configs = { shared = false, nzslc = true } }) + add_requires("nzsl", { configs = { shared = false, nzslc = true } }) if is_cross() then add_requires("nzsl~host", { kind = "binary", host = true }) end