From 79ec03a4b43473b1eced9e9882bdbff7378589ba Mon Sep 17 00:00:00 2001 From: Jack Wright <68773585+Ethirix@users.noreply.github.com> Date: Wed, 21 Jan 2026 23:19:23 +0000 Subject: [PATCH 1/8] Converted to Composite Actions --- .github/workflows/codeql.yml | 32 +++++++++++-------- .../pr-xplat-build-test-autocomplete.yml | 16 ++-------- .github/workflows/pr-xplat-build-test.yml | 31 +++++++++--------- libvlmath/CMakeLists.txt | 4 +-- 4 files changed, 38 insertions(+), 45 deletions(-) diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index 05215b9..2bca686 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -2,39 +2,43 @@ name: CodeQL on: pull_request: branches: [ "master" ] - + jobs: codeql: + runs-on: ubuntu-latest permissions: security-events: write packages: read - - strategy: + contents: read + + strategy: fail-fast: true - matrix: include: - language: c-cpp build-mode: manual - manual-command-list: > + manual-command-list: > cmake -S . -B ./build -G "Ninja Multi-Config" -DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++ -DCMAKE_CXX_FLAGS="-O3 -Wall -std=c++23" cmake --build ./build --config Release - + - language: actions build-mode: none - uses: VolcanusLucis/.github/.github/workflows/shared-codeql.yml@master - with: - language: ${{ matrix.language }} - build-mode: ${{ matrix.build-mode }} - manual-command-list: ${{ matrix.manual-command-list }} - + steps: + - run: echo "Running CodeQL for ${{ matrix.language }}" + - name: Run CodeQL + uses: VolcanusLucis/.github/.github/actions/shared-codeql@master + with: + language: ${{ matrix.language }} + build-mode: ${{ matrix.build-mode }} + manual-command-list: ${{ matrix.manual-command-list }} + run-codeql: permissions: contents: none - + if: always() runs-on: ubuntu-latest needs: codeql @@ -43,4 +47,4 @@ jobs: - if: ${{ contains(needs.*.result, 'failure') || contains(needs.*.result, 'cancelled') || contains(needs.*.result, 'skipped') }} - run: exit 1 + run: exit 1 \ No newline at end of file diff --git a/.github/workflows/pr-xplat-build-test-autocomplete.yml b/.github/workflows/pr-xplat-build-test-autocomplete.yml index 942d195..7b4439e 100644 --- a/.github/workflows/pr-xplat-build-test-autocomplete.yml +++ b/.github/workflows/pr-xplat-build-test-autocomplete.yml @@ -1,25 +1,15 @@ name: Cross-platform Builds Autocomplete permissions: contents: read - + on: pull_request: - paths-ignore: + paths-ignore: - 'libvlmath/**' - 'toolchains/**' - 'CMake**.**' - + jobs: - build: - uses: VolcanusLucis/.github/.github/workflows/build-cmake-project-presets.yml@master - with: - architecture: '' - build-tool: '' - build-type: '' - compiler: '' - target: '' - bypass: true - build-all: if: always() runs-on: ubuntu-latest diff --git a/.github/workflows/pr-xplat-build-test.yml b/.github/workflows/pr-xplat-build-test.yml index 3ae339e..e9e6c1c 100644 --- a/.github/workflows/pr-xplat-build-test.yml +++ b/.github/workflows/pr-xplat-build-test.yml @@ -1,7 +1,4 @@ name: Cross-platform Builds -permissions: - contents: read - on: pull_request: branches: [ 'master' ] @@ -9,12 +6,15 @@ on: - 'libvlmath/**' - 'toolchains/**' - 'CMake**.**' - + jobs: build: + runs-on: ubuntu-latest + permissions: + contents: read + strategy: fail-fast: true - matrix: build-tool: [ ninja ] compiler: [ mingw64, gcc ] @@ -26,14 +26,15 @@ jobs: compiler: gcc - target: linux compiler: mingw64 - - uses: VolcanusLucis/.github/.github/workflows/build-cmake-project-presets.yml@master - with: - architecture: ${{ matrix.architecture }} - build-tool: ${{ matrix.build-tool }} - build-type: ${{ matrix.build-type }} - compiler: ${{ matrix.compiler }} - target: ${{ matrix.target }} + + steps: + - uses: VolcanusLucis/.github/.github/actions/build-cmake-project-presets@master + with: + architecture: ${{ matrix.architecture }} + build-tool: ${{ matrix.build-tool }} + build-type: ${{ matrix.build-type }} + compiler: ${{ matrix.compiler }} + target: ${{ matrix.target }} build-all: if: always() @@ -42,6 +43,6 @@ jobs: steps: # https://github.com/orgs/community/discussions/26822 - if: ${{ contains(needs.*.result, 'failure') - || contains(needs.*.result, 'cancelled') - || contains(needs.*.result, 'skipped') }} + || contains(needs.*.result, 'cancelled') + || contains(needs.*.result, 'skipped') }} run: exit 1 \ No newline at end of file diff --git a/libvlmath/CMakeLists.txt b/libvlmath/CMakeLists.txt index 2051bb4..92e1fb4 100644 --- a/libvlmath/CMakeLists.txt +++ b/libvlmath/CMakeLists.txt @@ -3,6 +3,4 @@ ) target_compile_features(${PROJECT_NAME} PUBLIC cxx_std_23) -target_include_directories(${PROJECT_NAME} PUBLIC "${PROJECT_SOURCE_DIR}") - - +target_include_directories(${PROJECT_NAME} PUBLIC "${PROJECT_SOURCE_DIR}") \ No newline at end of file From 177ebce5e5b908a1c95879162dc8f3e4667d8b3c Mon Sep 17 00:00:00 2001 From: Jack Wright <68773585+Ethirix@users.noreply.github.com> Date: Wed, 21 Jan 2026 23:24:58 +0000 Subject: [PATCH 2/8] Fixed Bypass Action Running Always --- .github/workflows/pr-xplat-build-test-autocomplete.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/pr-xplat-build-test-autocomplete.yml b/.github/workflows/pr-xplat-build-test-autocomplete.yml index 7b4439e..f013a87 100644 --- a/.github/workflows/pr-xplat-build-test-autocomplete.yml +++ b/.github/workflows/pr-xplat-build-test-autocomplete.yml @@ -11,7 +11,6 @@ on: jobs: build-all: - if: always() runs-on: ubuntu-latest steps: - run: echo "No builds needed!" \ No newline at end of file From 2c832e677f0ef699a8985e59f83ac5c62ce44f91 Mon Sep 17 00:00:00 2001 From: Jack Wright <68773585+Ethirix@users.noreply.github.com> Date: Thu, 22 Jan 2026 16:25:48 +0000 Subject: [PATCH 3/8] Removed `-autocomplete.yml` Workflow --- .../pr-xplat-build-test-autocomplete.yml | 16 ------------ .github/workflows/pr-xplat-build-test.yml | 25 ++++++++++++++++--- 2 files changed, 21 insertions(+), 20 deletions(-) delete mode 100644 .github/workflows/pr-xplat-build-test-autocomplete.yml diff --git a/.github/workflows/pr-xplat-build-test-autocomplete.yml b/.github/workflows/pr-xplat-build-test-autocomplete.yml deleted file mode 100644 index f013a87..0000000 --- a/.github/workflows/pr-xplat-build-test-autocomplete.yml +++ /dev/null @@ -1,16 +0,0 @@ -name: Cross-platform Builds Autocomplete -permissions: - contents: read - -on: - pull_request: - paths-ignore: - - 'libvlmath/**' - - 'toolchains/**' - - 'CMake**.**' - -jobs: - build-all: - runs-on: ubuntu-latest - steps: - - run: echo "No builds needed!" \ No newline at end of file diff --git a/.github/workflows/pr-xplat-build-test.yml b/.github/workflows/pr-xplat-build-test.yml index e9e6c1c..b697581 100644 --- a/.github/workflows/pr-xplat-build-test.yml +++ b/.github/workflows/pr-xplat-build-test.yml @@ -8,7 +8,25 @@ on: - 'CMake**.**' jobs: + check-files: + runs-on: ubuntu-latest + permissions: + contents: read + + steps: + - uses: actions/checkout@v4 + - id: changed-files + uses: tj-actions/changed-files@v47.0.1 + with: + base_sha: ${{ github.base_ref }} + files: | + libvlmath/** + toolchains/** + CMake**.** + - run: echo "files_found=${{ steps.changed-files.outputs.any_modified }}" >> $GITHUB_ENV + build: + if: env.files_found runs-on: ubuntu-latest permissions: contents: read @@ -42,7 +60,6 @@ jobs: needs: build steps: # https://github.com/orgs/community/discussions/26822 - - if: ${{ contains(needs.*.result, 'failure') - || contains(needs.*.result, 'cancelled') - || contains(needs.*.result, 'skipped') }} - run: exit 1 \ No newline at end of file + - if: contains(needs.*.result, 'failure') || contains(needs.*.result, 'cancelled') + run: exit 1 + \ No newline at end of file From 2c9742d1aff42570684c07426abc0fae26612807 Mon Sep 17 00:00:00 2001 From: Jack Wright <68773585+Ethirix@users.noreply.github.com> Date: Thu, 22 Jan 2026 16:39:13 +0000 Subject: [PATCH 4/8] Changed from `env` to `outputs` for `files_found` --- .github/workflows/pr-xplat-build-test.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/pr-xplat-build-test.yml b/.github/workflows/pr-xplat-build-test.yml index b697581..004a5c6 100644 --- a/.github/workflows/pr-xplat-build-test.yml +++ b/.github/workflows/pr-xplat-build-test.yml @@ -23,10 +23,11 @@ jobs: libvlmath/** toolchains/** CMake**.** - - run: echo "files_found=${{ steps.changed-files.outputs.any_modified }}" >> $GITHUB_ENV + - run: echo "files_found=${{ steps.changed-files.outputs.any_modified }}" >> $GITHUB_OUTPUT build: - if: env.files_found + if: needs.check-files.outputs.files_found + needs: check-files runs-on: ubuntu-latest permissions: contents: read From cd7abd4a78268a0109f7a2174cef695ad1786bcd Mon Sep 17 00:00:00 2001 From: Jack Wright <68773585+Ethirix@users.noreply.github.com> Date: Thu, 22 Jan 2026 16:52:04 +0000 Subject: [PATCH 5/8] Fixed `files_found` Check on `if:` --- .github/workflows/pr-xplat-build-test.yml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/.github/workflows/pr-xplat-build-test.yml b/.github/workflows/pr-xplat-build-test.yml index 004a5c6..8d30eda 100644 --- a/.github/workflows/pr-xplat-build-test.yml +++ b/.github/workflows/pr-xplat-build-test.yml @@ -23,12 +23,13 @@ jobs: libvlmath/** toolchains/** CMake**.** - - run: echo "files_found=${{ steps.changed-files.outputs.any_modified }}" >> $GITHUB_OUTPUT + - shell: bash + run: echo "files_found=${{ steps.changed-files.outputs.any_modified }}" >> $GITHUB_OUTPUT build: - if: needs.check-files.outputs.files_found - needs: check-files runs-on: ubuntu-latest + needs: check-files + if: ${{ needs.check-files.outputs.files_found }} permissions: contents: read From b698f46a286e02580457eb8749e8575c9b972fc2 Mon Sep 17 00:00:00 2001 From: Jack Wright <68773585+Ethirix@users.noreply.github.com> Date: Thu, 22 Jan 2026 17:10:59 +0000 Subject: [PATCH 6/8] `build-all` fails if `files_found == true` and `build.results == skipped` --- .github/workflows/pr-xplat-build-test.yml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/workflows/pr-xplat-build-test.yml b/.github/workflows/pr-xplat-build-test.yml index 8d30eda..3925541 100644 --- a/.github/workflows/pr-xplat-build-test.yml +++ b/.github/workflows/pr-xplat-build-test.yml @@ -59,9 +59,11 @@ jobs: build-all: if: always() runs-on: ubuntu-latest - needs: build + needs: [check-files, build] steps: # https://github.com/orgs/community/discussions/26822 - - if: contains(needs.*.result, 'failure') || contains(needs.*.result, 'cancelled') + - if: contains(needs.*.result, 'failure') + || contains(needs.*.result, 'cancelled') + || (needs.check-files.outputs.files_found && contains(needs.*.results, 'skipped')) run: exit 1 \ No newline at end of file From 0c853c816a56796bf958e99e2b6b6af3e6fac0dc Mon Sep 17 00:00:00 2001 From: Jack Wright <68773585+Ethirix@users.noreply.github.com> Date: Thu, 22 Jan 2026 17:17:18 +0000 Subject: [PATCH 7/8] Added `files_found` Print --- .github/workflows/pr-xplat-build-test.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/pr-xplat-build-test.yml b/.github/workflows/pr-xplat-build-test.yml index 3925541..e2b54f9 100644 --- a/.github/workflows/pr-xplat-build-test.yml +++ b/.github/workflows/pr-xplat-build-test.yml @@ -61,6 +61,7 @@ jobs: runs-on: ubuntu-latest needs: [check-files, build] steps: + - run: echo ${{ needs.check-files.outputs.files_found }} # https://github.com/orgs/community/discussions/26822 - if: contains(needs.*.result, 'failure') || contains(needs.*.result, 'cancelled') From 993a8b2a757ec7b43c00152b63300305705594df Mon Sep 17 00:00:00 2001 From: Jack Wright <68773585+Ethirix@users.noreply.github.com> Date: Thu, 22 Jan 2026 17:35:38 +0000 Subject: [PATCH 8/8] Added `outputs.files_found` to `check-files` --- .github/workflows/pr-xplat-build-test.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/pr-xplat-build-test.yml b/.github/workflows/pr-xplat-build-test.yml index e2b54f9..db17e50 100644 --- a/.github/workflows/pr-xplat-build-test.yml +++ b/.github/workflows/pr-xplat-build-test.yml @@ -12,6 +12,8 @@ jobs: runs-on: ubuntu-latest permissions: contents: read + outputs: + files_found: ${{ steps.found-files.outputs.files_found }} steps: - uses: actions/checkout@v4 @@ -24,6 +26,7 @@ jobs: toolchains/** CMake**.** - shell: bash + id: found-files run: echo "files_found=${{ steps.changed-files.outputs.any_modified }}" >> $GITHUB_OUTPUT build: @@ -61,7 +64,6 @@ jobs: runs-on: ubuntu-latest needs: [check-files, build] steps: - - run: echo ${{ needs.check-files.outputs.files_found }} # https://github.com/orgs/community/discussions/26822 - if: contains(needs.*.result, 'failure') || contains(needs.*.result, 'cancelled')