From 512b8b61fec7a30443cc188fb8483ba4de66f0f6 Mon Sep 17 00:00:00 2001 From: Kbz-8 Date: Sun, 13 Apr 2025 17:35:25 +0200 Subject: [PATCH] yes --- .github/workflows/d3d11-test.yml | 0 .github/workflows/linux-build.yml | 8 --- .github/workflows/opengl-es-test.yml | 93 +++++++++++++++++++++++++++ .github/workflows/opengl-test.yml | 94 +++++++++++++++++++++++++++ .github/workflows/software-test.yml | 88 ++++++++++++++++++++++++++ .github/workflows/vulkan-test.yml | 95 ++++++++++++++++++++++++++++ .github/workflows/windows-build.yml | 7 -- 7 files changed, 370 insertions(+), 15 deletions(-) create mode 100644 .github/workflows/d3d11-test.yml create mode 100644 .github/workflows/opengl-es-test.yml create mode 100644 .github/workflows/opengl-test.yml create mode 100644 .github/workflows/software-test.yml create mode 100644 .github/workflows/vulkan-test.yml diff --git a/.github/workflows/d3d11-test.yml b/.github/workflows/d3d11-test.yml new file mode 100644 index 0000000..e69de29 diff --git a/.github/workflows/linux-build.yml b/.github/workflows/linux-build.yml index 3a4ffec..7285dc4 100644 --- a/.github/workflows/linux-build.yml +++ b/.github/workflows/linux-build.yml @@ -90,13 +90,5 @@ jobs: path: assets key: assets-${{ hashFiles('assets/examples_version.txt', 'assets/unittests_version.txt') }} - # Build the engine - name: Build Pulse run: xmake --yes - - # Test the engine - - 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/.github/workflows/opengl-es-test.yml b/.github/workflows/opengl-es-test.yml new file mode 100644 index 0000000..38d53fd --- /dev/null +++ b/.github/workflows/opengl-es-test.yml @@ -0,0 +1,93 @@ +name: OpenGL-ES-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/d3d11-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') }} + + - name: Test + run: | + xmake config --opengl-es-tests=y --arch=${{ matrix.arch }} --mode=${{ matrix.confs.mode }} ${{ matrix.confs.config }} --ccache=n --unitybuild=y --yes + xmake build --yes OpenGLESUnitTests + xmake run --yes OpenGLESUnitTests diff --git a/.github/workflows/opengl-test.yml b/.github/workflows/opengl-test.yml new file mode 100644 index 0000000..e0582ae --- /dev/null +++ b/.github/workflows/opengl-test.yml @@ -0,0 +1,94 @@ +name: OpenGL-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/d3d11-test.yml' + - '.github/workflows/vulkan-test.yml' + - '.github/workflows/opengl-es--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') }} + + - name: Test + run: | + xmake config --opengl-tests=y --arch=${{ matrix.arch }} --mode=${{ matrix.confs.mode }} ${{ matrix.confs.config }} --ccache=n --unitybuild=y --yes + xmake build --yes OpenGLUnitTests + xmake run --yes OpenGLUnitTests + diff --git a/.github/workflows/software-test.yml b/.github/workflows/software-test.yml new file mode 100644 index 0000000..80adce0 --- /dev/null +++ b/.github/workflows/software-test.yml @@ -0,0 +1,88 @@ +name: Software-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/d3d11-test.yml' + - '.github/workflows/vulkan-test.yml' + - '.github/workflows/opengl-test.yml' + - '.github/workflows/opengl-es-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/vulkan-test.yml b/.github/workflows/vulkan-test.yml new file mode 100644 index 0000000..3d4173f --- /dev/null +++ b/.github/workflows/vulkan-test.yml @@ -0,0 +1,95 @@ +name: Vulkan-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/d3d11-test.yml' + - '.github/workflows/opengl-test.yml' + - '.github/workflows/opengl-es--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 + + - uses: NcStudios/VulkanCI@v1.0 + + # 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') }} + + - name: Test + 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/.github/workflows/windows-build.yml b/.github/workflows/windows-build.yml index cb5595f..4f49c46 100644 --- a/.github/workflows/windows-build.yml +++ b/.github/workflows/windows-build.yml @@ -84,10 +84,3 @@ jobs: # Build the engine - name: Build Pulse run: xmake --yes - - # Test the engine - - name: Test Vulkan - run: | - xmake config --vulkan-tests=y --yes - xmake build --yes VulkanUnitTests - xmake run --yes VulkanUnitTests