diff --git a/.github/workflows/aclr.yaml b/.github/workflows/aclr.yaml new file mode 100644 index 0000000000..c97c644e46 --- /dev/null +++ b/.github/workflows/aclr.yaml @@ -0,0 +1,117 @@ +--- +# Based on https://github.com/JuliusBairaktaris/QualcommNSS_Builder/blob/main/.github/workflows/build.yaml +name: Build OpenWRT for Unifi AP AC LR + +on: + workflow_dispatch: + +env: + REMOTE_REPOSITORY: openwrt/openwrt + REMOTE_BRANCH: openwrt-23.05 + RELEASE_PREFIX: Ath79_uapaclr + DEVICE_CONFIG: configs/ath79/generic/uap-ac-lr + ROLE_CONFIG: configs/common/parents-minimal + +jobs: + check_commits: + name: Check Commits + runs-on: ubuntu-24.04 + outputs: + latest_commit_sha: ${{ steps.get_sha.outputs.latest_commit_sha }} + steps: + - name: Checkout remote repository + uses: actions/checkout@v4 + with: + repository: ${{ env.REMOTE_REPOSITORY }} + ref: ${{ env.REMOTE_BRANCH }} + + - name: Get the latest commit SHA + id: get_sha + run: | + echo "latest_commit_sha=$(git rev-parse HEAD)" >> $GITHUB_ENV + echo "latest_commit_sha=$(git rev-parse HEAD)" >> $GITHUB_OUTPUT + + build: + name: Build OpenWRT for uapaclr + needs: [check_commits] + runs-on: ubuntu-24.04 + steps: + - name: Install dependencies + run: | + sudo apt update + sudo apt install -y \ + build-essential clang flex bison g++ gawk \ + gcc-multilib g++-multilib gettext git libncurses5-dev libssl-dev \ + python3-setuptools rsync swig unzip zlib1g-dev file wget curl + sudo apt full-upgrade -y + + - name: Checkout remote repository + uses: actions/checkout@v4 + with: + repository: ${{ env.REMOTE_REPOSITORY }} + ref: ${{ env.REMOTE_BRANCH }} + + - name: Update and install feeds + run: | + ./scripts/feeds update -a + ./scripts/feeds install -a + +# curl -SL https://raw.githubusercontent.com/danpawlik/openwrt-builder/master/configs/common/snapshot-short >> .config + - name: Configure firmware image + run: | + curl -SL "https://raw.githubusercontent.com/danpawlik/openwrt-builder/master/$DEVICE_CONFIG" > .config + curl -SL "https://raw.githubusercontent.com/danpawlik/openwrt-builder/master/$ROLE_CONFIG" >> .config + make defconfig + + - name: Remove packages that are marked as modules + run: | + grep "=m" .config | grep -v 'CONFIG_PACKAGE_libustream-mbedtls=m' | while read -r line; do module=$(echo "$line" | cut -f1 -d'='); sed -i "s/^$line$/# $module is not set/" .config; done + + - name: Download dependencies + run: make -j $(nproc) download + + - name: Build the firmware image + run: make -j $(nproc) world + + - name: Package output + run: tar -cvf uapaclr-images.tar bin/targets/ath79/generic + + - name: Upload artifacts + uses: actions/upload-artifact@v4 + with: + name: uapaclr-images + path: uapaclr-images.tar + + release: + name: Create release + needs: [build, check_commits] + if: needs.build.result == 'success' + runs-on: ubuntu-24.04 + steps: + - name: Download artifacts + uses: actions/download-artifact@v4 + with: + name: uapaclr-images + - name: Extract artifacts + run: tar xf uapaclr-images.tar + + - name: Get current date + run: echo "RELEASE_DATE=$(date +%F)" >> $GITHUB_ENV + + - name: Create release + uses: softprops/action-gh-release@master + with: + files: bin/targets/ath79/generic/* + tag_name: ${{ env.RELEASE_PREFIX }}-${{ env.RELEASE_DATE }} + name: OpenWRT uapaclr ${{ env.RELEASE_DATE }} + body: | + Updated prebuilt images for ${{ env.RELEASE_DATE }} + Build Commit: ${{ needs.check_commits.outputs.latest_commit_sha }} + + - name: Clean up old releases + uses: dev-drprasad/delete-older-releases@master + with: + keep_latest: 15 + delete_tags: true + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/u6lite.yaml b/.github/workflows/u6lite.yaml new file mode 100644 index 0000000000..c08312206b --- /dev/null +++ b/.github/workflows/u6lite.yaml @@ -0,0 +1,117 @@ +--- +# Based on https://github.com/JuliusBairaktaris/QualcommNSS_Builder/blob/main/.github/workflows/build.yaml +name: Build OpenWRT for Unifi 6 lite + +on: + workflow_dispatch: + +env: + REMOTE_REPOSITORY: openwrt/openwrt + REMOTE_BRANCH: openwrt-23.05 + RELEASE_PREFIX: Ramips_mt7621_u6lite + DEVICE_CONFIG: configs/ramips/mt7621/u6-lite + ROLE_CONFIG: configs/common/parents + +jobs: + check_commits: + name: Check Commits + runs-on: ubuntu-24.04 + outputs: + latest_commit_sha: ${{ steps.get_sha.outputs.latest_commit_sha }} + steps: + - name: Checkout remote repository + uses: actions/checkout@v4 + with: + repository: ${{ env.REMOTE_REPOSITORY }} + ref: ${{ env.REMOTE_BRANCH }} + + - name: Get the latest commit SHA + id: get_sha + run: | + echo "latest_commit_sha=$(git rev-parse HEAD)" >> $GITHUB_ENV + echo "latest_commit_sha=$(git rev-parse HEAD)" >> $GITHUB_OUTPUT + + build: + name: Build OpenWRT for u6lite + needs: [check_commits] + runs-on: ubuntu-24.04 + steps: + - name: Install dependencies + run: | + sudo apt update + sudo apt install -y \ + build-essential clang flex bison g++ gawk \ + gcc-multilib g++-multilib gettext git libncurses5-dev libssl-dev \ + python3-setuptools rsync swig unzip zlib1g-dev file wget curl + sudo apt full-upgrade -y + + - name: Checkout remote repository + uses: actions/checkout@v4 + with: + repository: ${{ env.REMOTE_REPOSITORY }} + ref: ${{ env.REMOTE_BRANCH }} + + - name: Update and install feeds + run: | + ./scripts/feeds update -a + ./scripts/feeds install -a + +# curl -SL https://raw.githubusercontent.com/danpawlik/openwrt-builder/master/configs/common/snapshot-short >> .config + - name: Configure firmware image + run: | + curl -SL "https://raw.githubusercontent.com/danpawlik/openwrt-builder/master/$DEVICE_CONFIG" > .config + curl -SL "https://raw.githubusercontent.com/danpawlik/openwrt-builder/master/$ROLE_CONFIG" >> .config + make defconfig + + - name: Remove packages that are marked as modules + run: | + grep "=m" .config | grep -v 'CONFIG_PACKAGE_libustream-mbedtls=m' | while read -r line; do module=$(echo "$line" | cut -f1 -d'='); sed -i "s/^$line$/# $module is not set/" .config; done + + - name: Download dependencies + run: make -j $(nproc) download + + - name: Build the firmware image + run: make -j $(nproc) world + + - name: Package output + run: tar -cvf u6lite-images.tar bin/targets/ramips/mt7621 + + - name: Upload artifacts + uses: actions/upload-artifact@v4 + with: + name: u6lite-images + path: u6lite-images.tar + + release: + name: Create release + needs: [build, check_commits] + if: needs.build.result == 'success' + runs-on: ubuntu-24.04 + steps: + - name: Download artifacts + uses: actions/download-artifact@v4 + with: + name: u6lite-images + - name: Extract artifacts + run: tar xf u6lite-images.tar + + - name: Get current date + run: echo "RELEASE_DATE=$(date +%F)" >> $GITHUB_ENV + + - name: Create release + uses: softprops/action-gh-release@master + with: + files: bin/targets/ramips/mt7621/* + tag_name: ${{ env.RELEASE_PREFIX }}-${{ env.RELEASE_DATE }} + name: OpenWRT u6lite ${{ env.RELEASE_DATE }} + body: | + Updated prebuilt images for ${{ env.RELEASE_DATE }} + Build Commit: ${{ needs.check_commits.outputs.latest_commit_sha }} + + - name: Clean up old releases + uses: dev-drprasad/delete-older-releases@master + with: + keep_latest: 15 + delete_tags: true + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/configs/common/parents b/configs/common/parents new file mode 100644 index 0000000000..d7ca969fc6 --- /dev/null +++ b/configs/common/parents @@ -0,0 +1,103 @@ +# LuCI +CONFIG_PACKAGE_cgi-io=y +CONFIG_PACKAGE_liblucihttp=y +CONFIG_PACKAGE_luci=y +CONFIG_PACKAGE_luci-app-firewall=y +CONFIG_PACKAGE_luci-app-opkg=y +CONFIG_PACKAGE_luci-base=y +CONFIG_PACKAGE_luci-lib-base=y +CONFIG_PACKAGE_luci-lib-ip=y +CONFIG_PACKAGE_luci-lib-jsonc=y +CONFIG_PACKAGE_luci-lib-nixio=y +CONFIG_PACKAGE_luci-mod-admin-full=y +CONFIG_PACKAGE_luci-mod-network=y +CONFIG_PACKAGE_luci-mod-status=y +CONFIG_PACKAGE_luci-mod-system=y +CONFIG_PACKAGE_luci-proto-ipv6=y +CONFIG_PACKAGE_luci-proto-ppp=y +CONFIG_PACKAGE_luci-theme-bootstrap=y + +# additional packages +CONFIG_PACKAGE_vim=y +CONFIG_PACKAGE_bmon=y +CONFIG_PACKAGE_htop=y +CONFIG_PACKAGE_iperf3=y +CONFIG_PACKAGE_curl=y +CONFIG_PACKAGE_rsync=y +# CONFIG_PACKAGE_tcpdump is not set +CONFIG_PACKAGE_bind-dig=y +# CONFIG_PACKAGE_ethtool-full is not set +# CONFIG_PACKAGE_pciutils is not set +CONFIG_PACKAGE_irqbalance=y +# CONFIG_PACKAGE_luci-app-irqbalance is not set + +# attendedsysupgrade / owut +# CONFIG_PACKAGE_owut is not set +CONFIG_PACKAGE_auc=y + +# use experimental kernel +# CONFIG_TESTING_KERNEL is not set + +## wireguard +CONFIG_PACKAGE_kmod-wireguard=y +CONFIG_PACKAGE_wireguard-tools=y +CONFIG_PACKAGE_luci-proto-wireguard=y +# CONFIG_PACKAGE_qrencode=y + +## https dns +CONFIG_PACKAGE_dnscrypt-proxy2=y + +# collecd +CONFIG_PACKAGE_luci-app-statistics=y +CONFIG_PACKAGE_collectd=y +CONFIG_PACKAGE_collectd-mod-cpu=y +CONFIG_PACKAGE_collectd-mod-interface=y +CONFIG_PACKAGE_collectd-mod-iwinfo=y +CONFIG_PACKAGE_collectd-mod-load=y +CONFIG_PACKAGE_collectd-mod-memory=y +CONFIG_PACKAGE_collectd-mod-network=y +CONFIG_PACKAGE_collectd-mod-rrdtool=y +CONFIG_PACKAGE_collectd-mod-sensors=y +CONFIG_PACKAGE_collectd-mod-wireless=y +CONFIG_PACKAGE_collectd-mod-dns=y + +## Better roaming: dawn vs usteer => choose one +## dawn +# CONFIG_PACKAGE_dawn=y +# CONFIG_PACKAGE_luci-app-dawn=y + +### usteer +# CONFIG_PACKAGE_usteer it not set +# CONFIG_PACKAGE_luci-app-usteer it not set + +# language +CONFIG_LUCI_LANG_pl=y + +####### REPLACE CRYPTOLIB ##### +# Remove section and copy from config/common/ a cryptolib section that you need. +CONFIG_PACKAGE_wpad-basic-mbedtls=m +CONFIG_PACKAGE_wpad-mbedtls=y +####### + +# temporary workaround for kernel 6.6 +# CONFIG_PACKAGE_kmod-usb-serial-dmx_usb_module is not set +# CONFIG_PACKAGE_kmod-pf-ring is not set +# CONFIG_PACKAGE_kmod-ovpn-dco-v2 is not set +# CONFIG_PACKAGE_kmod-usb-serial-xr_usb_serial_common is not set +# CONFIG_PACKAGE_kmod-mlx5-core is not set +# CONFIG_PACKAGE_kmod-leds-ubnt-ledbar is not set + +### for bridger +# CONFIG_PACKAGE_kmod-sched-core is not set +# CONFIG_PACKAGE_kmod-sched-flower is not set +# CONFIG_PACKAGE_kmod-sched-bpf is not set +# CONFIG_PACKAGE_kmod-sched-act-vlan is not set +# CONFIG_PACKAGE_libelf is not set +# CONFIG_PACKAGE_libbpf is not set + +# Debugging +# CONFIG_PACKAGE_kmod-veth is not set + +CONFIG_ALL_KMODS=y +CONFIG_ALL_NONSHARED=y +CONFIG_AUTOREMOVE=y diff --git a/configs/common/parents-minimal b/configs/common/parents-minimal new file mode 100644 index 0000000000..df5b7060ac --- /dev/null +++ b/configs/common/parents-minimal @@ -0,0 +1,103 @@ +# LuCI +CONFIG_PACKAGE_cgi-io=y +CONFIG_PACKAGE_liblucihttp=y +CONFIG_PACKAGE_luci=y +CONFIG_PACKAGE_luci-app-firewall=y +CONFIG_PACKAGE_luci-app-opkg=y +CONFIG_PACKAGE_luci-base=y +CONFIG_PACKAGE_luci-lib-base=y +CONFIG_PACKAGE_luci-lib-ip=y +CONFIG_PACKAGE_luci-lib-jsonc=y +CONFIG_PACKAGE_luci-lib-nixio=y +CONFIG_PACKAGE_luci-mod-admin-full=y +CONFIG_PACKAGE_luci-mod-network=y +CONFIG_PACKAGE_luci-mod-status=y +CONFIG_PACKAGE_luci-mod-system=y +CONFIG_PACKAGE_luci-proto-ipv6=y +CONFIG_PACKAGE_luci-proto-ppp=y +CONFIG_PACKAGE_luci-theme-bootstrap=y + +# additional packages +CONFIG_PACKAGE_vim=y +CONFIG_PACKAGE_bmon=y +CONFIG_PACKAGE_htop=y +CONFIG_PACKAGE_iperf3=y +CONFIG_PACKAGE_curl=y +CONFIG_PACKAGE_rsync=y +# CONFIG_PACKAGE_tcpdump is not set +CONFIG_PACKAGE_bind-dig=y +# CONFIG_PACKAGE_ethtool-full is not set +# CONFIG_PACKAGE_pciutils is not set +# CONFIG_PACKAGE_irqbalance is not set +# CONFIG_PACKAGE_luci-app-irqbalance is not set + +# attendedsysupgrade / owut +# CONFIG_PACKAGE_owut is not set +CONFIG_PACKAGE_auc=y + +# use experimental kernel +# CONFIG_TESTING_KERNEL is not set + +## wireguard +# CONFIG_PACKAGE_kmod-wireguard is not set +# CONFIG_PACKAGE_wireguard-tools is not set +# CONFIG_PACKAGE_luci-proto-wireguard is not set +# CONFIG_PACKAGE_qrencode=y + +## https dns +CONFIG_PACKAGE_dnscrypt-proxy2=y + +# collecd +CONFIG_PACKAGE_luci-app-statistics=y +CONFIG_PACKAGE_collectd=y +CONFIG_PACKAGE_collectd-mod-cpu=y +CONFIG_PACKAGE_collectd-mod-interface=y +CONFIG_PACKAGE_collectd-mod-iwinfo=y +CONFIG_PACKAGE_collectd-mod-load=y +CONFIG_PACKAGE_collectd-mod-memory=y +CONFIG_PACKAGE_collectd-mod-network=y +CONFIG_PACKAGE_collectd-mod-rrdtool=y +CONFIG_PACKAGE_collectd-mod-sensors=y +CONFIG_PACKAGE_collectd-mod-wireless=y +CONFIG_PACKAGE_collectd-mod-dns=y + +## Better roaming: dawn vs usteer => choose one +## dawn +# CONFIG_PACKAGE_dawn=y +# CONFIG_PACKAGE_luci-app-dawn=y + +### usteer +# CONFIG_PACKAGE_usteer it not set +# CONFIG_PACKAGE_luci-app-usteer it not set + +# language +CONFIG_LUCI_LANG_pl=y + +####### REPLACE CRYPTOLIB ##### +# Remove section and copy from config/common/ a cryptolib section that you need. +CONFIG_PACKAGE_wpad-basic-mbedtls=m +CONFIG_PACKAGE_wpad-mbedtls=y +####### + +# temporary workaround for kernel 6.6 +# CONFIG_PACKAGE_kmod-usb-serial-dmx_usb_module is not set +# CONFIG_PACKAGE_kmod-pf-ring is not set +# CONFIG_PACKAGE_kmod-ovpn-dco-v2 is not set +# CONFIG_PACKAGE_kmod-usb-serial-xr_usb_serial_common is not set +# CONFIG_PACKAGE_kmod-mlx5-core is not set +# CONFIG_PACKAGE_kmod-leds-ubnt-ledbar is not set + +### for bridger +# CONFIG_PACKAGE_kmod-sched-core is not set +# CONFIG_PACKAGE_kmod-sched-flower is not set +# CONFIG_PACKAGE_kmod-sched-bpf is not set +# CONFIG_PACKAGE_kmod-sched-act-vlan is not set +# CONFIG_PACKAGE_libelf is not set +# CONFIG_PACKAGE_libbpf is not set + +# Debugging +# CONFIG_PACKAGE_kmod-veth is not set + +CONFIG_ALL_KMODS=y +CONFIG_ALL_NONSHARED=y +CONFIG_AUTOREMOVE=y