secubox-openwrt/package/secubox/luci-app-auth-guardian/.github/workflows/build.yml
CyberMind-FR 31a87c5d7a feat(structure): reorganize luci-app packages into package/secubox/ + appstore migration
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>
2026-01-01 14:59:38 +01:00

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