Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Methane Kit v0.8.0: enhance program bindings configuration, performance and simplified shader buffer arguments setup with root constants #147

Merged
merged 210 commits into from
Dec 31, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
210 commits
Select commit Hold shift + click to select a range
e36e7d2
Add unit-tests for RHI ViewState
egorodet Jul 15, 2023
fcc7aa2
Merge branch 'master' into develop
egorodet Aug 6, 2023
7c545db
Merge branch 'master' into develop
egorodet Aug 7, 2023
a322bca
Extend RHI Fence test with value checks
egorodet Sep 21, 2023
462de1a
Merge branch 'master' into develop
egorodet Nov 17, 2023
be49f95
Add Apple application RPATH to /usr/local/lib to find libvulkan.1.lib
egorodet Nov 19, 2023
0120c3f
Add BufferSet unit-tests
egorodet Nov 19, 2023
eec1752
Add CommandKit unit-tests
egorodet Nov 21, 2023
81e572c
Add CommandListDebugGroup unit-tests
egorodet Dec 10, 2023
7bbd50d
Use std::string_view for sub-group names of CommandListDebugGroup
egorodet Dec 10, 2023
c9d8bb4
Fix clang linker warnings on MacOS
egorodet Dec 10, 2023
eb7a3df
Fix linker error
egorodet Dec 10, 2023
46b2179
Use -no_warn_duplicate_libraries flag only for AppleClang version >= …
egorodet Dec 11, 2023
aa5310d
Try to fix MacOS Vulkan build by removing DXC binaries from quarantine
egorodet Dec 12, 2023
ab07974
Fix DirectXShaderCompiler binary unpack
egorodet Dec 12, 2023
693537f
Fix DirectXShaderCompiler binary unpack once again
egorodet Dec 12, 2023
118aabb
Mute MSMC deprecation MSVC warnings about use of stdext::checked_arra…
egorodet Dec 12, 2023
4b24e48
Check MacOS build with update of DXC to v1.7.2308
egorodet Dec 30, 2023
f329b8a
Check Windows build with update of DXC to v1.7.2308
egorodet Jan 1, 2024
af426cd
Fix Windows builds with correct symbols of D3DCompiler
egorodet Jan 1, 2024
d894b42
Fix DirectXShaderCompiler build with remove of missing header config.h
egorodet Jan 1, 2024
cdf3d01
Update DXC binaries to v1.7.2308
egorodet Jan 2, 2024
30c869f
Update DXC version in Externals/README.md
egorodet Jan 2, 2024
bf09848
Add experimental support of Apple's Metal Shader Converter instead of…
egorodet Jan 3, 2024
51c98ed
Update SPIRVCross with pre-built binaries to vulkan-sdk-1.3.268.0
egorodet Jan 4, 2024
7b81282
Bump MethaneKit version to v0.7.4
egorodet Jan 16, 2024
3629e66
Merge remote-tracking branch 'origin/develop' into develop
egorodet Jan 16, 2024
307c866
Update Tracy to v0.10
egorodet Jan 17, 2024
d58d563
Use Metal Shader Converter binaries from separate repository
egorodet Jan 4, 2024
f04f390
Fix DirectX compiled shaders loading from embedded resources
egorodet Jan 5, 2024
ca7f879
Update IttApi to v3.24.6
egorodet Jan 21, 2024
116c119
Merge branch 'master' into develop
egorodet Feb 10, 2024
9e25932
Add reflection of Metal Argument Buffers layout
egorodet Feb 11, 2024
fc40060
Update actions to use Node.js 20 to fix deprecation warnings
egorodet Feb 11, 2024
f8b3d49
Refactor Argument Buffer Layout reflection
egorodet Feb 11, 2024
9f70d17
Add Metal argument buffer layout in DescriptorManager
egorodet Feb 12, 2024
7d82704
Add Metal argument buffer initialization and bindings setup in comman…
egorodet Feb 15, 2024
9ae140d
Add Metal useResources calls recording in ProgramBindings
egorodet Feb 18, 2024
e840053
Fix Metal shader buffers index collision issue with input vertex buffer
egorodet Feb 19, 2024
8f51712
Add Metal program binding debug logging of argument buffers initializ…
egorodet Feb 21, 2024
6be1021
Fix Metal app crash with argument buffers because of sampler flag sup…
egorodet Feb 22, 2024
fd4f0b9
Fix Metal argument buffer offsets after ProgramBindings::CreateCopy
egorodet Feb 23, 2024
33921bf
Fix Metal program bindings completing initialization in DescriptorMan…
egorodet Feb 24, 2024
ec439a0
Rework Metal argument bindings handling in DescriptorManager, support…
egorodet Feb 24, 2024
80748e2
Fix build and fix regular Metal bindings
egorodet Feb 24, 2024
edf3b8b
Add updating of program bindings in Metal arguments buffer
egorodet Feb 24, 2024
2082bfb
Improve performance and stability of Metal Parallel Rendering and arg…
egorodet Feb 25, 2024
431b05d
Optimize calls to Metal useResources when using argument buffers
egorodet Feb 27, 2024
4e00ce2
Add shader argument type in HLSL as register space definitions
egorodet Feb 28, 2024
3a60df7
Fix new MSVC warning: throw copies non-copyable type
egorodet Mar 3, 2024
366907c
Enable argument access types definition in HLSL shaders code instead …
egorodet Mar 9, 2024
55f7df4
Add support of shader argument access type definition from HLSL in Di…
egorodet Mar 10, 2024
e49764a
Fix STL deprecation warnings in FMT library
egorodet Mar 10, 2024
991d7df
Merge branch 'master' into develop
egorodet May 7, 2024
b1ba139
Split Metal argument buffer by argument binding access types
egorodet May 10, 2024
bf12ff4
Temporary switch Sonar-Scan action back to macos-13 hosted runner to …
egorodet May 11, 2024
ee10405
Refactor Metal ProgramBindings to reduce code duplication with help o…
egorodet May 11, 2024
0e31a20
Optimize Metal ProgramBindings with constant argument buffers setup i…
egorodet May 14, 2024
7cf2642
Merge remote-tracking branch 'refs/remotes/origin/master' into develop
egorodet Jun 16, 2024
12a4fca
Update FMT to v10.2.1
egorodet Jun 15, 2024
d810d26
Add Rhi::RootConstant initial support in Rhi::ProgramArgumentBinding,…
egorodet Jun 15, 2024
be46692
Move ProgramArgument and Accessor to the separate header/source files
egorodet Jun 16, 2024
8846544
Fix include paths format in HLSL files
egorodet Jun 17, 2024
56fc78d
Add game rule selection with constant buffer in Console Compute tutorial
egorodet Jun 22, 2024
b5035f4
Add RootConstantBuffer class for storing root constants on the GPU
egorodet Jul 14, 2024
de41435
Fix bug and GCC error
egorodet Jul 14, 2024
58f0c8c
Update CMakeModules to the latest commit with new Windows SDK version…
egorodet Jul 22, 2024
9c2ea79
Allow manual dispatch of CI Build, CodeQL and Sonar Scan workflows in…
egorodet Jul 25, 2024
cc9d23d
Update CMakeModules with fix for ARM64 architecture detection from VS…
egorodet Aug 3, 2024
4bbdd32
Update CPM.cmake to v0.40.2
egorodet Aug 3, 2024
9f4be9d
Update codecov-action to v4 in "CI Sonar Scan" workflow
egorodet Aug 3, 2024
469dbf3
Add missing header include for Linux build and disable useless GCC wa…
egorodet Aug 5, 2024
3589b07
Update Catch2 to v3.6.0
egorodet Aug 5, 2024
7aca872
Add root constant bindings support in DirectX back-end
egorodet Aug 12, 2024
d5941ad
Update CLion code style
egorodet Aug 17, 2024
9ac8e63
Fix build errors
egorodet Aug 17, 2024
599e284
Fix Linux GCC build errors
egorodet Aug 18, 2024
f59d7b4
Fix debug build errors and workaround Linux GCC 13 compiler bug
egorodet Aug 18, 2024
6f62af1
Fix non-Linux build
egorodet Aug 18, 2024
5c951f4
Fix MacOS build
egorodet Aug 18, 2024
58d1920
Add RootConstant support to Vulkan ProgramBindings via DescriptorSets…
egorodet Aug 22, 2024
8edb154
Add RootConstant support to Metal ProgramBindings via argument indexe…
egorodet Aug 26, 2024
feff0ca
Fix writing resource ids to argument buffers on argument binding or r…
egorodet Aug 27, 2024
da255a3
Add support of prioritizing receivers in emitter list
egorodet Sep 1, 2024
7440052
Fix EventsTest build
egorodet Sep 2, 2024
36a5aaf
Fix Windows build
egorodet Sep 2, 2024
e1d9c7e
Change events connection priority type from unsigned to signed integer
egorodet Sep 2, 2024
461df85
Enable RootConstant setup from ProgramBindings constructor, use root …
egorodet Sep 4, 2024
0b49273
Fix Linux GCC build error
egorodet Sep 4, 2024
3e42355
Fix Frame-Constant bindings
egorodet Sep 7, 2024
b0e2ddd
Fix root-constant setup
egorodet Sep 7, 2024
2ee8851
Fix Vulkan-validation issues revealed by Vulkan SDK 1.3.290.0
egorodet Sep 11, 2024
2be2476
Fix RootConstant setup in ProgramBindings constructor for Vulkan (not…
egorodet Sep 11, 2024
da0a033
Fix Linux build
egorodet Sep 11, 2024
293dd66
Put remaining targets under folders in Visual Studio
egorodet Sep 12, 2024
c3418b5
Fix RootConstant setup in ProgramBindings constructor for DirectX
egorodet Sep 12, 2024
e857502
Fix program bindings copy with root constant argument values
egorodet Sep 13, 2024
0861204
Use root-constant values instead of buffers for program argument bind…
egorodet Sep 13, 2024
285ef47
Fix Metal RHI build with XCode 16 for macOS Sequoia
egorodet Sep 17, 2024
92eb36b
Fix ShadowCube uniform structs alignment for Vulkan build on macOS
egorodet Sep 17, 2024
aaaf92a
Fix MacOS build compatibility with older Xcode versions
egorodet Sep 17, 2024
3dd6478
Rename pointer variables to follow code convention with _ptr suffix
egorodet Sep 19, 2024
09bed34
Fix MacOS build
egorodet Sep 20, 2024
1329652
Fix Linux build
egorodet Sep 21, 2024
e2d38e1
Move TexturedCube constants from header to cpp
egorodet Sep 21, 2024
104f0c4
Update GH actions to use latest version of Node.js
egorodet Sep 21, 2024
58f1f71
Rename META_CHECK macroses: remove ARG suffix
egorodet Sep 21, 2024
ab90af2
Split RootConstantBuffer of program to mutable, constant and frame-co…
egorodet Sep 21, 2024
1e97c1f
Use shader register space for root constant arguments specification
egorodet Sep 22, 2024
38cd321
Revert "Use shader register space for root constant arguments specifi…
egorodet Sep 22, 2024
4648f7c
Add shader argument declaration macroses to simplify program setup wi…
egorodet Sep 22, 2024
d2d1756
Fix GPU timestamp queries for DirectX
egorodet Sep 25, 2024
d30b09a
Update Tracy to v0.11.1.1
egorodet Sep 25, 2024
b0bfccd
Optimize root-constant updates without program bindings re-initializa…
egorodet Sep 26, 2024
24a72ca
Prevent dynamic memory allocations during root-constant setup in prog…
egorodet Sep 26, 2024
de67bb0
Optimize update root-constant resource views for Metal
egorodet Sep 26, 2024
4186beb
Add more command line options to Build.bat
egorodet Sep 27, 2024
64ba169
Fix DirectX 12 crash in Profile build on Windows 10 due to invalid in…
egorodet Sep 27, 2024
b5f8c54
Fix constant buffer views alignment in root constant buffer for DirectX
egorodet Sep 28, 2024
6cce0d0
Update VulkanHeaders to v1.3.296
egorodet Sep 28, 2024
3a71b28
Update Vulkan SDK to v1.3.290.0 on macOS CI
egorodet Sep 28, 2024
b777fd6
Fix wrong uniforms binding in ShadowCube tutorial
egorodet Sep 29, 2024
7d92a98
Use RootConstant for Text program bindings
egorodet Sep 29, 2024
ab1c4ce
Retain root constant buffers in program bindings when applied, so tha…
egorodet Sep 30, 2024
d6ea562
Rework retaining of root-constant buffers to reduce runtime overhead
egorodet Oct 1, 2024
6ec0bd1
Add missing connection to root-constant buffers from program bindings…
egorodet Oct 2, 2024
e9aaa06
Add program bindings tests of root-constant values
egorodet Oct 5, 2024
e7356f6
Refactor text resource updates
egorodet Oct 5, 2024
7de1ed4
Fix root constant argument binding after re-creating program bindings…
egorodet Oct 5, 2024
c694b3a
Add validation check of the root-constant buffer range reservation
egorodet Oct 5, 2024
c8f68e4
Update CubeMapArray and ParallelRendering tutorials to use root const…
egorodet Oct 13, 2024
c4f7f33
Fix MacOS build
egorodet Oct 13, 2024
67b15a7
Optimize parallel use of root-constant buffer
egorodet Oct 13, 2024
5e73cd9
Fix Linux build
egorodet Oct 14, 2024
3393114
Keep two versions of ParallelRendering app in one: addressable buffer…
egorodet Oct 14, 2024
5fc8aa1
Fix multithreaded access violations of RootConstant and Metal Argumen…
egorodet Oct 15, 2024
e0f15d7
Fix MacOS Profile build
egorodet Oct 15, 2024
9095a31
Disable dynamic buffer offsets for buffer views in Vulkan because of …
egorodet Oct 16, 2024
e86fcdc
Add paddings to Uniforms of ParallelRendering app
egorodet Oct 16, 2024
89fb281
Add ParallelRendering app variant name in title
egorodet Oct 16, 2024
36e4d2b
Use root-constant in ScreenQuad
egorodet Oct 17, 2024
5d2c494
Fix code alignment in META_CHECK macroses
egorodet Oct 17, 2024
0aeb9d7
Add new run configurations for CLion
egorodet Oct 18, 2024
192f518
Fix parallel resource views initialization in Vulkan
egorodet Oct 18, 2024
25aa8a3
Remove constant check for root-constant arguments, since resource vie…
egorodet Oct 19, 2024
2e3b99e
Use root-constant instead of uniform buffer in ConsoleCompute tutorial
egorodet Oct 19, 2024
7a10638
Use META_PROGRAM_ARG macros extensively
egorodet Oct 19, 2024
d7f41b3
Rename program argument value types and add RootConstValue type
egorodet Oct 19, 2024
46d50b9
Fix unit-test failure
egorodet Oct 20, 2024
cdf61e0
Rename program argument value types
egorodet Oct 20, 2024
3450624
Add support of Root32BitConstants in DirectX ProgramBindings via Prog…
egorodet Oct 20, 2024
3e72c31
Add test of root constant value in ProgramBindings
egorodet Oct 20, 2024
1ec3a62
Fix program bindings counter
egorodet Oct 20, 2024
2756175
Add support of PushConstants in Vulkan ProgramBindings via ProgramArg…
egorodet Oct 26, 2024
369653c
Fix build: add missing header include
egorodet Oct 26, 2024
dea3b1a
Fix size of Constants to match in HLSL/C++ for DX/VK
egorodet Oct 26, 2024
c43bdfb
Add support of RootConstantValue argument bindings in Metal ProgramBi…
egorodet Oct 27, 2024
526f70d
Add support of RootConstantValue argument bindings in Metal ProgramBi…
egorodet Oct 29, 2024
2ffe3de
Extend coverage of ProgramBindings unit-test
egorodet Nov 1, 2024
7bce808
Fix CodeCov coverage results upload
egorodet Nov 2, 2024
e8b466b
Publish test results to CodeCov server
egorodet Nov 2, 2024
8993294
Fix CodeCov test results file pattern
egorodet Nov 2, 2024
f5c5c69
Update version of action-download-artifact to v7
egorodet Dec 2, 2024
c75b17a
Update HelloCube tutorial documentation
egorodet Dec 7, 2024
b5fba33
Update TexturedCube tutorial documentation
egorodet Dec 8, 2024
ff73ed9
Update ShadowCube tutorial documentation
egorodet Dec 8, 2024
de23003
Write brief documentation for CubeMapArray tutorial
egorodet Dec 9, 2024
f7a3e73
Write brief documentation for ParallelRendering tutorial
egorodet Dec 10, 2024
905476f
Add descriptions to ParallelRendering tutorial documentation
egorodet Dec 11, 2024
d1fa6f4
Update FreeType2 external repo to v2.13.3
egorodet Dec 14, 2024
0a7f13a
Update FMT external repo to v11.0.2
egorodet Dec 14, 2024
df5b4ec
Fix build after FMT update
egorodet Dec 14, 2024
11e2bfa
Update CLI11 external repo to latest mainline
egorodet Dec 14, 2024
88154aa
Update Tracy external repo to v0.12.0.1 (latest master, i.e. pre-rele…
egorodet Dec 15, 2024
dffd66c
Update IttApi external repo to v3.25.3
egorodet Dec 15, 2024
f53f464
Update library versions in Externals/README.md
egorodet Dec 15, 2024
4e59c34
Update Catch2 external repo to v3.7.1
egorodet Dec 15, 2024
b3b5ab1
Update MagicEnum external repo to v0.9.7
egorodet Dec 15, 2024
20ccfd1
Update FTXUI external repo to v5.0.0
egorodet Dec 15, 2024
3d24481
Update BoostNowide external repo to v1.87.0
egorodet Dec 15, 2024
c01c89d
Update HLSL++ external repo to v3.5.3
egorodet Dec 15, 2024
fd489a6
Update TaskFlow external repo to v3.8.0
egorodet Dec 15, 2024
7ed2f54
Fix Windows build
egorodet Dec 15, 2024
08c8ea4
Update SPIRVCross external repo to v1.3.296.0
egorodet Dec 15, 2024
0840443
Update DirectXHeaders external repo to v1.3.296.0
egorodet Dec 15, 2024
f331634
Update DirectXTex external repo to v2.0.6 (oct 2024)
egorodet Dec 15, 2024
d5451b1
Update Tracy external repo to v0.11.2.1
egorodet Dec 17, 2024
16838a4
Bump MethaneKit version to v0.8.0
egorodet Dec 17, 2024
988b84a
Update TaskFlow extern repo to v3.8.0.2 with addition hot-fix
egorodet Dec 19, 2024
92745a7
Fix Metal crash due to executing state of the current frame command l…
egorodet Dec 25, 2024
42cf85e
Add CMake option METHANE_METAL_FRAMES_SYNC_WITH_DISPATCH_SEMAPHORE
egorodet Dec 25, 2024
cfae0f6
Fix Metal frame-synchronization issue (sporadic crash on wrong comman…
egorodet Dec 25, 2024
9171dcc
Update Vulkan frame synchronization to align with Metal
egorodet Dec 25, 2024
a93511c
Minor fixes for frame synchronization
egorodet Dec 27, 2024
d33a03c
Update build version in shell scripts
egorodet Dec 27, 2024
7fc13fd
Minor fix in README of Parallel Rendering
egorodet Dec 27, 2024
690ccfd
Update DirectX frame synchronization to align with Vulkan and Metal
egorodet Dec 27, 2024
6d02e75
Fix static-analysis issues
egorodet Dec 28, 2024
592b68c
Fix static-analysis issues: apply hidden friend pattern to binary ope…
egorodet Dec 28, 2024
59a6225
Checkout all repository history for Sonar scan action
egorodet Dec 28, 2024
2bef25d
Fix static-analysis issues: apply hidden friend pattern to binary ope…
egorodet Dec 29, 2024
a3456c9
Fix static_analysis issues with const_cast: remove const from context…
egorodet Dec 29, 2024
b7702cf
Fix remaining static analysis issues
egorodet Dec 29, 2024
90d0f6a
Replace FIXME comment with NOTE, since this is fine
egorodet Dec 30, 2024
6853f6c
Enhance documentation with help of Copilot
egorodet Dec 30, 2024
922a59b
Fix unused variables
egorodet Dec 30, 2024
45b6715
Try to enable CodeQL scan on Windows
egorodet Dec 30, 2024
d0d7151
Enable Metal Argument Buffers as a primary binding mechanism by default
egorodet Dec 31, 2024
5d583c1
Update iOS deployment target to 16.0
egorodet Dec 31, 2024
b5222a5
Update CPM.cmake to v0.40.5
egorodet Dec 31, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
21 changes: 11 additions & 10 deletions .github/workflows/ci-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
name: '🏗️ CI Build'

on:
workflow_dispatch:
push:
branches: [ master, develop ]
paths:
Expand Down Expand Up @@ -32,11 +33,11 @@ on:

env:
METHANE_VERSION_MAJOR: 0
METHANE_VERSION_MINOR: 7
METHANE_VERSION_PATCH: 3
METHANE_VERSION_MINOR: 8
METHANE_VERSION_PATCH: 0
METHANE_VERSION_BUILD: ${{ github.run_number }}
TRACY_RELEASE_VERSION: "0.9.1"
VULKAN_SDK_VERSION: "1.3.250.1"
TRACY_RELEASE_VERSION: "0.11.2.1"
VULKAN_SDK_VERSION: "1.3.290.0"
ORIGIN_REPOSITORY: 'MethanePowered/MethaneKit'

jobs:
Expand Down Expand Up @@ -189,7 +190,7 @@ jobs:

steps:
- name: Checkout repository
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
fetch-depth: 0

Expand All @@ -208,7 +209,7 @@ jobs:
run: ./Build/Unix/CI/InstallVulkanSdk.sh "${{ env.VULKAN_SDK_VERSION }}" "${{ runner.tool_cache }}/VulkanSDK"

- name: Initialize Externals Cache
uses: actions/cache@v3
uses: actions/cache@v4
with:
path: Build/Output/ExternalsCache
key: ExternalsCache-${{ matrix.config_preset }}-${{ hashFiles('Externals/*.cmake') }}
Expand All @@ -234,7 +235,7 @@ jobs:
run: ${{ github.workspace }}\Build\Windows\CI\RunUnitTests.bat junit

- name: Upload Test Results Artifact
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
if: ${{ matrix.run_tests && (success() || failure()) }}
with:
name: MethaneKit_${{ matrix.name }}_TestResults_${{ env.METHANE_VERSION_MAJOR }}.${{ env.METHANE_VERSION_MINOR }}.${{ env.METHANE_VERSION_PATCH }}.${{ env.METHANE_VERSION_BUILD }}
Expand Down Expand Up @@ -277,7 +278,7 @@ jobs:

- name: Upload Archived Build Artifacts
if: ${{ success() || failure() }}
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: MethaneKit_${{ matrix.name }}_${{ env.METHANE_VERSION_MAJOR }}.${{ env.METHANE_VERSION_MINOR }}.${{ env.METHANE_VERSION_PATCH }}.${{ env.METHANE_VERSION_BUILD }}
path: ${{ env.INSTALL_DIR }}/MethaneKit_${{ matrix.name }}.7z
Expand All @@ -290,7 +291,7 @@ jobs:

- name: Update Badge JSON
if: ${{ github.repository == env.ORIGIN_REPOSITORY && github.event_name != 'pull_request' && always() }}
uses: schneegans/dynamic-badges-action@v1.6.0
uses: schneegans/dynamic-badges-action@v1.7.0
with:
auth: ${{ secrets.GIST_TOKEN }}
gistID: 96d788046ccd52b45b3354a99f8569c3
Expand All @@ -311,7 +312,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Upload Event File
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: EventFile
path: ${{ github.event_path }}
14 changes: 7 additions & 7 deletions .github/workflows/ci-codeql-scan.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
name: "🔮 CI CodeQL Scan"

on:
workflow_dispatch:
push:
branches: [ master ]
paths:
Expand Down Expand Up @@ -37,11 +38,10 @@ jobs:
fail-fast: false
matrix:
include:
# FIXME: Windows CodeQL analysis is DISABLED because it fails with compiler "error C1060: compiler is out of heap space"
#- os: windows-latest
# name: "Win64_DX_CodeQL-Scan"
# config_preset: "VS2022-Win64-DX-Scan"
# build_preset: "VS2022-Win64-DX-Scan"
- os: windows-latest
name: "Win64_DX_CodeQL-Scan"
config_preset: "VS2022-Win64-DX-Scan"
build_preset: "VS2022-Win64-DX-Scan"

- os: ubuntu-latest
name: "Ubuntu_VK_CodeQL-Scan"
Expand All @@ -67,7 +67,7 @@ jobs:
sudo apt install xcb libx11-dev libx11-xcb-dev libxcb-sync-dev libxcb-randr0-dev

- name: Checkout repository
uses: actions/checkout@v3
uses: actions/checkout@v4

- name: Initialize CodeQL
uses: github/codeql-action/init@v2
Expand All @@ -77,7 +77,7 @@ jobs:

- name: Initialize Externals Cache
id: cache-externals
uses: actions/cache@v3
uses: actions/cache@v4
env:
cache-name: cache-externals
with:
Expand Down
53 changes: 38 additions & 15 deletions .github/workflows/ci-sonar-scan.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
name: '🎯 CI Sonar Scan'

on:
workflow_dispatch:
push:
branches: [ master, develop ]
paths:
Expand Down Expand Up @@ -57,8 +58,8 @@ on:

env:
METHANE_VERSION_MAJOR: 0
METHANE_VERSION_MINOR: 7
METHANE_VERSION_PATCH: 3
METHANE_VERSION_MINOR: 8
METHANE_VERSION_PATCH: 0
METHANE_VERSION_BUILD: ${{ github.run_number }}

jobs:
Expand Down Expand Up @@ -118,16 +119,16 @@ jobs:
steps:
- name: Checkout pull-request merge commit from origin
if: ${{ github.event_name != 'pull_request_target' }}
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
fetch-depth: 2 # 2 commits are necessary for CodeCov diff
fetch-depth: 0 # checkout all history for all branches, as required by Sonar scanner

- name: Checkout pull-request merge commit from fork
if: ${{ github.event_name == 'pull_request_target' }}
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
ref: "${{ github.event.pull_request.merge_commit_sha }}"
fetch-depth: 2 # 2 commits are necessary for CodeCov diff
fetch-depth: 0 # checkout all history for all branches, as required by Sonar scanner

- name: Install Linux prerequisites
if: ${{ runner.os == 'Linux' }}
Expand All @@ -141,7 +142,7 @@ jobs:

# .NET Core is required by ReportGenerator
- name: Install .NET Core
uses: actions/setup-dotnet@v3
uses: actions/setup-dotnet@v4
with:
dotnet-version: 6.0.400

Expand All @@ -150,12 +151,12 @@ jobs:

# Ninja build is required to generate compile commands file used by Sonar-Scanner
- name: Install Ninja
uses: MethanePowered/gha-setup-ninja@master
uses: seanmiddleditch/gha-setup-ninja@v5
with:
version: 1.11.1

- name: Initialize Externals Cache
uses: actions/cache@v3
uses: actions/cache@v4
with:
path: Build/Output/ExternalsCache
key: ExternalsCache-${{ matrix.config_preset }}-${{ hashFiles('Externals/*.cmake') }}
Expand Down Expand Up @@ -214,7 +215,7 @@ jobs:

- name: Generate Code Coverage Reports
if: ${{ success() || failure() }}
uses: danielpalme/ReportGenerator-GitHub-Action@5.1.13
uses: danielpalme/ReportGenerator-GitHub-Action@5
with:
reports: ${{ matrix.tests_coverage_reports }}
targetdir: 'Build/Output/${{ matrix.config_preset }}/Install/Tests/Coverage/Report'
Expand All @@ -224,7 +225,7 @@ jobs:

- name: Upload Code Coverage Cobertura Report
if: ${{ success() || failure() }}
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: MethaneKit_${{ matrix.name }}_CoverageResults
path: Build/Output/${{ matrix.config_preset }}/Install/Tests/Coverage/Report/Cobertura.xml
Expand All @@ -240,21 +241,43 @@ jobs:

- name: Publish Code Coverage to CodeCov server
if: ${{ github.event_name != 'pull_request_target' && (success() || failure()) }}
uses: codecov/codecov-action@v3
uses: codecov/codecov-action@v4
with:
files: Build/Output/${{ matrix.config_preset }}/Install/Tests/Coverage/Report/Cobertura.xml
flags: unittests,${{ runner.os }}
name: ${{ matrix.name }}
token: ${{ secrets.CODECOV_TOKEN }}

- name: Publish Code Coverage to CodeCov server (from PR target)
if: ${{ github.event_name == 'pull_request_target' && (success() || failure()) }}
uses: codecov/codecov-action@v3
uses: codecov/codecov-action@v4
with:
override_pr: ${{ github.event.pull_request.number }}
override_commit: ${{ github.event.pull_request.head.sha }}
files: Build/Output/${{ matrix.config_preset }}/Install/Tests/Coverage/Report/Cobertura.xml
flags: unittests,${{ runner.os }}
name: ${{ matrix.name }}
token: ${{ secrets.CODECOV_TOKEN }}

- name: Publish Test Results to Codecov server
if: ${{ github.event_name != 'pull_request_target' && (success() || failure()) }}
uses: codecov/test-results-action@v1
with:
files: Build/Output/${{ matrix.config_preset }}/Install/Tests/Results/junit/*Test.xml
flags: unittests,${{ runner.os }}
name: ${{ matrix.name }}
token: ${{ secrets.CODECOV_TOKEN }}

- name: Publish Test Results to Codecov server (from PR target)
if: ${{ github.event_name == 'pull_request_target' && (success() || failure()) }}
uses: codecov/test-results-action@v1
with:
override_pr: ${{ github.event.pull_request.number }}
override_commit: ${{ github.event.pull_request.head.sha }}
files: Build/Output/${{ matrix.config_preset }}/Install/Tests/Results/junit/*Test.xml
flags: unittests,${{ runner.os }}
name: ${{ matrix.name }}
token: ${{ secrets.CODECOV_TOKEN }}

- name: Publish Test Results to GitHub
if: ${{ success() || failure() }}
Expand Down Expand Up @@ -292,7 +315,7 @@ jobs:

- name: Upload Archived Scan Artifacts
if: ${{ success() || failure() }}
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: MethaneKit_${{ matrix.name }}_${{ env.METHANE_VERSION_MAJOR }}.${{ env.METHANE_VERSION_MINOR }}.${{ env.METHANE_VERSION_PATCH }}.${{ env.METHANE_VERSION_BUILD }}
path: Build/Output/${{ matrix.config_preset }}/Install/MethaneKit_${{ matrix.name }}.7z
Expand All @@ -304,7 +327,7 @@ jobs:

- name: Update Badge JSON
if: ${{ (github.event_name == 'push' || github.event_name == 'schedule') && always() }}
uses: schneegans/dynamic-badges-action@v1.6.0
uses: schneegans/dynamic-badges-action@v1.7.0
with:
auth: ${{ secrets.GIST_TOKEN }}
gistID: 96d788046ccd52b45b3354a99f8569c3
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/ci-tests-report.yml
Original file line number Diff line number Diff line change
Expand Up @@ -33,14 +33,14 @@ jobs:

steps:
- name: Download Event File
uses: dawidd6/action-download-artifact@246dbf436b23d7c49e21a7ab8204ca9ecd1fe615
uses: dawidd6/action-download-artifact@v7
with:
run_id: ${{ github.event.workflow_run.id }}
name: EventFile
path: EventFile

- name: Download Test Results
uses: dawidd6/action-download-artifact@v3
uses: dawidd6/action-download-artifact@v7
with:
run_id: ${{ github.event.workflow_run.id }}
name: ^MethaneKit_${{ matrix.name }}_TestResults_.*$
Expand Down
Loading
Loading