Giter VIP home page Giter VIP logo

github-action's Introduction

github-action

Custom actions used by the Diligent Engine CI.

checkout

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

setup-build-env

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

configure-cmake

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)

build

Runs the build for the current configuration.

Example:

steps:
- name: Build
  if: success()
  uses: DiligentGraphics/github-action/build@master
  with:
    target: install # Optional target

run-core-tests

Runs Diligent Core tests for the current configuration.

Example:

steps:
- name: DiligentCoreTest
  if:   success()
  uses: DiligentGraphics/github-action/run-core-tests@master

run-core-gpu-tests

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

run-tools-tests

Runs Diligent Tools tests for the current configuration.

Example:

steps:
- name: DiligentToolsTest
  if:   success()
  uses: DiligentGraphics/github-action/run-tools-tests@master

run-tools-gpu-tests

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

run-sample-tests

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

github-action's People

Contributors

themostdiligent avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.