Files
2026-04-17 20:09:41 +03:00

80 lines
2.1 KiB
YAML

name: Build rexglue-sdk linux ARM64
on:
push:
tags:
- "v*"
jobs:
build:
runs-on: ubuntu-24.04-arm
env:
CC: clang-20
CXX: clang++-20
steps:
- name: Checkout (with submodules)
uses: actions/checkout@v4
with:
submodules: recursive
- name: Install Clang 20
run: |
sudo apt-get update
sudo apt-get install -y wget gnupg lsb-release
wget https://apt.llvm.org/llvm.sh
chmod +x llvm.sh
sudo ./llvm.sh 20
sudo apt-get install -y clang-20 lld-20
- name: Update alternatives to use Clang 20
run: |
sudo update-alternatives --install /usr/bin/clang clang /usr/bin/clang-20 200
sudo update-alternatives --install /usr/bin/clang++ clang++ /usr/bin/clang++-20 200
clang --version
clang++ --version
- name: Install build dependencies
run: |
sudo apt update
sudo apt install -y cmake ninja-build build-essential git curl unzip autoconf python3.12-venv \
libgtk-3-dev libx11-xcb-dev libvulkan-dev glslc glslang-tools
- name: Configure (CMake preset)
run: cmake --preset linux-arm64
- name: Build and Install
run: cmake --build out/build/linux-arm64 --target install -j$(nproc)
- name: Package install directory
run: |
cd out/install
zip -r rexglue-sdk-linux-arm64.zip linux-arm64
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: rexglue-sdk-linux-arm64
path: out/install/rexglue-sdk-linux-arm64.zip
retention-days: 90
release:
needs: build
runs-on: ubuntu-latest
if: startsWith(github.ref, 'refs/tags/')
steps:
- name: Download artifact
uses: actions/download-artifact@v4
with:
name: rexglue-sdk-linux-arm64
path: .
- name: Upload release asset
uses: softprops/action-gh-release@v2
with:
files: rexglue-sdk-linux-arm64.zip
generate_release_notes: true
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}