- name: update apt
run: apt update
- name: install dependencies
- run: apt -y install git cmake build-essential ccache 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
+ run:
+ apt -y install git cmake build-essential ccache 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
- name: configure git
run: git config --global --add safe.directory '*'
- uses: actions/checkout@v4
cmake --build . -j $(nproc)
build-arch:
- name: 'Arch Linux'
+ name: "Arch Linux"
runs-on: ubuntu-latest
container:
image: archlinux:latest
cmake --build build -j $(nproc)
build-macos:
- name: 'macOS (brew)'
+ name: "macOS (brew)"
runs-on: macos-latest
steps:
- uses: actions/checkout@v4
- uses: actions/upload-artifact@v4
with:
name: "logs"
- path: '**/logs/**'
+ path: "**/logs/**"
codesigning:
runs-on: ubuntu-24.04
- uses: signpath/github-action-submit-signing-request@v1
name: "request signature"
with:
- api-token: '${{ secrets.SIGNPATH_API_KEY }}'
- organization-id: 'd3e94749-9c69-44e9-82de-c65cb3832869'
- project-slug: 'feather'
- signing-policy-slug: 'release-signing'
+ api-token: "${{ secrets.SIGNPATH_API_KEY }}"
+ organization-id: "d3e94749-9c69-44e9-82de-c65cb3832869"
+ project-slug: "feather"
+ signing-policy-slug: "release-signing"
artifact-configuration-slug: ${{ env.ARTIFACT_SLUG }}
github-artifact-id: ${{ env.ARTIFACT_ID }}
wait-for-completion: true
--- /dev/null
+name: Linux CI
+
+on:
+ push:
+ tags:
+ - "linux-2.8.1-*"
+
+jobs:
+ build:
+ name: Ubuntu 24.04
+ runs-on: ubuntu-latest
+ container:
+ image: ubuntu:24.04
+ steps:
+ - name: Install dependencies
+ run: |
+ apt update
+ apt -y install git cmake build-essential ccache 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
+
+ - name: Checkout repository
+ uses: actions/checkout@v4
+ with:
+ submodules: recursive
+
+ - name: Configure CMake
+ run: cmake -S . -B build -DCMAKE_BUILD_TYPE=Release
+
+ - name: Build
+ run: cmake --build build -j $(nproc)
+
+ - name: Validate Version
+ run: ./build/bin/feather --version
--- /dev/null
+name: macOS CI
+
+on:
+ push:
+ tags:
+ - "macos-2.8.1-*"
+
+jobs:
+ build:
+ name: macOS (brew)
+ runs-on: macos-latest
+ steps:
+ - name: Checkout repository
+ uses: actions/checkout@v4
+ with:
+ submodules: recursive
+
+ - name: Install dependencies
+ run: |
+ brew update
+ brew install --quiet qt libsodium libzip qrencode unbound cmake boost hidapi openssl expat libunwind-headers protobuf pkg-config
+
+ - name: Configure CMake
+ run: cmake -S . -B build -DCMAKE_BUILD_TYPE=Release -DWITH_SCANNER=OFF
+
+ - name: Build
+ run: cmake --build build -j $(sysctl -n hw.ncpu)
+
+ - name: Validate Version
+ run: ./build/bin/feather.app/Contents/MacOS/feather --version
--- /dev/null
+name: Windows CI
+
+on:
+ push:
+ tags:
+ - "windows-2.8.1-*"
+
+jobs:
+ build:
+ name: Windows (MSYS2)
+ runs-on: windows-latest
+ steps:
+ - name: Checkout repository
+ uses: actions/checkout@v4
+ with:
+ submodules: recursive
+
+ - name: Setup MSYS2
+ uses: msys2/setup-msys2@v2
+ with:
+ update: true
+ install: >-
+ git
+ base-devel
+ mingw-w64-x86_64-toolchain
+ mingw-w64-x86_64-cmake
+ mingw-w64-x86_64-boost
+ mingw-w64-x86_64-openssl
+ mingw-w64-x86_64-libzip
+ mingw-w64-x86_64-libhidapi
+ mingw-w64-x86_64-protobuf
+ mingw-w64-x86_64-libsodium
+ mingw-w64-x86_64-libunbound
+ mingw-w64-x86_64-qrencode
+ mingw-w64-x86_64-qt6-base
+ mingw-w64-x86_64-qt6-svg
+ mingw-w64-x86_64-qt6-websockets
+ mingw-w64-x86_64-qt6-multimedia
+ mingw-w64-x86_64-qt6-wayland
+ mingw-w64-x86_64-zxing-cpp
+
+ - name: Build
+ shell: msys2 {0}
+ run: |
+ cmake -G "MinGW Makefiles" -S . -B build -DCMAKE_BUILD_TYPE=Release -DWITH_SCANNER=OFF
+ cmake --build build -j $(nproc)
+
+ - name: Validate Version
+ shell: msys2 {0}
+ run: ./build/bin/feather.exe --version