Skip to content

fix(input): smooth magic-mouse pointer on native screens #176

fix(input): smooth magic-mouse pointer on native screens

fix(input): smooth magic-mouse pointer on native screens #176

Workflow file for this run

name: FreeBSD CI
on:
workflow_dispatch:
push:
branches: [master]
tags:
- 'v*'
- 'preview-v*'
paths-ignore:
- '**.md'
- 'wiki/**'
- '.github/ISSUE_TEMPLATE/**'
- '.github/FUNDING.yml'
pull_request:
paths-ignore:
- '**.md'
- 'wiki/**'
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
permissions:
contents: read
jobs:
build-freebsd:
name: FreeBSD ${{ matrix.release }} / ${{ matrix.arch }}
# The VM action runs both architectures on an x86_64 Linux host.
# amd64 is KVM-accelerated on GitHub-hosted runners (~10 min), while
# aarch64 uses QEMU TCG and needs ~3.5 h for a full -O3 build.
runs-on: ubuntu-24.04
timeout-minutes: ${{ matrix.arch == 'aarch64' && 300 || 60 }}
strategy:
fail-fast: false
matrix:
release: ['14.5', '15.1']
arch: [amd64, aarch64]
# The VM action caches its VM images through the Actions cache,
# which requires actions: write (same grant as the c-cpp.yml jobs).
permissions:
contents: read
actions: write
steps:
- name: Check out repository code
uses: actions/checkout@v6
with:
submodules: recursive
persist-credentials: false
- name: Build in FreeBSD
uses: vmactions/freebsd-vm@8b0f1a8fc0ea0def307835c258940ca358fe6480 # v1.5.6
with:
release: ${{ matrix.release }}
arch: ${{ matrix.arch }}
cpu: 4
mem: 8192
sync: rsync
prepare: |
set -eu
pkg install -y \
cmake ninja pkgconf git \
sdl3 sdl3_image flac mpg123 ffmpeg png curl nlohmann-json \
libsysinfo libiconv libglvnd dbus \
libserialport enet portmidi libmpeg2 libpcap zstd
run: |
set -eu
freebsd-version
uname -m
cc --version
# Exercise DBus linking on both releases and native optimization
# on 15.1. Build and stage outside the synced workspace so the
# action's copyback returns only the tarball, not the build tree.
cmake -S . -B /tmp/build-freebsd -G Ninja \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=/usr/local \
-DUSE_DBUS=ON \
-DWITH_OPTIMIZE=${{ matrix.release == '15.1' && 'ON' || 'OFF' }}
cmake --build /tmp/build-freebsd --parallel 4
# Stage through the normal install rules, including CAPSImage and
# floppybridge. This is a CI artifact, not a standalone package.
DESTDIR=/tmp/stage-freebsd cmake --install /tmp/build-freebsd
tar -czf amiberry-freebsd.tar.gz -C /tmp/stage-freebsd .
- name: Upload build artifact
uses: actions/upload-artifact@v7
with:
name: amiberry-freebsd-${{ matrix.release }}-${{ matrix.arch }}
path: amiberry-freebsd.tar.gz
if-no-files-found: error
retention-days: 7