Major structural reorganization and feature additions: ## Folder Reorganization - Move 17 luci-app-* packages to package/secubox/ (except luci-app-secubox core hub) - Update all tooling to support new structure: - secubox-tools/quick-deploy.sh: search both locations - secubox-tools/validate-modules.sh: validate both directories - secubox-tools/fix-permissions.sh: fix permissions in both locations - .github/workflows/test-validate.yml: build from both paths - Update README.md links to new package/secubox/ paths ## AppStore Migration (Complete) - Add catalog entries for all remaining luci-app packages: - network-tweaks.json: Network optimization tools - secubox-bonus.json: Documentation & demos hub - Total: 24 apps in AppStore catalog (22 existing + 2 new) - New category: 'documentation' for docs/demos/tutorials ## VHost Manager v2.0 Enhancements - Add profile activation system for Internal Services and Redirects - Implement createVHost() API wrapper for template-based deployment - Fix Virtual Hosts view rendering with proper LuCI patterns - Fix RPCD backend shell script errors (remove invalid local declarations) - Extend backend validation for nginx return directives (redirect support) - Add section_id parameter for named VHost profiles - Add Remove button to Redirects page for feature parity - Update README to v2.0 with comprehensive feature documentation ## Network Tweaks Dashboard - Close button added to component details modal Files changed: 340+ (336 renames with preserved git history) Packages affected: 19 luci-app, 2 secubox-app, 1 theme, 4 tools 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
107 lines
3.3 KiB
YAML
107 lines
3.3 KiB
YAML
name: Build OpenWrt LuCI Package
|
|
|
|
on:
|
|
push:
|
|
branches: [ main, master ]
|
|
tags: [ 'v*' ]
|
|
pull_request:
|
|
branches: [ main, master ]
|
|
workflow_dispatch:
|
|
|
|
env:
|
|
PKG_NAME: luci-app-auth-guardian
|
|
OPENWRT_VERSION: '23.05.5'
|
|
|
|
jobs:
|
|
validate:
|
|
name: Validate
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- name: Check structure
|
|
run: |
|
|
test -f Makefile
|
|
grep -q "PKG_NAME:=luci-app-auth-guardian" Makefile
|
|
find . -name "*.json" -exec python3 -m json.tool {} \; >/dev/null
|
|
|
|
build:
|
|
name: Build ${{ matrix.arch }}
|
|
needs: validate
|
|
runs-on: ubuntu-latest
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
include:
|
|
- arch: x86_64
|
|
target: x86
|
|
subtarget: 64
|
|
- arch: aarch64_cortex-a53
|
|
target: mvebu
|
|
subtarget: cortexa53
|
|
- arch: aarch64_cortex-a72
|
|
target: mvebu
|
|
subtarget: cortexa72
|
|
- arch: arm_cortex-a9_vfpv3-d16
|
|
target: mvebu
|
|
subtarget: cortexa9
|
|
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
- name: Setup environment
|
|
run: |
|
|
sudo apt-get update
|
|
sudo apt-get install -y build-essential clang flex bison g++ gawk \
|
|
gcc-multilib gettext git libncurses5-dev libssl-dev \
|
|
python3-setuptools rsync unzip zlib1g-dev file wget xsltproc
|
|
|
|
- name: Download and extract SDK
|
|
run: |
|
|
SDK_BASE="https://downloads.openwrt.org/releases/${{ env.OPENWRT_VERSION }}/targets/${{ matrix.target }}/${{ matrix.subtarget }}"
|
|
wget -q "${SDK_BASE}/sha256sums"
|
|
SDK_FILE=$(grep -E "openwrt-sdk.*\.tar\.(xz|zst)" sha256sums | head -1 | awk '{print $NF}' | tr -d '*')
|
|
[ -z "$SDK_FILE" ] && { echo "SDK not found"; exit 1; }
|
|
wget -q "${SDK_BASE}/${SDK_FILE}"
|
|
case "$SDK_FILE" in
|
|
*.tar.xz) tar -xJf "$SDK_FILE" ;;
|
|
*.tar.zst) tar --zstd -xf "$SDK_FILE" ;;
|
|
esac
|
|
SDK_DIR=$(find . -maxdepth 1 -type d -name "openwrt-sdk-*" -print -quit)
|
|
mv "$SDK_DIR" sdk
|
|
|
|
- name: Build package
|
|
run: |
|
|
cd sdk
|
|
echo "src-git luci https://github.com/openwrt/luci.git;openwrt-23.05" >> feeds.conf.default
|
|
./scripts/feeds update -a
|
|
./scripts/feeds install -a
|
|
mkdir -p "package/${{ env.PKG_NAME }}"
|
|
rsync -av --exclude='.git' --exclude='sdk' --exclude='*.tar.*' ../. "package/${{ env.PKG_NAME }}/"
|
|
make defconfig
|
|
make "package/${{ env.PKG_NAME }}/compile" V=s -j$(nproc) || \
|
|
make "package/${{ env.PKG_NAME }}/compile" V=s -j1
|
|
|
|
- name: Upload artifacts
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: ${{ env.PKG_NAME }}-${{ matrix.arch }}
|
|
path: sdk/bin/**/*.ipk
|
|
if-no-files-found: error
|
|
|
|
release:
|
|
needs: build
|
|
if: startsWith(github.ref, 'refs/tags/v')
|
|
runs-on: ubuntu-latest
|
|
permissions:
|
|
contents: write
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- uses: actions/download-artifact@v4
|
|
with:
|
|
path: artifacts
|
|
merge-multiple: true
|
|
- uses: softprops/action-gh-release@v1
|
|
with:
|
|
files: artifacts/**/*.ipk
|
|
generate_release_notes: true
|