-
Notifications
You must be signed in to change notification settings - Fork 1
82 lines (74 loc) · 3.08 KB
/
linux-arm-opengl.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
name: Linux on ARM (OpenGL)
on:
push:
branches:
- main
pull_request:
branches:
- main
jobs:
build:
runs-on: ubuntu-latest
name: Build on ${{ matrix.distro }} ${{ matrix.arch }}
# Run steps for both armv6 and aarch64
strategy:
matrix:
include:
- arch: aarch64
distro: ubuntu20.04
- arch: armv7
distro: ubuntu20.04
steps:
- uses: actions/checkout@v4
- uses: uraimo/run-on-arch-action@v2.0.9
name: Run Tests in ${{ matrix.distro }} ${{ matrix.arch }}
id: build
with:
arch: ${{ matrix.arch }}
distro: ${{ matrix.distro }}
# Not required, but speeds up builds
githubToken: ${{ github.token }}
# The shell to run commands with in the container
shell: /bin/bash
# Install some dependencies in the container. This speeds up builds if
# you are also using githubToken. Any dependencies installed here will
# be part of the container image that gets cached, so subsequent
# builds don't have to re-install them. The image layer is cached
# publicly in your project's package repository, so it is vital that
# no secrets are present in the container state or logs.
install: |
apt-get update -y -q
apt-get upgrade -y -q
apt-get install -y -q libasound2-dev libxinerama-dev libxrandr-dev libgl1-mesa-dev libxi-dev libxcursor-dev libudev-dev git build-essential imagemagick xvfb libwayland-dev wayland-protocols libxkbcommon-dev ninja-build
# Produce a binary artifact and place it in the mounted volume
run: |
echo " * Make Git happy"
git config --global --add safe.directory /home/runner/work/Kinc/Kinc
git config --global --add safe.directory /home/runner/work/Kinc/Kinc/Tools/linux_arm
git config --global --add safe.directory /home/runner/work/Kinc/Kinc/Tools/linux_arm64
echo " * Get Submodules"
./get_dlc
echo " * Compile"
./make -g opengl --kinc . --from Tests/Empty --compile
echo " * Clean"
rm -rf build
echo " * Compile Test 1"
./make -g opengl --kinc . --from Tests/Shader --compile
echo " * Copy Test 1"
cp build/Release/ShaderTest Tests/Shader/Deployment/ShaderTest
echo " * Run Test 1"
cd Tests/Shader/Deployment
xvfb-run ./ShaderTest
cd ../../..
echo " * Check Test 1"
compare-im6 -metric mae Tests/Shader/reference.png Tests/Shader/Deployment/test.png difference.png
echo " * Clean"
rm -rf build
echo " * Compile Test 2 (SIMD)"
./make -g opengl --kinc . --from Tests/SIMD --compile
echo " * Copy Test 2"
cp build/Release/SIMD Tests/SIMD/Deployment/SIMD
echo " * Run Test 2"
cd Tests/SIMD/Deployment
./SIMD && echo "SUCCESS" || echo "FAILED"
cd ../../..