1name: Presubmit 2on: [push, pull_request] 3 4jobs: 5 build: 6 name: Build ${{ matrix.os }} ${{ matrix.arch }}${{ matrix.extra }} 7 runs-on: ${{ matrix.os }} 8 env: 9 JOB_ARCHITECTURE: ${{ matrix.arch }} 10 JOB_ENABLE_GL: ${{ matrix.gl }} 11 JOB_ENABLE_DEBUG: ${{ matrix.debug }} 12 strategy: 13 fail-fast: false 14 matrix: 15 mainmatrix: [true] 16 os: [ubuntu-20.04, macos-latest, windows-latest] 17 include: 18 - os: ubuntu-20.04 19 mainmatrix: true 20 gl: 1 21 extra: " gl" 22 - os: ubuntu-20.04 23 mainmatrix: false 24 arch: arm 25 - os: ubuntu-20.04 26 mainmatrix: false 27 arch: aarch64 28 debug: 1 29 extra: " debug" 30 steps: 31 - uses: actions/checkout@v2 32 - name: Setup Ninja 33 uses: seanmiddleditch/gha-setup-ninja@master 34 - name: Setup OpenGL build dependencies 35 if: ${{ matrix.gl }} 36 run: | 37 sudo apt-get update 38 sudo apt-get -y install libglu1-mesa-dev freeglut3-dev mesa-common-dev libglew-dev 39 - name: Setup MSVC with Ninja 40 uses: ilammy/msvc-dev-cmd@v1 41 - name: Setup ccache 42 uses: hendrikmuhs/ccache-action@v1.2 43 with: 44 variant: sccache 45 key: ${{ matrix.os }}-${{ matrix.arch }} 46 - name: Fetch OpenCL Headers 47 shell: bash 48 run: | 49 git clone https://github.com/KhronosGroup/OpenCL-Headers.git 50 cd OpenCL-Headers 51 ln -s CL OpenCL # For OSX builds 52 cd .. 53 - name: Build 54 shell: bash 55 run: ./presubmit.sh 56 formatcheck: 57 name: Check code format 58 runs-on: ubuntu-20.04 59 steps: 60 - name: Install packages 61 run: sudo apt install -y clang-format clang-format-9 62 - uses: actions/checkout@v2 63 with: 64 fetch-depth: 0 65 - name: Check code format 66 run: ./check-format.sh 67