Skip to content

refactor: enhance RTT tracking with min-sample filter for improved st… #67

refactor: enhance RTT tracking with min-sample filter for improved st…

refactor: enhance RTT tracking with min-sample filter for improved st… #67

Workflow file for this run

name: Build and Upload Debian Package
on:
push:
branches:
- main
release:
types: [released]
jobs:
deb-arm64:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
# Install Rust and cross-compilation tools
- uses: actions-rust-lang/setup-rust-toolchain@v1
with:
toolchain: nightly
target: aarch64-unknown-linux-gnu
# Install cross-compilation dependencies
- run: |
sudo apt update
sudo apt install -y gcc-aarch64-linux-gnu g++-aarch64-linux-gnu
sudo apt install -y libc6-dev-arm64-cross binutils-aarch64-linux-gnu
sudo apt install -y pkg-config
# Verify cross-compiler setup
- name: Verify cross-compiler
run: |
aarch64-linux-gnu-gcc --version
rustup target list | grep aarch64-unknown-linux-gnu
# Extract version from Cargo.toml
- name: Extract version
id: version
run: |
VERSION=$(grep '^version = ' Cargo.toml | head -1 | sed 's/version = "\(.*\)"/\1/')
echo "cargo_version=$VERSION" >> $GITHUB_OUTPUT
echo "Extracted version: $VERSION"
# Compile Rust project for ARM64
- name: Build for ARM64
env:
CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER: aarch64-linux-gnu-gcc
PKG_CONFIG_PATH: /usr/lib/aarch64-linux-gnu/pkgconfig
run: |
cargo build --release --target aarch64-unknown-linux-gnu --verbose
mkdir -p build/usr/bin
cp target/aarch64-unknown-linux-gnu/release/srtla_send build/usr/bin/
# Set up package structure
- name: Create package directories
run: |
mkdir -p build/DEBIAN
cat > build/DEBIAN/control << EOF
Package: srtla
Version: ${{ steps.version.outputs.cargo_version }}
Architecture: arm64
Maintainer: Thomas Lekanger <mail@datagutt.no>
Description: SRT transport proxy with link aggregation for connection bonding
Depends: libc6
Homepage: https://irlserver.com
Section: unknown
EOF
# Build the Debian package
- name: Build Debian package
run: |
dpkg-deb --build build
mv build.deb srtla_${{ steps.version.outputs.cargo_version }}_arm64.deb
- uses: actions/upload-artifact@v4
with:
name: srtla-arm64.deb
path: srtla_${{ steps.version.outputs.cargo_version }}_arm64.deb
deb-amd64:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
# Install Rust toolchain
- uses: actions-rust-lang/setup-rust-toolchain@v1
with:
toolchain: nightly
target: x86_64-unknown-linux-gnu
# Extract version from Cargo.toml
- name: Extract version
id: version
run: |
VERSION=$(grep '^version = ' Cargo.toml | head -1 | sed 's/version = "\(.*\)"/\1/')
echo "cargo_version=$VERSION" >> $GITHUB_OUTPUT
echo "Extracted version: $VERSION"
# Compile Rust project for AMD64
- name: Build for AMD64
run: |
cargo build --release --target x86_64-unknown-linux-gnu
mkdir -p build/usr/bin
cp target/x86_64-unknown-linux-gnu/release/srtla_send build/usr/bin/
# Set up package structure
- name: Create package directories
run: |
mkdir -p build/DEBIAN
cat > build/DEBIAN/control << EOF
Package: srtla
Version: ${{ steps.version.outputs.cargo_version }}
Architecture: amd64
Maintainer: Thomas Lekanger <mail@datagutt.no>
Description: SRT transport proxy with link aggregation for connection bonding
Depends: libc6
Homepage: https://irlserver.com
Section: unknown
EOF
# Build the Debian package
- name: Build Debian package
run: |
dpkg-deb --build build
mv build.deb srtla_${{ steps.version.outputs.cargo_version }}_amd64.deb
- uses: actions/upload-artifact@v4
with:
name: srtla-amd64.deb
path: srtla_${{ steps.version.outputs.cargo_version }}_amd64.deb
release:
needs: [deb-arm64, deb-amd64]
runs-on: ubuntu-latest
if: github.event_name == 'release'
steps:
- uses: actions/checkout@v4
- uses: actions/download-artifact@v4
with:
path: ./artifacts/
- uses: softprops/action-gh-release@v2
with:
files: |
./artifacts/srtla-arm64.deb/srtla_*_arm64.deb
./artifacts/srtla-amd64.deb/srtla_*_amd64.deb
token: ${{ secrets.GITHUB_TOKEN }}