diff --git a/.github/workflows/2025-23.05-TL.yml b/.github/workflows/2025-23.05-TL.yml new file mode 100644 index 0000000..dd02b68 --- /dev/null +++ b/.github/workflows/2025-23.05-TL.yml @@ -0,0 +1,219 @@ +# +# Copyright (c) 2019-2020 P3TERX +# +# This is free software, licensed under the MIT License. +# See /LICENSE for more information. +# +# https://github.com/P3TERX/Actions-OpenWrt +# Description: Build OpenWrt using GitHub Actions +# + +name: 2025-23.05-TL + +on: + repository_dispatch: + workflow_dispatch: + + #schedule: + #- cron: 0 16 * * 4 + +env: + REPO_URL: https://github.com/immortalwrt/immortalwrt + REPO_BRANCH: openwrt-23.05 + FEEDS_CONF: N1/immortalwrt-feeds.conf.default + CONFIG_FILE: N1/2024-0407.config + DIY_P1_SH: diy-part1.sh + DIY_P2_SH: diy-part2.sh + TZ: Asia/Shanghai + +jobs: + build: + runs-on: ubuntu-22.04 + + steps: + - name: 创建编译空间挂载点 + run: | + sudo mkdir -p /workdir + sudo chown $USER:$GROUPS /workdir + + - name: 最大化编译空间 + uses: easimon/maximize-build-space@master + with: + root-reserve-mb: 2048 + swap-size-mb: 1024 + build-mount-path: /workdir + overprovision-lvm: 'true' + remove-dotnet: 'true' + remove-android: 'true' + remove-haskell: 'true' + remove-codeql: 'true' + remove-docker-images: 'true' + + - name: 检查Actions + uses: actions/checkout@v4 + + - name: 检查服务器配置 + run: | + echo "警告⚠" + echo "分配的服务器性能有限,若选择的插件过多,务必注意CPU性能!" + echo "云编译建议取消勾选Node.js及其相关插件!" + echo "已知CPU型号(降序):8370C,8272CL,8171M,E5系列" + echo "--------------------------CPU信息--------------------------" + echo "CPU物理数量:$(cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l)" + echo -e "CPU核心及版本信息:$(cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c) \n" + echo "--------------------------内存信息--------------------------" + echo "已安装内存详细信息:" + sudo lshw -short -C memory | grep GiB + echo -e "\n" + echo "--------------------------硬盘信息--------------------------" + echo -e "硬盘数量:$(ls /dev/sd* | grep -v [1-9] | wc -l) \n" + echo "硬盘详情:" + df -Th + + - name: 初始化编译环境 + env: + DEBIAN_FRONTEND: noninteractive + run: | + sudo rm -rf /etc/apt/sources.list.d/* /usr/share/dotnet /usr/local/lib/android /opt/ghc + sudo -E apt-get -qq update -y + sudo -E apt-get -qq install -y ack antlr3 asciidoc autoconf automake autopoint binutils bison build-essential \ + bzip2 ccache cmake cpio curl device-tree-compiler fastjar flex gawk gettext gcc-multilib g++-multilib \ + git gperf haveged help2man intltool libc6-dev-i386 libelf-dev libglib2.0-dev libgmp3-dev libltdl-dev \ + libmpc-dev libmpfr-dev libncurses5-dev libncursesw5-dev libreadline-dev libssl-dev libtool lrzsz \ + genisoimage msmtp nano ninja-build npm p7zip p7zip-full patch pkgconf python2.7 python3 python3-pip qemu-utils \ + rsync scons squashfs-tools subversion swig texinfo uglifyjs upx-ucl unzip vim wget xmlto xxd zlib1g-dev libfuse-dev ack antlr3 asciidoc autoconf automake autopoint binutils bison build-essential \ + bzip2 ccache clang cmake cpio curl device-tree-compiler ecj fastjar flex gawk gettext gcc-multilib \ + g++-multilib git gnutls-dev gperf haveged help2man intltool lib32gcc-s1 libc6-dev-i386 libelf-dev \ + libglib2.0-dev libgmp3-dev libltdl-dev libmpc-dev libmpfr-dev libncurses-dev libpython3-dev \ + libreadline-dev libssl-dev libtool libyaml-dev libz-dev lld llvm lrzsz mkisofs msmtp nano \ + ninja-build p7zip p7zip-full patch pkgconf python3 python3-pip python3-ply python3-docutils \ + python3-pyelftools qemu-utils re2c rsync scons squashfs-tools subversion swig texinfo uglifyjs \ + upx-ucl unzip vim wget xmlto xxd zlib1g-dev + sudo -E apt-get -qq autoremove --purge + sudo -E apt-get -qq clean + sudo timedatectl set-timezone "$TZ" + echo "硬盘详情:" + df -Th + + + - name: 克隆源码 + working-directory: /workdir + run: | + df -hT $PWD + git clone $REPO_URL -b $REPO_BRANCH openwrt + ln -sf /workdir/openwrt $GITHUB_WORKSPACE/openwrt + cd openwrt + useVersionInfo=$(git show -s --date=short --format="date: %cd
commit: %s
commit hash: %H") + echo "useVersionInfo=$useVersionInfo" >> $GITHUB_ENV + echo "DATE=$(date "+%Y-%m-%d %H:%M:%S")" >> $GITHUB_ENV + echo "tag_name=$(date +%Y%m%d)" >> $GITHUB_ENV + + - name: 加载DIY_P1 + run: | + [ -e $FEEDS_CONF ] && mv $FEEDS_CONF openwrt/feeds.conf.default + chmod +x $DIY_P1_SH + cd openwrt + $GITHUB_WORKSPACE/$DIY_P1_SH + + - name: 更新feeds + run: cd openwrt && ./scripts/feeds update -a + + - name: 安装feeds + run: cd openwrt && ./scripts/feeds install -a + + - name: 加载DIY_P2 + run: | + [ -e files ] && mv files openwrt/files + [ -e $CONFIG_FILE ] && mv $CONFIG_FILE openwrt/.config + chmod +x $DIY_P2_SH + cd openwrt + $GITHUB_WORKSPACE/$DIY_P2_SH + + - name: 下载软件包 + id: package + run: | + cd openwrt + make defconfig + make download -j8 + find dl -size -1024c -exec ls -l {} \; + find dl -size -1024c -exec rm -f {} \; + echo "硬盘详情:" + df -Th + + - name: 编译固件 + id: compile + run: | + cd openwrt + echo -e "$(nproc) thread compile" + make -j$(nproc) || make -j1 || make -j1 V=s + echo "status=success" >> $GITHUB_OUTPUT + grep '^CONFIG_TARGET.*DEVICE.*=y' .config | sed -r 's/.*DEVICE_(.*)=y/\1/' > DEVICE_NAME + [ -s DEVICE_NAME ] && echo "DEVICE_NAME=_$(cat DEVICE_NAME)" >> $GITHUB_ENV + echo "FILE_DATE=_$(date +"%Y%m%d%H%M")" >> $GITHUB_ENV + + - name: 清理磁盘空间 + if: (!cancelled()) + run: | + echo "清理之前:" + df -hT + mkdir openwrt-armvirt + mkdir /workdir/upload + cp openwrt/bin/targets/*/*/*.tar.gz /workdir/upload/ + mv openwrt/bin/targets/*/*/*.tar.gz openwrt-armvirt/ + echo -e "\n" + echo "列出空间占用前10的目录或文件:" + sudo du -h --max-depth=1 /workdir |sort -nr | head -10 + rm -rf /workdir/openwrt/ + echo -e "\n" + echo "清理之后:" + df -hT + echo -e "\n" + echo "/workdir路径文件" + ls -l + echo -e "\n" + echo "列出空间占用前10的目录或文件:" + sudo du -h --max-depth=1 /workdir |sort -nr | head -10 + + - name: 打包内核 + uses: unifreq/openwrt_packit@master + env: + WHOAMI: ham + # OPENWRT_VER: R23.7.7 + OPENWRT_ARMVIRT: openwrt-armvirt/*.tar.gz + PACKAGE_SOC: s905d + KERNEL_AUTO_LATEST: true + # KERNEL_REPO_URL: https://github.com/ham0223/OpenWRT-N1/tree/main/opt + KERNEL_VERSION_NAME: 5.4._6.1. + GH_TOKEN: ${{ secrets.GH_TOKEN }} + + - name: 整理文件 + run: mv /opt/openwrt_packit/output/* /workdir/upload/ + + - name: 发布固件 + uses: ncipollo/release-action@v1 + with: + name: OpenWrt-N1 → ${{ env.DATE }} + tag: N1-TL_${{ env.tag_name }} + artifacts: /workdir/upload/* + allowUpdates: true + token: ${{ secrets.GITHUB_TOKEN }} + body: | + --- 使用说明 --- + 网关:192.168.123.2 + 用户名:root + 密码:password + kissyouhunter大佬的其它插件一键安装脚本: + bash <(curl -s -S -L nb0.cc/kiss) + + 更新说明: + 2025-0217: 测试天灵固件。 + + - name: 清理Actions空间 + uses: Mattraks/delete-workflow-runs@main + with: + token: ${{ secrets.GITHUB_TOKEN }} + repository: ${{ github.repository }} + keep_minimum_runs: 0 + retain_days: 15 + #retain_days: ${{ github.event.inputs.action_days }} +