diff --git a/.github/workflows/build-minimal.yml b/.github/workflows/build-minimal.yml index 1845702..6b7d327 100644 --- a/.github/workflows/build-minimal.yml +++ b/.github/workflows/build-minimal.yml @@ -55,7 +55,7 @@ jobs: uses: sbwml/actions@openwrt-build-setup - name: Install LLVM - uses: sbwml/actions@install-llvm + uses: sbwml/actions@install-llvm-19 - name: Compile OpenWrt id: compile @@ -173,7 +173,7 @@ jobs: echo y | aliyunpan logout - name: Release OTA - uses: sbwml/FTP-Deploy-Action@master + uses: SamKirkland/FTP-Deploy-Action@v4.3.5 with: server: ${{ secrets.ftp_address }} username: ${{ matrix.model }}-minimal diff --git a/.github/workflows/build-release.yml b/.github/workflows/build-release.yml index c1f9dea..9a90223 100644 --- a/.github/workflows/build-release.yml +++ b/.github/workflows/build-release.yml @@ -68,7 +68,7 @@ jobs: uses: sbwml/actions@openwrt-build-setup - name: Install LLVM - uses: sbwml/actions@install-llvm + uses: sbwml/actions@install-llvm-19 - name: Compile OpenWrt id: compile @@ -148,7 +148,7 @@ jobs: echo "

x86_64 虚拟机平台镜像

" > README.md - name: Create release - uses: sbwml/release-action@main + uses: ncipollo/release-action@v1.14.0 with: name: OpenWrt-${{ env.latest_release }} allowUpdates: true @@ -160,7 +160,7 @@ jobs: - name: Release kmods if: env.release_kmod == 'true' - uses: sbwml/release-action@main + uses: ncipollo/release-action@v1.14.0 with: name: OpenWrt-${{ env.latest_release }} allowUpdates: true @@ -212,19 +212,19 @@ jobs: export ALIYUNPAN_CONFIG_DIR="$(pwd)/.aliyunpan" version=$(cat openwrt/version.txt) if [ "${{ matrix.model }}" = "nanopi-r4s" ]; then - aliyunpan upload --timeout 30 --retry 10 --ow info/config.buildinfo openwrt/nanopi-r4s/releases/${{ matrix.tag.version }}/$version/ - aliyunpan upload --timeout 30 --retry 10 --ow info/manifest.txt openwrt/nanopi-r4s/releases/${{ matrix.tag.version }}/$version/ - aliyunpan upload --timeout 30 --retry 10 --ow info/sha256sums.txt openwrt/nanopi-r4s/releases/${{ matrix.tag.version }}/$version/ - aliyunpan upload --timeout 30 --retry 10 --ow rom/*-r4s-ext4-sysupgrade.img.gz openwrt/nanopi-r4s/releases/${{ matrix.tag.version }}/$version/ - aliyunpan upload --timeout 30 --retry 10 --ow rom/*-r4s-squashfs-sysupgrade.img.gz openwrt/nanopi-r4s/releases/${{ matrix.tag.version }}/$version/ + aliyunpan upload --timeout 20 --retry 10 --ow info/config.buildinfo openwrt/nanopi-r4s/releases/${{ matrix.tag.version }}/$version/ + aliyunpan upload --timeout 20 --retry 10 --ow info/manifest.txt openwrt/nanopi-r4s/releases/${{ matrix.tag.version }}/$version/ + aliyunpan upload --timeout 20 --retry 10 --ow info/sha256sums.txt openwrt/nanopi-r4s/releases/${{ matrix.tag.version }}/$version/ + aliyunpan upload --timeout 20 --retry 10 --ow rom/*-r4s-ext4-sysupgrade.img.gz openwrt/nanopi-r4s/releases/${{ matrix.tag.version }}/$version/ + aliyunpan upload --timeout 20 --retry 10 --ow rom/*-r4s-squashfs-sysupgrade.img.gz openwrt/nanopi-r4s/releases/${{ matrix.tag.version }}/$version/ elif [ "${{ matrix.model }}" = "nanopi-r5s" ]; then - aliyunpan upload --timeout 30 --retry 10 --ow info/config.buildinfo openwrt/nanopi-r5s/releases/${{ matrix.tag.version }}/$version/ - aliyunpan upload --timeout 30 --retry 10 --ow info/manifest.txt openwrt/nanopi-r5s/releases/${{ matrix.tag.version }}/$version/ - aliyunpan upload --timeout 30 --retry 10 --ow info/sha256sums.txt openwrt/nanopi-r5s/releases/${{ matrix.tag.version }}/$version/ - aliyunpan upload --timeout 30 --retry 10 --ow rom/*-r5c-ext4-sysupgrade.img.gz openwrt/nanopi-r5s/releases/${{ matrix.tag.version }}/$version/ - aliyunpan upload --timeout 30 --retry 10 --ow rom/*-r5c-squashfs-sysupgrade.img.gz openwrt/nanopi-r5s/releases/${{ matrix.tag.version }}/$version/ - aliyunpan upload --timeout 30 --retry 10 --ow rom/*-r5s-ext4-sysupgrade.img.gz openwrt/nanopi-r5s/releases/${{ matrix.tag.version }}/$version/ - aliyunpan upload --timeout 30 --retry 10 --ow rom/*-r5s-squashfs-sysupgrade.img.gz openwrt/nanopi-r5s/releases/${{ matrix.tag.version }}/$version/ + aliyunpan upload --timeout 20 --retry 10 --ow info/config.buildinfo openwrt/nanopi-r5s/releases/${{ matrix.tag.version }}/$version/ + aliyunpan upload --timeout 20 --retry 10 --ow info/manifest.txt openwrt/nanopi-r5s/releases/${{ matrix.tag.version }}/$version/ + aliyunpan upload --timeout 20 --retry 10 --ow info/sha256sums.txt openwrt/nanopi-r5s/releases/${{ matrix.tag.version }}/$version/ + aliyunpan upload --timeout 20 --retry 10 --ow rom/*-r5c-ext4-sysupgrade.img.gz openwrt/nanopi-r5s/releases/${{ matrix.tag.version }}/$version/ + aliyunpan upload --timeout 20 --retry 10 --ow rom/*-r5c-squashfs-sysupgrade.img.gz openwrt/nanopi-r5s/releases/${{ matrix.tag.version }}/$version/ + aliyunpan upload --timeout 20 --retry 10 --ow rom/*-r5s-ext4-sysupgrade.img.gz openwrt/nanopi-r5s/releases/${{ matrix.tag.version }}/$version/ + aliyunpan upload --timeout 20 --retry 10 --ow rom/*-r5s-squashfs-sysupgrade.img.gz openwrt/nanopi-r5s/releases/${{ matrix.tag.version }}/$version/ elif [ "${{ matrix.model }}" = "x86_64" ]; then aliyunpan upload --timeout 30 --retry 10 --ow info/config.buildinfo openwrt/x86_64/releases/${{ matrix.tag.version }}/$version/ aliyunpan upload --timeout 30 --retry 10 --ow info/manifest.txt openwrt/x86_64/releases/${{ matrix.tag.version }}/$version/ @@ -239,10 +239,10 @@ jobs: aliyunpan upload --timeout 30 --retry 10 --ow virtual_images/*.vhd openwrt/x86_64/releases/${{ matrix.tag.version }}/$version/virtual_machine_images/ aliyunpan upload --timeout 30 --retry 10 --ow virtual_images/*.qcow2 openwrt/x86_64/releases/${{ matrix.tag.version }}/$version/virtual_machine_images/ elif [ "${{ matrix.model }}" = "netgear_r8500" ]; then - aliyunpan upload --timeout 30 --retry 10 --ow info/config.buildinfo openwrt/netgear-r8500/releases/${{ matrix.tag.version }}/$version/ - aliyunpan upload --timeout 30 --retry 10 --ow info/manifest.txt openwrt/netgear-r8500/releases/${{ matrix.tag.version }}/$version/ - aliyunpan upload --timeout 30 --retry 10 --ow info/sha256sums.txt openwrt/netgear-r8500/releases/${{ matrix.tag.version }}/$version/ - aliyunpan upload --timeout 30 --retry 10 --ow rom/*.chk openwrt/netgear-r8500/releases/${{ matrix.tag.version }}/$version/ + aliyunpan upload --timeout 20 --retry 10 --ow info/config.buildinfo openwrt/netgear-r8500/releases/${{ matrix.tag.version }}/$version/ + aliyunpan upload --timeout 20 --retry 10 --ow info/manifest.txt openwrt/netgear-r8500/releases/${{ matrix.tag.version }}/$version/ + aliyunpan upload --timeout 20 --retry 10 --ow info/sha256sums.txt openwrt/netgear-r8500/releases/${{ matrix.tag.version }}/$version/ + aliyunpan upload --timeout 20 --retry 10 --ow rom/*.chk openwrt/netgear-r8500/releases/${{ matrix.tag.version }}/$version/ fi aliyunpan recycle delete -all echo y | aliyunpan logout @@ -254,7 +254,7 @@ jobs: sshpass -p ${{ secrets.user_password }} ssh root@${{ secrets.ftp_address }} "/opt/sbin/fw-upload ${{ matrix.model }}" - name: Release OTA - uses: sbwml/FTP-Deploy-Action@master + uses: SamKirkland/FTP-Deploy-Action@v4.3.5 with: server: ${{ secrets.ftp_address }} username: ${{ matrix.model }} diff --git a/.github/workflows/build-snapshots.yml b/.github/workflows/build-snapshots.yml index 2c8383a..b20e49e 100644 --- a/.github/workflows/build-snapshots.yml +++ b/.github/workflows/build-snapshots.yml @@ -55,7 +55,7 @@ jobs: uses: sbwml/actions@openwrt-build-setup - name: Install LLVM - uses: sbwml/actions@install-llvm + uses: sbwml/actions@install-llvm-19 - name: Compile OpenWrt id: compile diff --git a/.github/workflows/build-test.yml b/.github/workflows/build-test.yml new file mode 100644 index 0000000..ddee0e1 --- /dev/null +++ b/.github/workflows/build-test.yml @@ -0,0 +1,130 @@ +name: Build Testing + +on: + workflow_dispatch: + +jobs: + build: + name: Build ${{ matrix.model }}-${{ matrix.tag.version }} + runs-on: ubuntu-24.04 + defaults: + run: + shell: bash + strategy: + fail-fast: false + matrix: + model: + - armv8 + - nanopi-r4s + - nanopi-r5s + - x86_64 + - netgear_r8500 + tag: + - type: rc2 + version: openwrt-23.05 + + steps: + - name: Setup variables + run: | + sudo timedatectl set-timezone 'Asia/Shanghai' + git config --global user.name 'actions' + git config --global user.email 'action@github.com' + echo WORKDIR="/builder" >> "$GITHUB_ENV" + + - name: Show system + run: | + echo -e "\n\e[1;32mCPU:\e[0m" + echo "$(grep 'model name' /proc/cpuinfo | head -1 | awk -F ': ' '{print $2}') ($(grep 'cpu MHz' /proc/cpuinfo | head -1 | awk -F ': ' '{print $2}')MHz) x $(grep processor /proc/cpuinfo | wc -l)" + echo -e "\n\e[1;32mMemory:\e[0m" + free -h + echo -e "\n\e[1;32mStorage:\e[0m" + df -Th / /mnt + echo -e "\n\e[1;32mSystem:\e[0m" + lsb_release -a + echo -e "\n\e[1;32mKernel:\e[0m" + uname -a + echo + + - name: Free disk space + uses: sbwml/actions@free-disk + with: + build-mount-path: /builder + + - name: Build System Setup + uses: sbwml/actions@openwrt-build-setup + + - name: Install LLVM + uses: sbwml/actions@install-llvm-19 + + - name: Compile OpenWrt + id: compile + continue-on-error: true + working-directory: /builder + env: + git_password: ${{ secrets.ftp_password }} + run: | + [ "${{ matrix.model }}" != "netgear_r8500" ] && export KERNEL_CLANG_LTO=y + export TESTING_KERNEL=y BUILD_FAST=y ENABLE_OTA=y ENABLE_BPF=y ENABLE_LTO=y ENABLE_LRNG=y USE_GCC15=y ENABLE_MOLD=y + bash <(curl -sS ${{ secrets.script_url_general }}) ${{ matrix.tag.type }} ${{ matrix.model }} + cd openwrt + tags=$(git describe --abbrev=0 --tags) + echo "latest_release=$tags" >>$GITHUB_ENV + + - name: Extensive logs after a failed compilation + if: steps.compile.outcome == 'failure' + working-directory: /builder + run: | + cd openwrt + make V=s + + - name: Prepare Firmware Files + working-directory: /builder + run: | + mkdir -p rom info + if [ "${{ matrix.model }}" = "nanopi-r4s" ]; then + cp -a openwrt/bin/targets/rockchip/*/*.img.gz rom/ + cp -a openwrt/bin/targets/rockchip/*/*-r4s.manifest info/manifest.txt + cp -a openwrt/bin/targets/rockchip/*/config.buildinfo info/config.buildinfo + cd rom && sha256sum * > ../info/sha256sums.txt + elif [ "${{ matrix.model }}" = "nanopi-r5s" ]; then + cp -a openwrt/bin/targets/rockchip/*/*.img.gz rom/ + cp -a openwrt/bin/targets/rockchip/*/*.manifest info/manifest.txt + cp -a openwrt/bin/targets/rockchip/*/config.buildinfo info/config.buildinfo + cd rom && sha256sum * > ../info/sha256sums.txt + elif [ "${{ matrix.model }}" = "x86_64" ]; then + cp -a openwrt/bin/targets/x86/*/*-ext4-combined-efi.img.gz rom/ + cp -a openwrt/bin/targets/x86/*/*-squashfs-combined-efi.img.gz rom/ + cp -a openwrt/bin/targets/x86/*/*-generic-rootfs.tar.gz rom/ + cp -a openwrt/bin/targets/x86/*/*-x86-64-generic.manifest info/manifest.txt + cp -a openwrt/bin/targets/x86/*/config.buildinfo info/config.buildinfo + cd rom && sha256sum * > ../info/sha256sums.txt + elif [ "${{ matrix.model }}" = "netgear_r8500" ]; then + cp -a openwrt/bin/targets/bcm53xx/generic/*-bcm53xx-generic-netgear_r8500-squashfs.chk rom/ + cp -a openwrt/bin/targets/bcm53xx/generic/*.manifest info/manifest.txt + cp -a openwrt/bin/targets/bcm53xx/generic/config.buildinfo info/config.buildinfo + cd rom && sha256sum * > ../info/sha256sums.txt + elif [ "${{ matrix.model }}" = "armv8" ]; then + tar zcf rom/u-boot-qemu_armv8.tar.gz -C openwrt/bin/targets/armsr/armv8*/ ./u-boot-qemu_armv8 + cp -a openwrt/bin/targets/armsr/armv8*/*-generic-initramfs-kernel.bin rom/ + cp -a openwrt/bin/targets/armsr/armv8*/*-generic-kernel.bin rom/ + cp -a openwrt/bin/targets/armsr/armv8*/*-generic-ext4-combined-efi.img.gz rom/ + cp -a openwrt/bin/targets/armsr/armv8*/*-generic-squashfs-combined-efi.img.gz rom/ + cp -a openwrt/bin/targets/armsr/armv8*/*-rootfs.tar.gz rom/ + cp -a openwrt/bin/targets/armsr/armv8*/*.manifest info/manifest.txt + cp -a openwrt/bin/targets/armsr/armv8*/config.buildinfo info/config.buildinfo + cd rom && sha256sum * > ../info/sha256sums.txt + fi + cd .. + tar zcf rom/buildinfo_${{ matrix.model }}.tar.gz info + + - name: Create release + uses: ncipollo/release-action@v1.14.0 + with: + name: OpenWrt-Test-${{ env.latest_release }} + allowUpdates: true + prerelease: true + tag: test-${{ env.latest_release }} + commit: main + replacesArtifacts: true + token: ${{ secrets.workflow_token }} + artifacts: ${{ env.WORKDIR }}/rom/* diff --git a/README.md b/README.md index cd82793..9294594 100644 --- a/README.md +++ b/README.md @@ -1,11 +1,11 @@

- +

OpenWrt for FriendlyElec NanoPi R4S / R5S & X86_64 & Netgear R8500

- +

@@ -56,6 +56,7 @@ | BBRv3 拥塞控制 | ✅ | LLVM-BPF 支持 | ✅ | | KVM 虚拟化加速 | ✅ | Shortcut-FE(支持 UDP 入站) | ✅ | | NGINX & CURL HTTP3/QUIC 支持 | ✅ | LRNG(v54) | ✅ | +| TCP Brutal 拥塞控制 | ✅ | | | | 内置插件 | 状态 | 内置插件 | 状态 | |:------------------------:|:----:|:----------------:|:----:| @@ -127,7 +128,6 @@

├── 服务  ├── PassWall
- ├── ShadowSocksR Plus+
 ├── HomeProxy
 ├── qBittorrent
 ├── MosDNS
@@ -301,26 +301,8 @@ bash -c "$(curl -sS https://r5s.cooluc.com/daed-install.sh)" ------ -## 概览 - ![](https://cdn.cooluc.com/r4s/1.webp) -![](https://cdn.cooluc.com/r4s/menu.webp) - -![](https://cdn.cooluc.com/r4s/23.05.02.webp) - -![](https://cdn.cooluc.com/r4s/nanopi-ota.webp) - -![](https://cdn.cooluc.com/r4s/firewall.webp) - -![](https://cdn.cooluc.com/r4s/4.webp) - -![](https://cdn.cooluc.com/r4s/5.webp) - -![](https://cdn.cooluc.com/r4s/udp2.webp) - -![](https://cdn.cooluc.com/r4s/daed.webp) - ------ ## 开源地址