on:
push:
tags:
- - "linux-*"
+ - "linux-2.8.1-*"
+ - "ubuntu-2.8.1-*"
jobs:
build:
strategy:
fail-fast: false
matrix:
- distro: [ubuntu-24.04, fedora-latest, archlinux-latest]
+ distro: [ubuntu-24.04, ubuntu-22.04, ubuntu-20.04, fedora-latest, archlinux-latest]
include:
- distro: ubuntu-24.04
container: ubuntu:24.04
install_cmd: |
export DEBIAN_FRONTEND=noninteractive
apt update
- apt -y install git cmake build-essential ccache libssl-dev libunbound-dev libboost-all-dev \
+ apt -y install git cmake build-essential ccache ninja-build libssl-dev libunbound-dev libboost-all-dev \
+ libqrencode-dev qt6-base-dev qt6-svg-dev qt6-websockets-dev qt6-multimedia-dev \
+ qt6-wayland-dev libzip-dev libsodium-dev libgcrypt20-dev libx11-xcb-dev \
+ protobuf-compiler libprotobuf-dev libhidapi-dev libzxing-dev libusb-dev \
+ libusb-1.0-0-dev pkg-config
+ - distro: ubuntu-22.04
+ container: ubuntu:22.04
+ install_cmd: |
+ export DEBIAN_FRONTEND=noninteractive
+ apt update
+ apt -y install git cmake build-essential ccache ninja-build libssl-dev libunbound-dev libboost-all-dev \
+ libqrencode-dev qt6-base-dev qt6-svg-dev qt6-websockets-dev qt6-multimedia-dev \
+ qt6-wayland-dev libzip-dev libsodium-dev libgcrypt20-dev libx11-xcb-dev \
+ protobuf-compiler libprotobuf-dev libhidapi-dev libzxing-dev libusb-dev \
+ libusb-1.0-0-dev pkg-config
+ - distro: ubuntu-20.04
+ container: ubuntu:20.04
+ install_cmd: |
+ export DEBIAN_FRONTEND=noninteractive
+ apt update
+ apt -y install software-properties-common
+ add-apt-repository -y ppa:okirby/qt6-backports
+ apt update
+ apt -y install git cmake build-essential ccache ninja-build libssl-dev libunbound-dev libboost-all-dev \
libqrencode-dev qt6-base-dev qt6-svg-dev qt6-websockets-dev qt6-multimedia-dev \
qt6-wayland-dev libzip-dev libsodium-dev libgcrypt20-dev libx11-xcb-dev \
protobuf-compiler libprotobuf-dev libhidapi-dev libzxing-dev libusb-dev \
container: fedora:latest
install_cmd: |
dnf -y update
- dnf -y install git cmake make gcc-c++ ccache openssl-devel libunbound-devel boost-devel \
+ dnf -y install git cmake make gcc-c++ ccache ninja-build openssl-devel libunbound-devel boost-devel \
qrencode-devel qt6-qtbase-devel qt6-qtsvg-devel qt6-qtwebsockets-devel \
qt6-qtmultimedia-devel qt6-qtwayland-devel libzip-devel libsodium-devel \
libgcrypt-devel libxcb-devel protobuf-compiler protobuf-devel hidapi-devel \
container: archlinux:latest
install_cmd: |
pacman -Syu --noconfirm
- pacman -S --noconfirm git cmake base-devel ccache openssl libunbound boost qrencode \
+ pacman -S --noconfirm git cmake base-devel ccache ninja openssl libunbound boost qrencode \
qt6-base qt6-svg qt6-websockets qt6-multimedia qt6-wayland \
libzip libsodium libgcrypt libxcb protobuf hidapi zxing-cpp libusb
${{ matrix.distro }}-ccache-
- name: Configure CMake
- run: cmake -S . -B build -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_COMPILER_LAUNCHER=ccache
+ run: cmake -G Ninja -S . -B build -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_COMPILER_LAUNCHER=ccache
- name: Build
- run: cmake --build build -j $(nproc)
+ run: cmake --build build
- name: Validate Version
run: ./build/bin/feather --version
steps:
env:
CCACHE_DIR: /Users/runner/Library/Caches/ccache
+ HOMEBREW_NO_AUTO_UPDATE: 1
steps:
- name: Checkout repository
- name: Install dependencies
run: |
- brew update
- brew install --quiet qt libsodium libzip qrencode unbound cmake boost hidapi openssl expat protobuf pkg-config ccache
+ brew install --quiet qt libsodium libzip qrencode unbound cmake boost hidapi openssl expat protobuf pkg-config ccache ninja
- name: Setup ccache
uses: actions/cache@v4
macos-ccache-
- name: Configure CMake
- run: cmake -S . -B build -DCMAKE_BUILD_TYPE=Release -DWITH_SCANNER=OFF -DCMAKE_CXX_COMPILER_LAUNCHER=ccache
+ run: cmake -G Ninja -S . -B build -DCMAKE_BUILD_TYPE=Release -DWITH_SCANNER=OFF -DCMAKE_CXX_COMPILER_LAUNCHER=ccache
- name: Build
- run: cmake --build build -j $(sysctl -n hw.ncpu)
+ run: cmake --build build
- name: Validate Version
run: ./build/bin/feather.app/Contents/MacOS/feather --version