mirror of
https://github.com/KhronosGroup/OpenCL-CTS.git
synced 2026-03-25 16:29:03 +00:00
Update Github Actions CI and add Windows (#1413)
- Add one Windows build to Github Actions - Remove Appveyor config - Move a few build steps out of the script - Use Ninja as the generator (makes for more readable logs) - Add build cache (except on Windows where it seems to break) Change-Id: Ida90ee1842af98aff86e5144ab7b9766480378c9 Signed-off-by: Kevin Petit <kevin.petit@arm.com>
This commit is contained in:
@@ -1,54 +0,0 @@
|
|||||||
os:
|
|
||||||
- Visual Studio 2017
|
|
||||||
|
|
||||||
shallow_clone: true
|
|
||||||
|
|
||||||
platform:
|
|
||||||
- Win32
|
|
||||||
- x64
|
|
||||||
|
|
||||||
configuration:
|
|
||||||
- Release
|
|
||||||
|
|
||||||
environment:
|
|
||||||
matrix:
|
|
||||||
- SETARCH: i686
|
|
||||||
- SETARCH: x86_64
|
|
||||||
|
|
||||||
matrix:
|
|
||||||
exclude:
|
|
||||||
- platform: Win32
|
|
||||||
SETARCH: x86_64
|
|
||||||
- platform: x64
|
|
||||||
SETARCH: i686
|
|
||||||
|
|
||||||
before_build:
|
|
||||||
# Setup environment:
|
|
||||||
- ps: $env:TOP = $env:APPVEYOR_BUILD_FOLDER
|
|
||||||
- ps: $env:TOP
|
|
||||||
- echo %TOP%
|
|
||||||
# Get the OpenCL Headers:
|
|
||||||
- git clone --depth=1 https://github.com/KhronosGroup/OpenCL-Headers OpenCL-Headers
|
|
||||||
# Get and build the OpenCL ICD Loader:
|
|
||||||
- git clone --depth=1 https://github.com/KhronosGroup/OpenCL-ICD-Loader.git
|
|
||||||
- ps: cd OpenCL-ICD-Loader
|
|
||||||
- ps: mkdir build
|
|
||||||
- ps: cd build
|
|
||||||
- cmake -A%PLATFORM% -DENABLE_OPENCL30_PROVISIONAL=1 -DOPENCL_ICD_LOADER_HEADERS_DIR=%TOP%/OpenCL-Headers/ ..
|
|
||||||
- cmake --build . --config %CONFIGURATION%
|
|
||||||
- ps: cd $env:TOP
|
|
||||||
# Get the libclcxx standard library:
|
|
||||||
- git clone --depth=1 https://github.com/KhronosGroup/libclcxx.git libclcxx
|
|
||||||
# Generate the CTS solution file:
|
|
||||||
- cmake -DCL_INCLUDE_DIR=%TOP%/OpenCL-Headers
|
|
||||||
-DCL_LIB_DIR=%TOP%/OpenCL-ICD-Loader/build
|
|
||||||
-DCL_LIBCLCXX_DIR=%TOP%/libclcxx
|
|
||||||
-DCMAKE_RUNTIME_OUTPUT_DIRECTORY=./bin
|
|
||||||
-DOPENCL_LIBRARIES="OpenCL"
|
|
||||||
-H. -Bbuild_win -A%PLATFORM%
|
|
||||||
-DD3D10_IS_SUPPORTED=ON -DD3D11_IS_SUPPORTED=ON -DARCH=%SETARCH%
|
|
||||||
|
|
||||||
build:
|
|
||||||
project: build_win\CLConform.sln
|
|
||||||
parallel: true
|
|
||||||
verbosity: normal
|
|
||||||
29
.github/workflows/presubmit.yml
vendored
29
.github/workflows/presubmit.yml
vendored
@@ -3,30 +3,51 @@ on: [push, pull_request]
|
|||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build:
|
build:
|
||||||
name: Build ${{ matrix.os }} ${{ matrix.name }}
|
name: Build ${{ matrix.os }} ${{ matrix.arch }}
|
||||||
runs-on: ${{ matrix.os }}
|
runs-on: ${{ matrix.os }}
|
||||||
env:
|
env:
|
||||||
JOB_ARCHITECTURE: ${{ matrix.arch }}
|
JOB_ARCHITECTURE: ${{ matrix.arch }}
|
||||||
JOB_ENABLE_GL: ${{ matrix.gl }}
|
JOB_ENABLE_GL: ${{ matrix.gl }}
|
||||||
strategy:
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
mainmatrix: [true]
|
mainmatrix: [true]
|
||||||
os: [ubuntu-20.04, macos-latest]
|
os: [ubuntu-20.04, macos-latest, windows-latest]
|
||||||
include:
|
include:
|
||||||
- os: ubuntu-20.04
|
- os: ubuntu-20.04
|
||||||
mainmatrix: true
|
mainmatrix: true
|
||||||
gl: 1
|
gl: 1
|
||||||
- os: ubuntu-20.04
|
- os: ubuntu-20.04
|
||||||
mainmatrix: false
|
mainmatrix: false
|
||||||
name: Arm
|
|
||||||
arch: arm
|
arch: arm
|
||||||
- os: ubuntu-20.04
|
- os: ubuntu-20.04
|
||||||
mainmatrix: false
|
mainmatrix: false
|
||||||
name: AArch64
|
|
||||||
arch: aarch64
|
arch: aarch64
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v2
|
||||||
|
- name: Setup Ninja
|
||||||
|
uses: seanmiddleditch/gha-setup-ninja@master
|
||||||
|
- name: Setup OpenGL build dependencies
|
||||||
|
if: ${{ matrix.gl }}
|
||||||
|
run: |
|
||||||
|
sudo apt-get update
|
||||||
|
sudo apt-get -y install libglu1-mesa-dev freeglut3-dev mesa-common-dev libglew-dev
|
||||||
|
- name: Setup MSVC with Ninja
|
||||||
|
uses: ilammy/msvc-dev-cmd@v1
|
||||||
|
- name: Setup ccache
|
||||||
|
uses: hendrikmuhs/ccache-action@v1.2
|
||||||
|
with:
|
||||||
|
variant: sccache
|
||||||
|
key: ${{ matrix.os }}-${{ matrix.arch }}
|
||||||
|
- name: Fetch OpenCL Headers
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
git clone https://github.com/KhronosGroup/OpenCL-Headers.git
|
||||||
|
cd OpenCL-Headers
|
||||||
|
ln -s CL OpenCL # For OSX builds
|
||||||
|
cd ..
|
||||||
- name: Build
|
- name: Build
|
||||||
|
shell: bash
|
||||||
run: ./presubmit.sh
|
run: ./presubmit.sh
|
||||||
formatcheck:
|
formatcheck:
|
||||||
name: Check code format
|
name: Check code format
|
||||||
|
|||||||
31
presubmit.sh
31
presubmit.sh
@@ -15,7 +15,7 @@ touch ${TOOLCHAIN_FILE}
|
|||||||
BUILD_OPENGL_TEST="OFF"
|
BUILD_OPENGL_TEST="OFF"
|
||||||
|
|
||||||
# Prepare toolchain if needed
|
# Prepare toolchain if needed
|
||||||
if [[ ${JOB_ARCHITECTURE} != "" ]]; then
|
if [[ ${JOB_ARCHITECTURE} != "" && ${RUNNER_OS} != "Windows" ]]; then
|
||||||
TOOLCHAIN_URL_VAR=TOOLCHAIN_URL_${JOB_ARCHITECTURE}
|
TOOLCHAIN_URL_VAR=TOOLCHAIN_URL_${JOB_ARCHITECTURE}
|
||||||
TOOLCHAIN_URL=${!TOOLCHAIN_URL_VAR}
|
TOOLCHAIN_URL=${!TOOLCHAIN_URL_VAR}
|
||||||
wget ${TOOLCHAIN_URL}
|
wget ${TOOLCHAIN_URL}
|
||||||
@@ -38,35 +38,36 @@ fi
|
|||||||
|
|
||||||
if [[ ( ${JOB_ARCHITECTURE} == "" && ${JOB_ENABLE_GL} == "1" ) ]]; then
|
if [[ ( ${JOB_ARCHITECTURE} == "" && ${JOB_ENABLE_GL} == "1" ) ]]; then
|
||||||
BUILD_OPENGL_TEST="ON"
|
BUILD_OPENGL_TEST="ON"
|
||||||
sudo apt-get update
|
|
||||||
sudo apt-get -y install libglu1-mesa-dev freeglut3-dev mesa-common-dev libglew-dev
|
|
||||||
fi
|
fi
|
||||||
# Prepare headers
|
|
||||||
git clone https://github.com/KhronosGroup/OpenCL-Headers.git
|
|
||||||
cd OpenCL-Headers
|
|
||||||
ln -s CL OpenCL # For OSX builds
|
|
||||||
cd ..
|
|
||||||
|
|
||||||
# Get and build loader
|
# Get and build loader
|
||||||
git clone https://github.com/KhronosGroup/OpenCL-ICD-Loader.git
|
git clone https://github.com/KhronosGroup/OpenCL-ICD-Loader.git
|
||||||
cd ${TOP}/OpenCL-ICD-Loader
|
cd ${TOP}/OpenCL-ICD-Loader
|
||||||
mkdir build
|
mkdir build
|
||||||
cd build
|
cd build
|
||||||
cmake -DCMAKE_TOOLCHAIN_FILE=${TOOLCHAIN_FILE} -DOPENCL_ICD_LOADER_HEADERS_DIR=${TOP}/OpenCL-Headers/ ..
|
cmake .. -G Ninja -DCMAKE_TOOLCHAIN_FILE=${TOOLCHAIN_FILE} -DOPENCL_ICD_LOADER_HEADERS_DIR=${TOP}/OpenCL-Headers/
|
||||||
make
|
cmake --build . -j2 --config Release
|
||||||
|
|
||||||
# Build CTS
|
# Build CTS
|
||||||
cd ${TOP}
|
cd ${TOP}
|
||||||
ls -l
|
ls -l
|
||||||
mkdir build
|
mkdir build
|
||||||
cd build
|
cd build
|
||||||
cmake -DCL_INCLUDE_DIR=${TOP}/OpenCL-Headers \
|
if [[ ${RUNNER_OS} == "Windows" ]]; then
|
||||||
|
CMAKE_OPENCL_LIBRARIES_OPTION="OpenCL"
|
||||||
|
CMAKE_CACHE_OPTIONS=""
|
||||||
|
else
|
||||||
|
CMAKE_OPENCL_LIBRARIES_OPTION="-lOpenCL -lpthread"
|
||||||
|
CMAKE_CACHE_OPTIONS="-DCMAKE_C_COMPILER_LAUNCHER=sccache -DCMAKE_CXX_COMPILER_LAUNCHER=sccache"
|
||||||
|
fi
|
||||||
|
cmake .. -G Ninja \
|
||||||
|
${CMAKE_CACHE_OPTIONS} \
|
||||||
|
-DCL_INCLUDE_DIR=${TOP}/OpenCL-Headers \
|
||||||
-DCL_LIB_DIR=${TOP}/OpenCL-ICD-Loader/build \
|
-DCL_LIB_DIR=${TOP}/OpenCL-ICD-Loader/build \
|
||||||
-DCMAKE_TOOLCHAIN_FILE=${TOOLCHAIN_FILE} \
|
-DCMAKE_TOOLCHAIN_FILE=${TOOLCHAIN_FILE} \
|
||||||
-DCMAKE_RUNTIME_OUTPUT_DIRECTORY=./bin \
|
-DCMAKE_RUNTIME_OUTPUT_DIRECTORY=./bin \
|
||||||
-DOPENCL_LIBRARIES="-lOpenCL -lpthread" \
|
-DOPENCL_LIBRARIES="${CMAKE_OPENCL_LIBRARIES_OPTION}" \
|
||||||
-DUSE_CL_EXPERIMENTAL=ON \
|
-DUSE_CL_EXPERIMENTAL=ON \
|
||||||
-DGL_IS_SUPPORTED=${BUILD_OPENGL_TEST} \
|
-DGL_IS_SUPPORTED=${BUILD_OPENGL_TEST}
|
||||||
..
|
cmake --build . -j3 --config Release
|
||||||
make -j2
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user