mirror of
https://github.com/MidnightBlueLabs/tetra-bluestation.git
synced 2026-09-01 16:58:18 +00:00
Version 0.5.8: * Added Telemetry and Control frameworks, running as separate threads in the stack. Telemetry can send event data to an external telemetry service, while Control allows the BS to receive Control commands from an external Control service. * Currently, Telemetry events for MS (de)registration and group attach/detach are implemented. Control supports remote command for SDS sending. Try `sendsds 1 <your_ms_ssi> false 82042d014869` * Provide sample systemd service file (#66) in /contrib/systemd Further changes: * Refactored brew jitter buffer into separate file * Refactored websockets into a separate transport * Removed obsolete tnmm example networked entity code * Moved brew entity to net_brew entity to designate it's a networked component * Renamed tetra-bluestation binary to bluestation-bs * Added support for secret fields in config, that will not be printed through Display or Debug
114 lines
3.8 KiB
YAML
114 lines
3.8 KiB
YAML
name: Build release binaries
|
|
|
|
on:
|
|
push:
|
|
branches:
|
|
- main
|
|
- feature/cross_compile
|
|
workflow_dispatch:
|
|
|
|
permissions:
|
|
contents: write
|
|
|
|
jobs:
|
|
build:
|
|
runs-on: ubuntu-latest
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
include:
|
|
- target: x86_64-unknown-linux-gnu
|
|
bin_path: target/x86_64-unknown-linux-gnu/release/bluestation-bs
|
|
build_cmd: cargo build --release --target x86_64-unknown-linux-gnu -p bluestation-bs --bin bluestation-bs
|
|
artifact_name: bluestation-bs-x86_64
|
|
|
|
- target: aarch64-unknown-linux-gnu
|
|
bin_path: target/aarch64-unknown-linux-gnu/release/bluestation-bs
|
|
build_cmd: cross build --release --target aarch64-unknown-linux-gnu -p bluestation-bs --bin bluestation-bs
|
|
artifact_name: bluestation-bs-aarch64-generic
|
|
|
|
- target: aarch64-unknown-linux-gnu
|
|
bin_path: target/aarch64-unknown-linux-gnu/release/bluestation-bs
|
|
build_cmd: cross build --release --target aarch64-unknown-linux-gnu -p bluestation-bs --bin bluestation-bs
|
|
artifact_name: bluestation-bs-rpi4
|
|
cpu_rustflags: "-C target-cpu=cortex-a72"
|
|
|
|
- target: aarch64-unknown-linux-gnu
|
|
bin_path: target/aarch64-unknown-linux-gnu/release/bluestation-bs
|
|
build_cmd: cross build --release --target aarch64-unknown-linux-gnu -p bluestation-bs --bin bluestation-bs
|
|
artifact_name: bluestation-bs-rpi5
|
|
cpu_rustflags: "-C target-cpu=cortex-a76"
|
|
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v4.2.2
|
|
|
|
- name: Install Rust toolchain
|
|
uses: actions-rust-lang/setup-rust-toolchain@v1
|
|
with:
|
|
target: ${{ matrix.target }}
|
|
|
|
- name: Install cross
|
|
if: matrix.target == 'aarch64-unknown-linux-gnu'
|
|
run: cargo install cross --locked
|
|
|
|
- name: Apply CPU-specific RUSTFLAGS
|
|
if: matrix.cpu_rustflags != ''
|
|
run: echo "CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_RUSTFLAGS=${{ matrix.cpu_rustflags }}" >> "$GITHUB_ENV"
|
|
|
|
- name: Install native build dependencies (amd64)
|
|
if: matrix.target == 'x86_64-unknown-linux-gnu'
|
|
run: |
|
|
sudo apt-get update
|
|
sudo apt-get install -y --no-install-recommends \
|
|
git make g++ cmake pkg-config \
|
|
libsoapysdr-dev \
|
|
soapysdr-tools \
|
|
libasound2-dev \
|
|
clang llvm-dev libclang-dev
|
|
|
|
echo "PKG_CONFIG_PATH=/usr/lib/x86_64-linux-gnu/pkgconfig" >> "$GITHUB_ENV"
|
|
pkg-config --modversion SoapySDR
|
|
|
|
- name: Build
|
|
run: ${{ matrix.build_cmd }}
|
|
|
|
- name: Rename binary
|
|
run: cp ${{ matrix.bin_path }} ${{ matrix.artifact_name }}
|
|
|
|
- name: Upload binary
|
|
uses: actions/upload-artifact@v4.6.0
|
|
with:
|
|
name: ${{ matrix.artifact_name }}
|
|
path: ${{ matrix.artifact_name }}
|
|
|
|
release:
|
|
name: Publish latest release
|
|
runs-on: ubuntu-latest
|
|
needs: build
|
|
if: github.ref == 'refs/heads/main'
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v4.2.2
|
|
|
|
- name: Read version from Cargo.toml
|
|
id: version
|
|
run: |
|
|
VERSION=$(grep '^version' Cargo.toml | head -1 | cut -d'"' -f2)
|
|
SHORT_SHA=$(git rev-parse --short HEAD)
|
|
echo "tag=v$VERSION-$SHORT_SHA" >> "$GITHUB_OUTPUT"
|
|
echo "name=v$VERSION-$SHORT_SHA" >> "$GITHUB_OUTPUT"
|
|
|
|
- name: Download all binaries
|
|
uses: actions/download-artifact@v4.2.1
|
|
with:
|
|
path: artifacts
|
|
merge-multiple: true
|
|
|
|
- name: Publish release
|
|
uses: softprops/action-gh-release@v2.3.2
|
|
with:
|
|
tag_name: ${{ steps.version.outputs.tag }}
|
|
name: ${{ steps.version.outputs.name }}
|
|
files: artifacts/*
|