From 7859a33182a96462067448b4a350823543f8dd39 Mon Sep 17 00:00:00 2001 From: Stuart Brady Date: Tue, 13 Sep 2022 18:22:52 +0100 Subject: [PATCH] Include release builds in GitHub Actions (#1486) The "Ninja" CMake generator does not support multiple configurations, i.e. it does not support use of the '--config' option when running 'cmake --build'. As such, the default configuration (i.e. Debug) was getting used for all builds. Use the CMAKE_BUILD_TYPE variable instead, so that we do release builds, but change one build (ubuntu-20.04 aarch64) to use Debug as its build type, to keep some build coverage for asserts, etc. For Vulkan-Loader and OpenCL-ICD-Loader, we do release builds unconditionally, as we assume there is no need in the CI workflow to actually run the binaries that are built, and therefore no need for any additional debug info. Signed-off-by: Stuart Brady --- .github/workflows/presubmit.yml | 6 +++++- presubmit.sh | 32 +++++++++++++++++++++++++------- 2 files changed, 30 insertions(+), 8 deletions(-) diff --git a/.github/workflows/presubmit.yml b/.github/workflows/presubmit.yml index bac4ceba..1dfdb963 100644 --- a/.github/workflows/presubmit.yml +++ b/.github/workflows/presubmit.yml @@ -3,11 +3,12 @@ on: [push, pull_request] jobs: build: - name: Build ${{ matrix.os }} ${{ matrix.arch }} + name: Build ${{ matrix.os }} ${{ matrix.arch }}${{ matrix.extra }} runs-on: ${{ matrix.os }} env: JOB_ARCHITECTURE: ${{ matrix.arch }} JOB_ENABLE_GL: ${{ matrix.gl }} + JOB_ENABLE_DEBUG: ${{ matrix.debug }} strategy: fail-fast: false matrix: @@ -17,12 +18,15 @@ jobs: - os: ubuntu-20.04 mainmatrix: true gl: 1 + extra: " gl" - os: ubuntu-20.04 mainmatrix: false arch: arm - os: ubuntu-20.04 mainmatrix: false arch: aarch64 + debug: 1 + extra: " debug" steps: - uses: actions/checkout@v2 - name: Setup Ninja diff --git a/presubmit.sh b/presubmit.sh index 6c3a293e..ca39b9a2 100755 --- a/presubmit.sh +++ b/presubmit.sh @@ -14,6 +14,9 @@ TOOLCHAIN_FILE=${TOP}/toolchain.cmake touch ${TOOLCHAIN_FILE} BUILD_OPENGL_TEST="OFF" +cmake --version +echo + # Prepare toolchain if needed if [[ ${JOB_ARCHITECTURE} != "" && ${RUNNER_OS} != "Windows" ]]; then TOOLCHAIN_URL_VAR=TOOLCHAIN_URL_${JOB_ARCHITECTURE} @@ -40,6 +43,12 @@ if [[ ( ${JOB_ARCHITECTURE} == "" && ${JOB_ENABLE_GL} == "1" ) ]]; then BUILD_OPENGL_TEST="ON" fi +if [[ ${JOB_ENABLE_DEBUG} == 1 ]]; then + BUILD_CONFIG="Debug" +else + BUILD_CONFIG="Release" +fi + #Vulkan Headers git clone https://github.com/KhronosGroup/Vulkan-Headers.git @@ -48,8 +57,11 @@ git clone https://github.com/KhronosGroup/OpenCL-ICD-Loader.git cd ${TOP}/OpenCL-ICD-Loader mkdir build cd build -cmake .. -G Ninja -DCMAKE_TOOLCHAIN_FILE=${TOOLCHAIN_FILE} -DOPENCL_ICD_LOADER_HEADERS_DIR=${TOP}/OpenCL-Headers/ -cmake --build . -j2 --config Release +cmake .. -G Ninja \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_TOOLCHAIN_FILE=${TOOLCHAIN_FILE} \ + -DOPENCL_ICD_LOADER_HEADERS_DIR=${TOP}/OpenCL-Headers/ +cmake --build . -j2 #Vulkan Loader cd ${TOP} @@ -58,8 +70,15 @@ cd Vulkan-Loader mkdir build cd build python3 ../scripts/update_deps.py -cmake .. -G Ninja -DCMAKE_TOOLCHAIN_FILE=${TOOLCHAIN_FILE} -DBUILD_WSI_XLIB_SUPPORT=OFF -DBUILD_WSI_XCB_SUPPORT=OFF -DBUILD_WSI_WAYLAND_SUPPORT=OFF -DUSE_GAS=OFF -C helper.cmake .. -cmake --build . -j2 --config Release +cmake .. -G Ninja \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_TOOLCHAIN_FILE=${TOOLCHAIN_FILE} \ + -DBUILD_WSI_XLIB_SUPPORT=OFF \ + -DBUILD_WSI_XCB_SUPPORT=OFF \ + -DBUILD_WSI_WAYLAND_SUPPORT=OFF \ + -DUSE_GAS=OFF \ + -C helper.cmake .. +cmake --build . -j2 # Build CTS cd ${TOP} @@ -74,6 +93,7 @@ else CMAKE_CACHE_OPTIONS="-DCMAKE_C_COMPILER_LAUNCHER=sccache -DCMAKE_CXX_COMPILER_LAUNCHER=sccache" fi cmake .. -G Ninja \ + -DCMAKE_BUILD_TYPE="${BUILD_CONFIG}" \ ${CMAKE_CACHE_OPTIONS} \ -DCL_INCLUDE_DIR=${TOP}/OpenCL-Headers \ -DCL_LIB_DIR=${TOP}/OpenCL-ICD-Loader/build \ @@ -84,6 +104,4 @@ cmake .. -G Ninja \ -DGL_IS_SUPPORTED=${BUILD_OPENGL_TEST} \ -DVULKAN_INCLUDE_DIR=${TOP}/Vulkan-Headers/include/ \ -DVULKAN_LIB_DIR=${TOP}/Vulkan-Loader/build/loader/ -cmake --build . -j3 --config Release - - +cmake --build . -j3