name: build-and-test concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true on: push: branches: [ "**" ] pull_request: branches: [ "**" ] jobs: ubuntu-build: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 - name: Install dependencies run: | sudo apt-get update sudo apt-get install -y \ build-essential \ pkg-config \ libjson-c-dev \ libpulse-dev \ libsndfile1-dev \ libinput-dev \ libevdev-dev \ libudev-dev - name: Build (with repo-local PREFIX) run: make -j$(nproc) PREFIX=$PWD - name: Prepare data dir for runtime run: | mkdir -p "$PWD/share/keyvibe" cp -r audio "$PWD/share/keyvibe/" - name: List sound packs run: ./keyvibe --list - name: Smoke test help run: ./keyvibe --help || true - name: Extra smoke tests (non-fatal) run: | ./keyvibe --reload || true ./keyvibe --stop || true - name: Upload binaries uses: actions/upload-artifact@v4 with: name: keyvibe-binaries path: | keyvibe keyvibe-audio keyvibe-input