Skip to content

Merge pull request #885 from tcdude/FixARMActions #1054

Merge pull request #885 from tcdude/FixARMActions

Merge pull request #885 from tcdude/FixARMActions #1054

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: ubuntu22.04
- arch: armv7
distro: ubuntu22.04
steps:
- uses: actions/checkout@v4
- uses: uraimo/run-on-arch-action@v2
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 ../../..