GitHub workflow for cross-compiling Reticulum Network Stack (RNS) packages for OpenWrt. Based on openwrt/gh-action-sdk.
Note: This is an experimental project currently under active development. The build process and package structure are still being refined and may change significantly. Not recommended for production use yet!
This repository provides GitHub Actions workflows for building OpenWrt packages defined in the feed-reticulum repository. While the feed contains the package definitions (Makefiles, patches, and configurations), this workflow handles the automated cross-compilation process.
- feed-reticulum: Contains OpenWrt package definitions for RNS
- This repository: Provides automation to build those packages for different architectures
- Cross-compiles RNS packages for OpenWrt targets
- Uses official OpenWrt SDK containers
- Build artifact collection and release management
- Package signing support
- The workflow fetches the official OpenWrt SDK container for each target architecture
- It adds our custom feed (
feed-reticulum
) to the SDK - The packages (
rns
andlxmf
) are then built using the SDK - Built packages are collected and published as artifacts
This workflow builds rns
and lxmf
packages for:
Architecture | Example Devices |
---|---|
aarch64_cortex-a53 |
GL.iNet MT3000 (Beryl AX), Raspberry Pi 4/Zero 2, MediaTek MT7981/MT7622 |
arm_arm1176jzf-s_vfp |
Raspberry Pi Zero (1st gen) |
mips_24kc |
GL.iNet AR750S (Slate), GL.iNet AR300M, Most Atheros AR71xx/AR72xx/AR93xx |
x86_64 |
Generic x86_64 devices, Virtual Machines |
Create a workflow file (e.g. .github/workflows/build.yml
):
name: Build OpenWrt Packages
on:
push:
branches: [ main ]
tags: ["[0-9]+.[0-9]+.[0-9]+*"]
pull_request:
workflow_dispatch:
env:
PACKAGES: rns lxmf
EXTRA_FEEDS: >-
src-git|reticulum|https://github.com/gretel/feed-reticulum.git
jobs:
build:
# ... rest of workflow configuration
Variable | Description | Default |
---|---|---|
PACKAGES |
Space-separated list (rns lxmf ) |
Required |
EXTRA_FEEDS |
Feed URL (src-git|reticulum|url ) |
Required |
V |
Build verbosity ('', 's', 'sc') | '' |
PRIVATE_KEY |
Package signing key | Repository Secret |
INDEX |
Generate package index (0/1) | 0 |
The workflow produces:
- Built packages
- Package index (if enabled)
All artifacts are:
- Collected from
/artifacts
directory - Uploaded to GitHub Actions artifacts
- Published to GitHub Releases for tagged commits
- GitHub Actions runner with Docker support
- OpenWrt-compatible package source code
- Valid package Makefiles in feed
- Package signing key (optional)
For local development and testing, refer to the feed-reticulum repository, which contains detailed instructions for:
- Setting up the OpenWrt build environment
- Installing required dependencies
- Building packages locally
- Configuration and usage guides
- Mark Qvist - Creator of Reticulum Network Stack
- OpenWrt team - SDK action
MIT