Skip to content

Build Recomputer-Gateway Firmware #41

Build Recomputer-Gateway Firmware

Build Recomputer-Gateway Firmware #41

Workflow file for this run

name: Build Recomputer-Gateway Firmware
on:
workflow_dispatch:
inputs:
tag_name:
description: 'release name'
required: true
default: 'v1.0.0'
type: string
release:
types: [ created ]
jobs:
build:
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- name: Freeing up disk space
uses: easimon/maximize-build-space@master
with:
root-reserve-mb: 3072
swap-size-mb: 1
remove-dotnet: 'true'
remove-android: 'true'
remove-haskell: 'true'
remove-codeql: 'true'
remove-docker-images: 'true'
- name: Checkout repository
uses: actions/checkout@v4
with:
submodules: recursive
- name: Initialization environment
env:
DEBIAN_FRONTEND: noninteractive
run: |
sudo rm -rf /usr/share/dotnet /usr/local/lib/android /opt/ghc /opt/hostedtoolcache/CodeQL
sudo docker image prune --all --force
sudo -E apt-get -qq update
sudo -E apt-get -qq install build-essential clang flex bison g++ gawk gcc-multilib g++-multilib gettext git libncurses5-dev libssl-dev rsync unzip zlib1g-dev file wget
sudo -E apt-get -qq autoremove --purge
sudo -E apt-get -qq clean
sudo timedatectl set-timezone "Asia/Shanghai"
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.12'
- name: Check disk usage before build
run: df -h
- name: Set up OpenWrt build environment
run: |
git submodule update --init --recursive
git clone https://github.com/openwrt/openwrt.git -b openwrt-24.10
cd openwrt && rm -r feeds.conf.default && cp ../feeds.conf.default feeds.conf.default
cat feeds.conf.default
- name: Update feeds
run: cd openwrt && ./scripts/feeds update -a
- name: Install feeds
run: cd openwrt && ./scripts/feeds install -a
- name: Initial configuration
run: |
cd openwrt && make defconfig
rm -r .config && cp ../.config .config
make defconfig
cat .config
- name: Disable Rust LLVM CI download
run: |
sed -i 's/--set=llvm.download-ci-llvm=true/--set=llvm.download-ci-llvm=false/' \
openwrt/feeds/packages/lang/rust/Makefile
- name: Build for recomputer-gateway
run: |
cd openwrt
unset CI
unset GITHUB_ACTIONS
unset CONTINUOUS_INTEGRATION
make -j$(nproc)
- name: Upload recomputer-gateway artifacts
uses: actions/upload-artifact@v4
with:
name: recomputer-gateway
path: |
./openwrt/bin/targets/armsr/armv8/openwrt-armsr-armv8-generic-rootfs.tar.gz
- name: Create version.txt file
if: github.event_name == 'workflow_dispatch'
run: |
cd ./openwrt/bin/targets/armsr/armv8/
echo "Version: ${{ github.event.inputs.tag_name }}" > version.txt
echo "Build Date: $(date '+%Y-%m-%d %H:%M:%S')" >> version.txt
mkdir openwrt-armsr-armv8-generic-rootfs && cd openwrt-armsr-armv8-generic-rootfs
tar -xzf ../openwrt-armsr-armv8-generic-rootfs.tar.gz && cp ../version.txt ./
mkdir -p opt/packages
cp ../../../../packages/aarch64_generic/lorawan_gateway/*.ipk opt/packages/ || true
cp ../../../../packages/aarch64_generic/luci_lorawan_gateway/*.ipk opt/packages/ || true
sudo tar --owner=0 --group=0 --numeric-owner -czf ../openwrt-armsr-armv8-generic-rootfs.tar.gz .
tar -tzf ../openwrt-armsr-armv8-generic-rootfs.tar.gz | grep version.txt
- name: Create Release
if: github.event_name == 'workflow_dispatch'
uses: softprops/action-gh-release@v1
with:
tag_name: ${{ github.event.inputs.tag_name }}
name: ${{ github.event.inputs.tag_name }}
files: |
./openwrt/bin/targets/armsr/armv8/openwrt-armsr-armv8-generic-rootfs.tar.gz
./openwrt/bin/targets/armsr/armv8/version.txt
draft: false
prerelease: false
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}