mirror of
https://github.com/KhronosGroup/OpenCL-CTS.git
synced 2026-03-19 06:09:01 +00:00
101 lines
3.7 KiB
YAML
101 lines
3.7 KiB
YAML
name: Presubmit
|
|
on: [push, pull_request]
|
|
|
|
jobs:
|
|
build:
|
|
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:
|
|
mainmatrix: [true]
|
|
os: [ubuntu-22.04, macos-latest, windows-latest]
|
|
include:
|
|
- os: ubuntu-22.04
|
|
mainmatrix: true
|
|
gl: 1
|
|
extra: " gl"
|
|
- os: ubuntu-22.04
|
|
mainmatrix: false
|
|
arch: arm
|
|
- os: ubuntu-22.04
|
|
mainmatrix: false
|
|
arch: aarch64
|
|
debug: 1
|
|
extra: " debug"
|
|
- os: ubuntu-22.04
|
|
mainmatrix: false
|
|
arch: android-arm
|
|
android_arch_abi: armeabi-v7a
|
|
- os: ubuntu-22.04
|
|
mainmatrix: false
|
|
arch: android-aarch64
|
|
android_arch_abi: arm64-v8a
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- name: Setup Ninja
|
|
uses: seanmiddleditch/gha-setup-ninja@master
|
|
- name: Install Arm and AArch64 compilers
|
|
if: ${{ matrix.arch == 'arm' || matrix.arch == 'aarch64' }}
|
|
run: |
|
|
sudo apt-get update
|
|
sudo apt-get install -y \
|
|
gcc-12-arm-linux-gnueabihf g++-12-arm-linux-gnueabihf \
|
|
gcc-12-aarch64-linux-gnu g++-12-aarch64-linux-gnu
|
|
sudo update-alternatives --install /usr/bin/arm-linux-gnueabihf-gcc arm-linux-gnueabihf-gcc /usr/bin/arm-linux-gnueabihf-gcc-12 12
|
|
sudo update-alternatives --install /usr/bin/arm-linux-gnueabihf-g++ arm-linux-gnueabihf-g++ /usr/bin/arm-linux-gnueabihf-g++-12 12
|
|
sudo update-alternatives --install /usr/bin/aarch64-linux-gnu-gcc aarch64-linux-gnu-gcc /usr/bin/aarch64-linux-gnu-gcc-12 12
|
|
sudo update-alternatives --install /usr/bin/aarch64-linux-gnu-g++ aarch64-linux-gnu-g++ /usr/bin/aarch64-linux-gnu-g++-12 12
|
|
- 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
|
|
git checkout cl_khr_unified_svm
|
|
ln -s CL OpenCL # For OSX builds
|
|
cd ..
|
|
- name: Install Vulkan SDK
|
|
uses: humbletim/install-vulkan-sdk@main
|
|
with:
|
|
version: 1.4.309.0
|
|
cache: true
|
|
- name: Install Android NDK
|
|
if: ${{ matrix.arch == 'android-arm' || matrix.arch == 'android-aarch64' }}
|
|
run: |
|
|
wget https://dl.google.com/android/repository/android-ndk-r27c-linux.zip -O android-ndk.zip
|
|
unzip android-ndk.zip -d $HOME
|
|
export ANDROID_NDK=$HOME/android-ndk-r27c
|
|
echo "ANDROID_NDK=$ANDROID_NDK" >> $GITHUB_ENV
|
|
export ANDROID_ARCH_ABI=${{ matrix.android_arch_abi }}
|
|
echo "ANDROID_ARCH_ABI=$ANDROID_ARCH_ABI" >> $GITHUB_ENV
|
|
- name: Build
|
|
shell: bash
|
|
run: ./presubmit.sh
|
|
formatcheck:
|
|
name: Check code format
|
|
runs-on: ubuntu-22.04
|
|
steps:
|
|
- name: Install packages
|
|
run: sudo apt install -y clang-format clang-format-14
|
|
- uses: actions/checkout@v4
|
|
with:
|
|
fetch-depth: 0
|
|
- name: Check code format
|
|
run: ./check-format.sh origin/cl_khr_unified_svm
|