Custom actions used by the Diligent Engine CI.
Checks out the specified module and its required dependent modules.
Example:
steps:
- name: Checkout
uses: DiligentGraphics/github-action/checkout@master
with:
module: Tools # Optional; by default, current module is checked out
submodules: true # Optional; by default, 'recursive' is used
Sets up the build environment and downloads the required prerequisites:
- Ninja
- Vulkan SDK
- Java
- Emscripten SDK
- Required linux libraries
Example:
steps:
- name: Set up build environment
uses: DiligentGraphics/github-action/setup-build-env@v1
with:
platform: Win32 # UWP, Linux, MacOS, tvOS, iOS, Android, Emscripten
cmake-generator: Ninja # Optional
ninja-vs-arch: x64 # When Ninja is used for VS build
vulkan-sdk-version: 1.3.250.1 # Optional, see defaults below
java-version: 17 # Optional, see defaults below
emsdk-version: 3.1.9 # Optional, see defaults below
Default component versions are specified in the table below:
Component | v1 |
---|---|
Vulkan SDK | 1.3.250.1 |
Java | 17 |
Emscripten SDK | 3.1.9 |
Linux libraires:
- v1
- build-essential
- libx11-dev
- libgl1-mesa-dev
- libxrandr-dev
- libxinerama-dev
- libxcursor-dev
- libxi-dev
Configures CMake; creates a helper CMakeLists.txt
file, if necessary.
Example:
steps:
- name: Configure CMake
if: success()
uses: DiligentGraphics/github-action/configure-cmake@v1
with:
generator: Visual Studio 17 2022
vs-arch: x64 # Required for VS generator
build-type: Debug # Required
cmake-args: -DDILIGENT_DEVELOPMENT=ON # Optional extra CMake arguments
osx-deployment-target: 11 # Required for iOS/tvOS
osx-architectures: arm64 # Required for iOS/tvOS
cc: clang-12 # Optional for Linux
cxx: clang++-12 # Optional for Linux
Default versions are specified in the table below:
Parameter | v1 |
---|---|
osx-deployment-target | 11 |
The action sets the following environment variables:
DILIGENT_BUILD_TYPE
- Build type (${{inputs.build-type}}
)DILIGENT_BUILD_DIR
- Build directory (${{runner.workspace}}/build
)DILIGENT_INSTALL_DIR
- Install directory (${{runner.workspace}}/build/install
)
Runs the build for the current configuration.
Example:
steps:
- name: Build
if: success()
uses: DiligentGraphics/github-action/build@master
with:
target: install # Optional target
Runs Diligent Core tests for the current configuration.
Example:
steps:
- name: DiligentCoreTest
if: success()
uses: DiligentGraphics/github-action/run-core-tests@master
Runs Diligent Core GPU tests for the current configuration.
Example:
- name: DiligentCoreAPITest D3D12 DXC
if: success()
uses: DiligentGraphics/github-action/run-core-gpu-tests@master
with:
mode: d3d12_sw
use-dxc: true
non-separable-progs: false
Runs Diligent Tools tests for the current configuration.
Example:
steps:
- name: DiligentToolsTest
if: success()
uses: DiligentGraphics/github-action/run-tools-tests@master
Runs Diligent Tools GPU tests for the current configuration.
Example:
- name: DiligentToolsGPUTest D3D11
if: success()
uses: DiligentGraphics/github-action/run-tools-gpu-tests@master
with:
mode: d3d11_sw
Runs sample and tutorial tests for the current configuration.
Example:
- name: Sample Tests D3D11
uses: DiligentGraphics/github-action/run-sample-tests@v1
with:
mode: d3d12_sw
golden-image-mode: compare_update
non-separable-progs: false
Removes unneeded packages and tools to free disk space.
Example:
- name: Clean Disk
uses: DiligentGraphics/github-action/clean-disk-ubuntu@master
preserve-android-ndk: 27.0.12077973