name: build librashader-capi for ARM64 Linux on: push: branches: [ "master" ] pull_request: branches: [ "master" ] schedule: - cron: "0 0 * * 6" env: CARGO_TERM_COLOR: always jobs: build: strategy: matrix: profile: ['debug', 'release', 'optimized'] fail-fast: false runs-on: ubuntu-latest steps: - name: Checkout repository uses: actions/checkout@v3 - name: Install nightly Rust uses: actions-rs/toolchain@v1.0.6 with: toolchain: nightly override: true target: aarch64-unknown-linux-gnu - uses: actions/setup-python@v1 name: Setup Python 3.11 with: python-version: '3.11' - name: Install ARM64 cross-compilation dependencies continue-on-error: true run: | sudo dpkg --add-architecture arm64 echo "deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports jammy main restricted" | sudo tee -a /etc/apt/sources.list echo "deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports jammy-updates main restricted" | sudo tee -a /etc/apt/sources.list sudo apt-get update || true sudo apt-get -y install libvulkan-dev:arm64 g++-aarch64-linux-gnu gcc-aarch64-linux-gnu binutils-aarch64-linux-gnu - name: Build dynamic library run: CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER=/usr/bin/aarch64-linux-gnu-gcc cargo run -p librashader-build-script -- --profile ${{ matrix.profile }} --target aarch64-unknown-linux-gnu - name: Upload build artifacts uses: actions/upload-artifact@v3.1.2 with: name: ${{ format('build-outputs-aarch64-unknown-linux-gnu-{0}', matrix.profile) }} path: ${{ format('target/aarch64-unknown-linux-gnu/{0}/librashader.*', matrix.profile) }}