├── .github └── workflows │ ├── LEDE-Build-Mi_AX3600.yml │ ├── LEDE-Build.yml │ ├── OpenWrt-Build-Mi_AX3600.yml │ ├── OpenWrt-Build-try.yml │ └── OpenWrt-Build.yml ├── README.MD ├── config.d ├── Mi_AX3600 ├── README.MD ├── Redmi_AC2100 └── x86_64 ├── files └── etc │ └── config │ └── demo └── script ├── DIY0.sh ├── DIY1.sh └── README.MD /.github/workflows/LEDE-Build-Mi_AX3600.yml: -------------------------------------------------------------------------------- 1 | # This is free software, lisence use MIT. 2 | # Copyright (C) https://github.com/yfdoor 3 | # 4 | # https://github.com/yfdoor/OpenWrt 5 | # Description: GitHub Actions for OpenWrt Build 6 | 7 | name: LEDE-Build-Mi_AX3600 8 | 9 | # 触发条件 10 | on: 11 | # push: 12 | # branches: 13 | # - master 14 | # paths: 15 | # - '.config' 16 | schedule: 17 | - cron: 0 0 1/7 * * 18 | #watch: 19 | # types: started 20 | 21 | # 环境定义 22 | env: 23 | ##################################################### 24 | ##### 1:编译官方源码 25 | ##### 2:编译第三方源码 26 | ##### 3:编译官方源码 & 第三方 Package 27 | ##################################################### 28 | REPO_URL: https://github.com/coolsnowwolf/lede.git 29 | REPO_BRANCH: master 30 | CONF_FILE: Mi_AX3600 31 | DIY0_FILE: DIY0.sh 32 | DIY1_FILE: DIY1.sh 33 | SSH_ACTION: false 34 | UPLOAD_BRANCH: false 35 | UPLOAD_BIN_DIR: true 36 | UPLOAD_FIRMWARE: false 37 | UPLOAD_COWTRANSFER: false 38 | UPLOAD_WETRANSFER: true 39 | UPLOAD_RELEASE: true 40 | TZ: Asia/Shanghai 41 | ##################################################### 42 | 43 | jobs: 44 | build: 45 | runs-on: ubuntu-20.04 46 | if: github.event.repository.owner.id == github.event.sender.id || ! github.event.sender.id 47 | 48 | steps: 49 | # 项目初始 50 | - name: Code Checkout 51 | uses: actions/checkout@main 52 | 53 | # 初始环境 54 | - name: Initialize Environment 55 | env: 56 | DEBIAN_FRONTEND: noninteractive 57 | run: | 58 | sudo rm -rf /etc/apt/sources.list.d/* /usr/share/dotnet /usr/local/lib/android /opt/ghc 59 | sudo -E apt-get update 60 | sudo -E apt-get -y install $(curl -fsSL git.io/depends-ubuntu-2004) 61 | sudo -E apt-get -y autoremove --purge 62 | sudo -E apt-get clean 63 | sudo timedatectl set-timezone "$TZ" 64 | 65 | echo "========================================" 66 | echo "[Space Usage]:" 67 | echo "========================================" 68 | df -hT 69 | echo "========================================" 70 | echo "[File List]:" 71 | echo "========================================" 72 | echo "Current Path:" $PWD 73 | ls -l -A 74 | echo "========================================" 75 | 76 | # 下载源码 77 | - name: Clone Code 78 | run: | 79 | git clone --depth 1 $REPO_URL -b $REPO_BRANCH openwrt 80 | 81 | # 自定插件 82 | - name: Download My Package 83 | run: | 84 | chmod +x script/$DIY0_FILE 85 | cd openwrt 86 | ../script/$DIY0_FILE 87 | 88 | # 更新Feed 89 | - name: Update Feeds 90 | run: | 91 | cd openwrt 92 | ./scripts/feeds update -a 93 | ./scripts/feeds install -a 94 | 95 | # 配置文件 96 | - name: Config File 97 | run: | 98 | chmod +x script/$DIY1_FILE 99 | [ -e files ] && cp -r -f files openwrt/files 100 | [ -e config.d/$CONF_FILE ] && cp -r -f config.d/$CONF_FILE openwrt/.config 101 | cd openwrt 102 | ../script/$DIY1_FILE 103 | 104 | # SSH连接 105 | - name: SSH Connection 106 | uses: P3TERX/ssh2actions@v1.0.0 107 | if: env.SSH_ACTION == 'true' 108 | env: 109 | TELEGRAM_CHAT_ID: ${{ secrets.TELEGRAM_CHAT_ID }} 110 | TELEGRAM_BOT_TOKEN: ${{ secrets.TELEGRAM_BOT_TOKEN }} 111 | 112 | # 下载依赖 113 | - name: Make Download 114 | run: | 115 | cd openwrt 116 | make defconfig 117 | make download -j8 118 | find dl/ -size -1024c -exec rm -f {} \; 119 | 120 | # 编译固件 121 | - name: Compile Firmware 122 | id: compile 123 | run: | 124 | cd openwrt 125 | echo -e "$(nproc) thread compile" 126 | make -j$(nproc) || make -j1 || make -j1 V=s 127 | 128 | echo "========================================" 129 | echo "[Space Usage]:" 130 | echo "========================================" 131 | df -hT 132 | echo "========================================" 133 | echo "[File List]:" 134 | echo "========================================" 135 | echo "Current Path:" $PWD 136 | ls -l -A 137 | echo "========================================" 138 | 139 | grep '^CONFIG_TARGET.*DEVICE.*=y' .config | sed -r 's/.*DEVICE_(.*)=y/\1/' > DEVICE_NAME 140 | [ -s DEVICE_NAME ] && echo "DEVICE_NAME=$(cat DEVICE_NAME)" >> $GITHUB_ENV 141 | echo "RELEASE_DATE=$(date +"%Y.%m.%d-%H%M")" >> $GITHUB_ENV 142 | echo "status=success" >> $GITHUB_OUTPUT 143 | 144 | # 更新分支 145 | - name: Upload Branch 146 | if: env.UPLOAD_BRANCH == 'true' && steps.compile.outputs.status == 'success' 147 | env: 148 | GITHUB_TOKEN: ${{ secrets.REPO_TOKEN }} 149 | run: | 150 | cd openwrt/bin 151 | git init 152 | git config user.name "yfdoor" 153 | git config user.email "yfdoor@github.com" 154 | git add . 155 | git commit -m "Update OpenWrt_"$CONF_FILE 156 | git push --force --quiet https://$GITHUB_TOKEN@github.com/yfdoor/OpenWrt.git HEAD:LEDE_$CONF_FILE 157 | rm -rf .git 158 | 159 | # 上传 Bin 160 | - name: Upload Bin Directory 161 | uses: actions/upload-artifact@main 162 | if: env.UPLOAD_BIN_DIR == 'true' && steps.compile.outputs.status == 'success' 163 | with: 164 | name: OpenWrt_Bin_${{ env.DEVICE_NAME }}_${{ env.RELEASE_DATE }} 165 | path: openwrt/bin 166 | 167 | # 准备固件 168 | - name: Organize Firmware 169 | id: organize 170 | if: steps.compile.outputs.status == 'success' && !cancelled() 171 | run: | 172 | cd openwrt/bin/targets/*/* 173 | rm -rf packages 174 | 175 | echo "========================================" 176 | echo "[Space Usage]:" 177 | echo "========================================" 178 | df -hT 179 | echo "========================================" 180 | echo "[File List]:" 181 | echo "========================================" 182 | echo "Current Path:" $PWD 183 | ls -l -A 184 | echo "========================================" 185 | 186 | echo "FIRMWARE=$PWD" >> $GITHUB_ENV 187 | echo "status=success" >> $GITHUB_OUTPUT 188 | 189 | # 上传固件 190 | - name: Upload Firmware 191 | uses: actions/upload-artifact@main 192 | if: steps.organize.outputs.status == 'success' && env.UPLOAD_FIRMWARE == 'true' && !cancelled() 193 | with: 194 | name: OpenWrt_Firmware_${{ env.DEVICE_NAME }}_${{ env.RELEASE_DATE }} 195 | path: ${{ env.FIRMWARE }} 196 | 197 | # 上传CowTransfer 198 | - name: Upload to Cowtransfer 199 | id: cowtransfer 200 | if: steps.organize.outputs.status == 'success' && env.UPLOAD_COWTRANSFER == 'true' && !cancelled() 201 | run: | 202 | curl -fsSL git.io/file-transfer | sh 203 | ./transfer cow --block 2621440 -s -p 64 --no-progress ${FIRMWARE} 2>&1 | tee cowtransfer.log 204 | echo "::warning file=cowtransfer.com::$(cat cowtransfer.log | grep https)" 205 | echo "url=$(cat cowtransfer.log | grep https | cut -f3 -d" ")" >> $GITHUB_OUTPUT 206 | 207 | # 上传WeTransfer 208 | - name: Upload to WeTransfer 209 | id: wetransfer 210 | if: steps.organize.outputs.status == 'success' && env.UPLOAD_WETRANSFER == 'true' && !cancelled() 211 | run: | 212 | curl -fsSL git.io/file-transfer | sh 213 | ./transfer wet -s -p 16 --no-progress ${FIRMWARE} 2>&1 | tee wetransfer.log 214 | echo "::warning file=wetransfer.com::$(cat wetransfer.log | grep https)" 215 | echo "url=$(cat wetransfer.log | grep https | cut -f3 -d" ")" >> $GITHUB_OUTPUT 216 | 217 | # 生成发行 218 | - name: Generate Release 219 | id: tag 220 | if: env.UPLOAD_RELEASE == 'true' && steps.compile.outputs.status == 'success' && !cancelled() 221 | run: | 222 | touch release.txt 223 | cat >> release.txt << EOF 224 | 1、源码:${{ env.REPO_URL }} 225 | 2、分支:${{ env.REPO_BRANCH }} 226 | 3、设备:${{ env.DEVICE_NAME }} 227 | -- Build by YFDOOR with Github Actions on ${{ env.RELEASE_DATE }} for ${{ env.DEVICE_NAME }} device 228 | 229 | 外链下载: 230 | EOF 231 | [ $UPLOAD_COWTRANSFER = true ] && echo "🔗 [Cowtransfer Download (24hrs)](${{ steps.cowtransfer.outputs.url }})" >> release.txt 232 | [ $UPLOAD_WETRANSFER = true ] && echo "🔗 [WeTransfer Download (7days)](${{ steps.wetransfer.outputs.url }})" >> release.txt 233 | 234 | echo "status=success" >> $GITHUB_OUTPUT 235 | 236 | # 上传发行 237 | - name: Upload Release 238 | uses: softprops/action-gh-release@v1 239 | if: env.UPLOAD_RELEASE == 'true' && steps.compile.outputs.status == 'success' && !cancelled() 240 | env: 241 | GITHUB_TOKEN: ${{ secrets.REPO_TOKEN }} 242 | with: 243 | tag_name: ${{ env.RELEASE_DATE }} 244 | body_path: release.txt 245 | files: ${{ env.FIRMWARE }}/* 246 | 247 | # 清理发行 248 | - name: Remove Old Release 249 | uses: dev-drprasad/delete-older-releases@v0.2.1 250 | if: env.UPLOAD_RELEASE == 'true' && !cancelled() 251 | env: 252 | GITHUB_TOKEN: ${{ secrets.REPO_TOKEN }} 253 | with: 254 | keep_latest: 10 255 | delete_tags: true 256 | -------------------------------------------------------------------------------- /.github/workflows/LEDE-Build.yml: -------------------------------------------------------------------------------- 1 | # This is free software, lisence use MIT. 2 | # Copyright (C) https://github.com/yfdoor 3 | # 4 | # https://github.com/yfdoor/OpenWrt 5 | # Description: GitHub Actions for OpenWrt Build 6 | 7 | name: LEDE-Build 8 | 9 | # 触发条件 10 | on: 11 | # push: 12 | # branches: 13 | # - master 14 | # paths: 15 | # - '.config' 16 | schedule: 17 | - cron: 0 0 2/7 * * 18 | #watch: 19 | # types: started 20 | 21 | # 环境定义 22 | env: 23 | ##################################################### 24 | ##### 1:编译官方源码 25 | ##### 2:编译第三方源码 26 | ##### 3:编译官方源码 & 第三方 Package 27 | ##################################################### 28 | REPO_URL: https://github.com/coolsnowwolf/lede.git 29 | REPO_BRANCH: master 30 | CONF_FILE: x86_64 31 | DIY0_FILE: DIY0.sh 32 | DIY1_FILE: DIY1.sh 33 | SSH_ACTION: false 34 | UPLOAD_BRANCH: false 35 | UPLOAD_BIN_DIR: true 36 | UPLOAD_FIRMWARE: false 37 | UPLOAD_COWTRANSFER: false 38 | UPLOAD_WETRANSFER: true 39 | UPLOAD_RELEASE: true 40 | TZ: Asia/Shanghai 41 | ##################################################### 42 | 43 | jobs: 44 | build: 45 | runs-on: ubuntu-20.04 46 | if: github.event.repository.owner.id == github.event.sender.id || ! github.event.sender.id 47 | 48 | steps: 49 | # 项目初始 50 | - name: Code Checkout 51 | uses: actions/checkout@main 52 | 53 | # 初始环境 54 | - name: Initialize Environment 55 | env: 56 | DEBIAN_FRONTEND: noninteractive 57 | run: | 58 | sudo rm -rf /etc/apt/sources.list.d/* /usr/share/dotnet /usr/local/lib/android /opt/ghc 59 | sudo -E apt-get update 60 | sudo -E apt-get -y install $(curl -fsSL git.io/depends-ubuntu-2004) 61 | sudo -E apt-get -y autoremove --purge 62 | sudo -E apt-get clean 63 | sudo timedatectl set-timezone "$TZ" 64 | 65 | echo "========================================" 66 | echo "[Space Usage]:" 67 | echo "========================================" 68 | df -hT 69 | echo "========================================" 70 | echo "[File List]:" 71 | echo "========================================" 72 | echo "Current Path:" $PWD 73 | ls -l -A 74 | echo "========================================" 75 | 76 | # 下载源码 77 | - name: Clone Code 78 | run: | 79 | git clone --depth 1 $REPO_URL -b $REPO_BRANCH openwrt 80 | 81 | # 自定插件 82 | - name: Download My Package 83 | run: | 84 | chmod +x script/$DIY0_FILE 85 | cd openwrt 86 | ../script/$DIY0_FILE 87 | 88 | # 更新Feed 89 | - name: Update Feeds 90 | run: | 91 | cd openwrt 92 | ./scripts/feeds update -a 93 | ./scripts/feeds install -a 94 | 95 | # 配置文件 96 | - name: Config File 97 | run: | 98 | chmod +x script/$DIY1_FILE 99 | [ -e files ] && cp -r -f files openwrt/files 100 | [ -e config.d/$CONF_FILE ] && cp -r -f config.d/$CONF_FILE openwrt/.config 101 | cd openwrt 102 | ../script/$DIY1_FILE 103 | 104 | # SSH连接 105 | - name: SSH Connection 106 | uses: P3TERX/ssh2actions@v1.0.0 107 | if: env.SSH_ACTION == 'true' 108 | env: 109 | TELEGRAM_CHAT_ID: ${{ secrets.TELEGRAM_CHAT_ID }} 110 | TELEGRAM_BOT_TOKEN: ${{ secrets.TELEGRAM_BOT_TOKEN }} 111 | 112 | # 下载依赖 113 | - name: Make Download 114 | run: | 115 | cd openwrt 116 | make defconfig 117 | make download -j8 118 | find dl/ -size -1024c -exec rm -f {} \; 119 | 120 | # 编译固件 121 | - name: Compile Firmware 122 | id: compile 123 | run: | 124 | cd openwrt 125 | echo -e "$(nproc) thread compile" 126 | make -j$(nproc) || make -j1 || make -j1 V=s 127 | 128 | echo "========================================" 129 | echo "[Space Usage]:" 130 | echo "========================================" 131 | df -hT 132 | echo "========================================" 133 | echo "[File List]:" 134 | echo "========================================" 135 | echo "Current Path:" $PWD 136 | ls -l -A 137 | echo "========================================" 138 | 139 | grep '^CONFIG_TARGET.*DEVICE.*=y' .config | sed -r 's/.*DEVICE_(.*)=y/\1/' > DEVICE_NAME 140 | [ -s DEVICE_NAME ] && echo "DEVICE_NAME=$(cat DEVICE_NAME)" >> $GITHUB_ENV 141 | echo "RELEASE_DATE=$(date +"%Y.%m.%d-%H%M")" >> $GITHUB_ENV 142 | echo "status=success" >> $GITHUB_OUTPUT 143 | 144 | # 更新分支 145 | - name: Upload Branch 146 | if: env.UPLOAD_BRANCH == 'true' && steps.compile.outputs.status == 'success' 147 | env: 148 | GITHUB_TOKEN: ${{ secrets.REPO_TOKEN }} 149 | run: | 150 | cd openwrt/bin 151 | git init 152 | git config user.name "yfdoor" 153 | git config user.email "yfdoor@github.com" 154 | git add . 155 | git commit -m "Update OpenWrt_"$CONF_FILE 156 | git push --force --quiet https://$GITHUB_TOKEN@github.com/yfdoor/OpenWrt.git HEAD:LEDE_$CONF_FILE 157 | rm -rf .git 158 | 159 | # 上传 Bin 160 | - name: Upload Bin Directory 161 | uses: actions/upload-artifact@main 162 | if: env.UPLOAD_BIN_DIR == 'true' && steps.compile.outputs.status == 'success' 163 | with: 164 | name: OpenWrt_Bin_${{ env.DEVICE_NAME }}_${{ env.RELEASE_DATE }} 165 | path: openwrt/bin 166 | 167 | # 准备固件 168 | - name: Organize Firmware 169 | id: organize 170 | if: steps.compile.outputs.status == 'success' && !cancelled() 171 | run: | 172 | cd openwrt/bin/targets/*/* 173 | rm -rf packages 174 | 175 | echo "========================================" 176 | echo "[Space Usage]:" 177 | echo "========================================" 178 | df -hT 179 | echo "========================================" 180 | echo "[File List]:" 181 | echo "========================================" 182 | echo "Current Path:" $PWD 183 | ls -l -A 184 | echo "========================================" 185 | 186 | echo "FIRMWARE=$PWD" >> $GITHUB_ENV 187 | echo "status=success" >> $GITHUB_OUTPUT 188 | 189 | # 上传固件 190 | - name: Upload Firmware 191 | uses: actions/upload-artifact@main 192 | if: steps.organize.outputs.status == 'success' && env.UPLOAD_FIRMWARE == 'true' && !cancelled() 193 | with: 194 | name: OpenWrt_Firmware_${{ env.DEVICE_NAME }}_${{ env.RELEASE_DATE }} 195 | path: ${{ env.FIRMWARE }} 196 | 197 | # 上传CowTransfer 198 | - name: Upload to Cowtransfer 199 | id: cowtransfer 200 | if: steps.organize.outputs.status == 'success' && env.UPLOAD_COWTRANSFER == 'true' && !cancelled() 201 | run: | 202 | curl -fsSL git.io/file-transfer | sh 203 | ./transfer cow --block 2621440 -s -p 64 --no-progress ${FIRMWARE} 2>&1 | tee cowtransfer.log 204 | echo "::warning file=cowtransfer.com::$(cat cowtransfer.log | grep https)" 205 | echo "url=$(cat cowtransfer.log | grep https | cut -f3 -d" ")" >> $GITHUB_OUTPUT 206 | 207 | # 上传WeTransfer 208 | - name: Upload to WeTransfer 209 | id: wetransfer 210 | if: steps.organize.outputs.status == 'success' && env.UPLOAD_WETRANSFER == 'true' && !cancelled() 211 | run: | 212 | curl -fsSL git.io/file-transfer | sh 213 | ./transfer wet -s -p 16 --no-progress ${FIRMWARE} 2>&1 | tee wetransfer.log 214 | echo "::warning file=wetransfer.com::$(cat wetransfer.log | grep https)" 215 | echo "url=$(cat wetransfer.log | grep https | cut -f3 -d" ")" >> $GITHUB_OUTPUT 216 | 217 | # 生成发行 218 | - name: Generate Release 219 | id: tag 220 | if: env.UPLOAD_RELEASE == 'true' && steps.compile.outputs.status == 'success' && !cancelled() 221 | run: | 222 | touch release.txt 223 | cat >> release.txt << EOF 224 | 1、源码:${{ env.REPO_URL }} 225 | 2、分支:${{ env.REPO_BRANCH }} 226 | 3、设备:${{ env.DEVICE_NAME }} 227 | -- Build by YFDOOR with Github Actions on ${{ env.RELEASE_DATE }} for ${{ env.DEVICE_NAME }} device 228 | 229 | 外链下载: 230 | EOF 231 | [ $UPLOAD_COWTRANSFER = true ] && echo "🔗 [Cowtransfer Download (24hrs)](${{ steps.cowtransfer.outputs.url }})" >> release.txt 232 | [ $UPLOAD_WETRANSFER = true ] && echo "🔗 [WeTransfer Download (7days)](${{ steps.wetransfer.outputs.url }})" >> release.txt 233 | 234 | echo "status=success" >> $GITHUB_OUTPUT 235 | 236 | # 上传发行 237 | - name: Upload Release 238 | uses: softprops/action-gh-release@v1 239 | if: env.UPLOAD_RELEASE == 'true' && steps.compile.outputs.status == 'success' && !cancelled() 240 | env: 241 | GITHUB_TOKEN: ${{ secrets.REPO_TOKEN }} 242 | with: 243 | tag_name: ${{ env.RELEASE_DATE }} 244 | body_path: release.txt 245 | files: ${{ env.FIRMWARE }}/* 246 | 247 | # 清理发行 248 | - name: Remove Old Release 249 | uses: dev-drprasad/delete-older-releases@v0.2.1 250 | if: env.UPLOAD_RELEASE == 'true' && !cancelled() 251 | env: 252 | GITHUB_TOKEN: ${{ secrets.REPO_TOKEN }} 253 | with: 254 | keep_latest: 10 255 | delete_tags: true 256 | -------------------------------------------------------------------------------- /.github/workflows/OpenWrt-Build-Mi_AX3600.yml: -------------------------------------------------------------------------------- 1 | # This is free software, lisence use MIT. 2 | # Copyright (C) https://github.com/yfdoor 3 | # 4 | # https://github.com/yfdoor/OpenWrt 5 | # Description: GitHub Actions for OpenWrt Build 6 | 7 | name: OpenWrt-Build-Mi_AX3600 8 | 9 | # 触发条件 10 | on: 11 | # push: 12 | # branches: 13 | # - master 14 | # paths: 15 | # - '.config' 16 | schedule: 17 | - cron: 0 0 3/7 * * 18 | #watch: 19 | # types: started 20 | 21 | # 环境定义 22 | env: 23 | ##################################################### 24 | ##### 1:编译官方源码 25 | ##### 2:编译第三方源码 26 | ##### 3:编译官方源码 & 第三方 Package 27 | ##################################################### 28 | REPO_URL: https://github.com/openwrt/openwrt.git 29 | REPO_BRANCH: v23.05.2 30 | CONF_FILE: Mi_AX3600 31 | DIY0_FILE: DIY0.sh 32 | DIY1_FILE: DIY1.sh 33 | SSH_ACTION: false 34 | UPLOAD_BRANCH: false 35 | UPLOAD_BIN_DIR: true 36 | UPLOAD_FIRMWARE: false 37 | UPLOAD_COWTRANSFER: false 38 | UPLOAD_WETRANSFER: true 39 | UPLOAD_RELEASE: true 40 | TZ: Asia/Shanghai 41 | ##################################################### 42 | 43 | jobs: 44 | build: 45 | runs-on: ubuntu-20.04 46 | if: github.event.repository.owner.id == github.event.sender.id || ! github.event.sender.id 47 | 48 | steps: 49 | # 项目初始 50 | - name: Code Checkout 51 | uses: actions/checkout@main 52 | 53 | # 初始环境 54 | - name: Initialize Environment 55 | env: 56 | DEBIAN_FRONTEND: noninteractive 57 | run: | 58 | sudo rm -rf /etc/apt/sources.list.d/* /usr/share/dotnet /usr/local/lib/android /opt/ghc 59 | sudo -E apt-get update 60 | sudo -E apt-get -y install $(curl -fsSL git.io/depends-ubuntu-2004) 61 | sudo -E apt-get -y autoremove --purge 62 | sudo -E apt-get clean 63 | sudo timedatectl set-timezone "$TZ" 64 | 65 | echo "========================================" 66 | echo "[Space Usage]:" 67 | echo "========================================" 68 | df -hT 69 | echo "========================================" 70 | echo "[File List]:" 71 | echo "========================================" 72 | echo "Current Path:" $PWD 73 | ls -l -A 74 | echo "========================================" 75 | 76 | # 下载源码 77 | - name: Clone Code 78 | run: | 79 | git clone --depth 1 $REPO_URL -b $REPO_BRANCH openwrt 80 | 81 | # 自定插件 82 | - name: Download My Package 83 | run: | 84 | chmod +x script/$DIY0_FILE 85 | cd openwrt 86 | ../script/$DIY0_FILE 87 | 88 | # 更新Feed 89 | - name: Update Feeds 90 | run: | 91 | cd openwrt 92 | ./scripts/feeds update -a 93 | ./scripts/feeds install -a 94 | 95 | # 配置文件 96 | - name: Config File 97 | run: | 98 | chmod +x script/$DIY1_FILE 99 | [ -e files ] && cp -r -f files openwrt/files 100 | [ -e config.d/$CONF_FILE ] && cp -r -f config.d/$CONF_FILE openwrt/.config 101 | cd openwrt 102 | ../script/$DIY1_FILE 103 | 104 | # SSH连接 105 | - name: SSH Connection 106 | uses: P3TERX/ssh2actions@v1.0.0 107 | if: env.SSH_ACTION == 'true' 108 | env: 109 | TELEGRAM_CHAT_ID: ${{ secrets.TELEGRAM_CHAT_ID }} 110 | TELEGRAM_BOT_TOKEN: ${{ secrets.TELEGRAM_BOT_TOKEN }} 111 | 112 | # 下载依赖 113 | - name: Make Download 114 | run: | 115 | cd openwrt 116 | make defconfig 117 | make download -j8 118 | find dl/ -size -1024c -exec rm -f {} \; 119 | 120 | # 编译固件 121 | - name: Compile Firmware 122 | id: compile 123 | run: | 124 | cd openwrt 125 | echo -e "$(nproc) thread compile" 126 | make -j$(nproc) || make -j1 || make -j1 V=s 127 | 128 | echo "========================================" 129 | echo "[Space Usage]:" 130 | echo "========================================" 131 | df -hT 132 | echo "========================================" 133 | echo "[File List]:" 134 | echo "========================================" 135 | echo "Current Path:" $PWD 136 | ls -l -A 137 | echo "========================================" 138 | 139 | grep '^CONFIG_TARGET.*DEVICE.*=y' .config | sed -r 's/.*DEVICE_(.*)=y/\1/' > DEVICE_NAME 140 | [ -s DEVICE_NAME ] && echo "DEVICE_NAME=$(cat DEVICE_NAME)" >> $GITHUB_ENV 141 | echo "RELEASE_DATE=$(date +"%Y.%m.%d-%H%M")" >> $GITHUB_ENV 142 | echo "status=success" >> $GITHUB_OUTPUT 143 | 144 | # 更新分支 145 | - name: Upload Branch 146 | if: env.UPLOAD_BRANCH == 'true' && steps.compile.outputs.status == 'success' 147 | env: 148 | GITHUB_TOKEN: ${{ secrets.REPO_TOKEN }} 149 | run: | 150 | cd openwrt/bin 151 | git init 152 | git config user.name "yfdoor" 153 | git config user.email "yfdoor@github.com" 154 | git add . 155 | git commit -m "Update OpenWrt_"$CONF_FILE 156 | git push --force --quiet https://$GITHUB_TOKEN@github.com/yfdoor/OpenWrt.git HEAD:OpenWrt_$CONF_FILE 157 | rm -rf .git 158 | 159 | # 上传 Bin 160 | - name: Upload Bin Directory 161 | uses: actions/upload-artifact@main 162 | if: env.UPLOAD_BIN_DIR == 'true' && steps.compile.outputs.status == 'success' 163 | with: 164 | name: OpenWrt_Bin_${{ env.DEVICE_NAME }}_${{ env.RELEASE_DATE }} 165 | path: openwrt/bin 166 | 167 | # 准备固件 168 | - name: Organize Firmware 169 | id: organize 170 | if: steps.compile.outputs.status == 'success' && !cancelled() 171 | run: | 172 | cd openwrt/bin/targets/*/* 173 | rm -rf packages 174 | 175 | echo "========================================" 176 | echo "[Space Usage]:" 177 | echo "========================================" 178 | df -hT 179 | echo "========================================" 180 | echo "[File List]:" 181 | echo "========================================" 182 | echo "Current Path:" $PWD 183 | ls -l -A 184 | echo "========================================" 185 | 186 | echo "FIRMWARE=$PWD" >> $GITHUB_ENV 187 | echo "status=success" >> $GITHUB_OUTPUT 188 | 189 | # 上传固件 190 | - name: Upload Firmware 191 | uses: actions/upload-artifact@main 192 | if: steps.organize.outputs.status == 'success' && env.UPLOAD_FIRMWARE == 'true' && !cancelled() 193 | with: 194 | name: OpenWrt_Firmware_${{ env.DEVICE_NAME }}_${{ env.RELEASE_DATE }} 195 | path: ${{ env.FIRMWARE }} 196 | 197 | # 上传CowTransfer 198 | - name: Upload to Cowtransfer 199 | id: cowtransfer 200 | if: steps.organize.outputs.status == 'success' && env.UPLOAD_COWTRANSFER == 'true' && !cancelled() 201 | run: | 202 | curl -fsSL git.io/file-transfer | sh 203 | ./transfer cow --block 2621440 -s -p 64 --no-progress ${FIRMWARE} 2>&1 | tee cowtransfer.log 204 | echo "::warning file=cowtransfer.com::$(cat cowtransfer.log | grep https)" 205 | echo "url=$(cat cowtransfer.log | grep https | cut -f3 -d" ")" >> $GITHUB_OUTPUT 206 | 207 | # 上传WeTransfer 208 | - name: Upload to WeTransfer 209 | id: wetransfer 210 | if: steps.organize.outputs.status == 'success' && env.UPLOAD_WETRANSFER == 'true' && !cancelled() 211 | run: | 212 | curl -fsSL git.io/file-transfer | sh 213 | ./transfer wet -s -p 16 --no-progress ${FIRMWARE} 2>&1 | tee wetransfer.log 214 | echo "::warning file=wetransfer.com::$(cat wetransfer.log | grep https)" 215 | echo "url=$(cat wetransfer.log | grep https | cut -f3 -d" ")" >> $GITHUB_OUTPUT 216 | 217 | # 生成发行 218 | - name: Generate Release 219 | id: tag 220 | if: env.UPLOAD_RELEASE == 'true' && steps.compile.outputs.status == 'success' && !cancelled() 221 | run: | 222 | touch release.txt 223 | cat >> release.txt << EOF 224 | 1、源码:${{ env.REPO_URL }} 225 | 2、分支:${{ env.REPO_BRANCH }} 226 | 3、设备:${{ env.DEVICE_NAME }} 227 | -- Build by YFDOOR with Github Actions on ${{ env.RELEASE_DATE }} for ${{ env.DEVICE_NAME }} device 228 | 229 | 外链下载: 230 | EOF 231 | [ $UPLOAD_COWTRANSFER = true ] && echo "🔗 [Cowtransfer Download (24hrs)](${{ steps.cowtransfer.outputs.url }})" >> release.txt 232 | [ $UPLOAD_WETRANSFER = true ] && echo "🔗 [WeTransfer Download (7days)](${{ steps.wetransfer.outputs.url }})" >> release.txt 233 | 234 | echo "status=success" >> $GITHUB_OUTPUT 235 | 236 | # 上传发行 237 | - name: Upload Release 238 | uses: softprops/action-gh-release@v1 239 | if: env.UPLOAD_RELEASE == 'true' && steps.compile.outputs.status == 'success' && !cancelled() 240 | env: 241 | GITHUB_TOKEN: ${{ secrets.REPO_TOKEN }} 242 | with: 243 | tag_name: ${{ env.RELEASE_DATE }} 244 | body_path: release.txt 245 | files: ${{ env.FIRMWARE }}/* 246 | 247 | # 清理发行 248 | - name: Remove Old Release 249 | uses: dev-drprasad/delete-older-releases@v0.2.1 250 | if: env.UPLOAD_RELEASE == 'true' && !cancelled() 251 | env: 252 | GITHUB_TOKEN: ${{ secrets.REPO_TOKEN }} 253 | with: 254 | keep_latest: 10 255 | delete_tags: true 256 | -------------------------------------------------------------------------------- /.github/workflows/OpenWrt-Build-try.yml: -------------------------------------------------------------------------------- 1 | # This is free software, lisence use MIT. 2 | # Copyright (C) https://github.com/yfdoor 3 | # 4 | # https://github.com/yfdoor/OpenWrt 5 | # Description: GitHub Actions for OpenWrt Build 6 | 7 | name: OpenWrt-Build-try 8 | 9 | # 触发条件 10 | on: 11 | # push: 12 | # branches: 13 | # - master 14 | # paths: 15 | # - '.config' 16 | #schedule: 17 | # - cron: 0 0 9/10 * * 18 | watch: 19 | types: started 20 | 21 | # 环境定义 22 | env: 23 | ##################################################### 24 | ##### 1:编译官方源码 25 | ##### 2:编译第三方源码 26 | ##### 3:编译官方源码 & 第三方 Package 27 | ##################################################### 28 | REPO_URL: https://github.com/openwrt/openwrt.git 29 | REPO_BRANCH: v23.05.2 30 | CONF_FILE: Mi_AX3600 31 | DIY0_FILE: DIY0.sh 32 | DIY1_FILE: DIY1.sh 33 | SSH_ACTION: false 34 | UPLOAD_BRANCH: false 35 | UPLOAD_BIN_DIR: false 36 | UPLOAD_FIRMWARE: false 37 | UPLOAD_COWTRANSFER: false 38 | UPLOAD_WETRANSFER: true 39 | UPLOAD_RELEASE: false 40 | TZ: Asia/Shanghai 41 | ##################################################### 42 | 43 | jobs: 44 | build: 45 | runs-on: ubuntu-20.04 46 | if: github.event.repository.owner.id == github.event.sender.id || ! github.event.sender.id 47 | 48 | steps: 49 | # 项目初始 50 | - name: Code Checkout 51 | uses: actions/checkout@main 52 | 53 | # 初始环境 54 | - name: Initialize Environment 55 | env: 56 | DEBIAN_FRONTEND: noninteractive 57 | run: | 58 | sudo rm -rf /etc/apt/sources.list.d/* /usr/share/dotnet /usr/local/lib/android /opt/ghc 59 | sudo -E apt-get update 60 | sudo -E apt-get -y install $(curl -fsSL git.io/depends-ubuntu-2004) 61 | sudo -E apt-get -y autoremove --purge 62 | sudo -E apt-get clean 63 | sudo timedatectl set-timezone "$TZ" 64 | 65 | echo "========================================" 66 | echo "[Space Usage]:" 67 | echo "========================================" 68 | df -hT 69 | echo "========================================" 70 | echo "[File List]:" 71 | echo "========================================" 72 | echo "Current Path:" $PWD 73 | ls -l -A 74 | echo "========================================" 75 | 76 | # 下载源码 77 | - name: Clone Code 78 | run: | 79 | git clone --depth 1 $REPO_URL -b $REPO_BRANCH openwrt 80 | 81 | # 自定插件 82 | - name: Download My Package 83 | run: | 84 | chmod +x script/$DIY0_FILE 85 | cd openwrt 86 | ../script/$DIY0_FILE 87 | 88 | # 更新Feed 89 | - name: Update Feeds 90 | run: | 91 | cd openwrt 92 | ./scripts/feeds update -a 93 | ./scripts/feeds install -a 94 | 95 | # 配置文件 96 | - name: Config File 97 | run: | 98 | chmod +x script/$DIY1_FILE 99 | [ -e files ] && cp -r -f files openwrt/files 100 | [ -e config.d/$CONF_FILE ] && cp -r -f config.d/$CONF_FILE openwrt/.config 101 | cd openwrt 102 | ../script/$DIY1_FILE 103 | 104 | # SSH连接 105 | - name: SSH Connection 106 | uses: P3TERX/ssh2actions@v1.0.0 107 | if: env.SSH_ACTION == 'true' 108 | env: 109 | TELEGRAM_CHAT_ID: ${{ secrets.TELEGRAM_CHAT_ID }} 110 | TELEGRAM_BOT_TOKEN: ${{ secrets.TELEGRAM_BOT_TOKEN }} 111 | 112 | # 下载依赖 113 | - name: Make Download 114 | run: | 115 | cd openwrt 116 | make defconfig 117 | make download -j8 118 | find dl/ -size -1024c -exec rm -f {} \; 119 | 120 | # 编译固件 121 | - name: Compile Firmware 122 | id: compile 123 | run: | 124 | cd openwrt 125 | echo -e "$(nproc) thread compile" 126 | make -j$(nproc) || make -j1 || make -j1 V=s 127 | 128 | echo "========================================" 129 | echo "[Space Usage]:" 130 | echo "========================================" 131 | df -hT 132 | echo "========================================" 133 | echo "[File List]:" 134 | echo "========================================" 135 | echo "Current Path:" $PWD 136 | ls -l -A 137 | echo "========================================" 138 | 139 | grep '^CONFIG_TARGET.*DEVICE.*=y' .config | sed -r 's/.*DEVICE_(.*)=y/\1/' > DEVICE_NAME 140 | [ -s DEVICE_NAME ] && echo "DEVICE_NAME=$(cat DEVICE_NAME)" >> $GITHUB_ENV 141 | echo "RELEASE_DATE=$(date +"%Y.%m.%d-%H%M")" >> $GITHUB_ENV 142 | echo "status=success" >> $GITHUB_OUTPUT 143 | 144 | # 更新分支 145 | - name: Upload Branch 146 | if: env.UPLOAD_BRANCH == 'true' && steps.compile.outputs.status == 'success' 147 | env: 148 | GITHUB_TOKEN: ${{ secrets.REPO_TOKEN }} 149 | run: | 150 | cd openwrt/bin 151 | git init 152 | git config user.name "yfdoor" 153 | git config user.email "yfdoor@github.com" 154 | git add . 155 | git commit -m "Update OpenWrt_"$CONF_FILE 156 | git push --force --quiet https://$GITHUB_TOKEN@github.com/yfdoor/OpenWrt.git HEAD:OpenWrt_$CONF_FILE 157 | rm -rf .git 158 | 159 | # 上传 Bin 160 | - name: Upload Bin Directory 161 | uses: actions/upload-artifact@main 162 | if: env.UPLOAD_BIN_DIR == 'true' && steps.compile.outputs.status == 'success' 163 | with: 164 | name: OpenWrt_Bin_${{ env.DEVICE_NAME }}_${{ env.RELEASE_DATE }} 165 | path: openwrt/bin 166 | 167 | # 准备固件 168 | - name: Organize Firmware 169 | id: organize 170 | if: steps.compile.outputs.status == 'success' && !cancelled() 171 | run: | 172 | cd openwrt/bin/targets/*/* 173 | rm -rf packages 174 | 175 | echo "========================================" 176 | echo "[Space Usage]:" 177 | echo "========================================" 178 | df -hT 179 | echo "========================================" 180 | echo "[File List]:" 181 | echo "========================================" 182 | echo "Current Path:" $PWD 183 | ls -l -A 184 | echo "========================================" 185 | 186 | echo "FIRMWARE=$PWD" >> $GITHUB_ENV 187 | echo "status=success" >> $GITHUB_OUTPUT 188 | 189 | # 上传固件 190 | - name: Upload Firmware 191 | uses: actions/upload-artifact@main 192 | if: steps.organize.outputs.status == 'success' && env.UPLOAD_FIRMWARE == 'true' && !cancelled() 193 | with: 194 | name: OpenWrt_Firmware_${{ env.DEVICE_NAME }}_${{ env.RELEASE_DATE }} 195 | path: ${{ env.FIRMWARE }} 196 | 197 | # 上传CowTransfer 198 | - name: Upload to Cowtransfer 199 | id: cowtransfer 200 | if: steps.organize.outputs.status == 'success' && env.UPLOAD_COWTRANSFER == 'true' && !cancelled() 201 | run: | 202 | curl -fsSL git.io/file-transfer | sh 203 | ./transfer cow --block 2621440 -s -p 64 --no-progress ${FIRMWARE} 2>&1 | tee cowtransfer.log 204 | echo "::warning file=cowtransfer.com::$(cat cowtransfer.log | grep https)" 205 | echo "url=$(cat cowtransfer.log | grep https | cut -f3 -d" ")" >> $GITHUB_OUTPUT 206 | 207 | # 上传WeTransfer 208 | - name: Upload to WeTransfer 209 | id: wetransfer 210 | if: steps.organize.outputs.status == 'success' && env.UPLOAD_WETRANSFER == 'true' && !cancelled() 211 | run: | 212 | curl -fsSL git.io/file-transfer | sh 213 | ./transfer wet -s -p 16 --no-progress ${FIRMWARE} 2>&1 | tee wetransfer.log 214 | echo "::warning file=wetransfer.com::$(cat wetransfer.log | grep https)" 215 | echo "url=$(cat wetransfer.log | grep https | cut -f3 -d" ")" >> $GITHUB_OUTPUT 216 | 217 | # 生成发行 218 | - name: Generate Release 219 | id: tag 220 | if: env.UPLOAD_RELEASE == 'true' && steps.compile.outputs.status == 'success' && !cancelled() 221 | run: | 222 | touch release.txt 223 | cat >> release.txt << EOF 224 | 1、源码:${{ env.REPO_URL }} 225 | 2、分支:${{ env.REPO_BRANCH }} 226 | 3、设备:${{ env.DEVICE_NAME }} 227 | -- Build by YFDOOR with Github Actions on ${{ env.RELEASE_DATE }} for ${{ env.DEVICE_NAME }} device 228 | 229 | 外链下载: 230 | EOF 231 | [ $UPLOAD_COWTRANSFER = true ] && echo "🔗 [Cowtransfer Download (24hrs)](${{ steps.cowtransfer.outputs.url }})" >> release.txt 232 | [ $UPLOAD_WETRANSFER = true ] && echo "🔗 [WeTransfer Download (7days)](${{ steps.wetransfer.outputs.url }})" >> release.txt 233 | 234 | echo "status=success" >> $GITHUB_OUTPUT 235 | 236 | # 上传发行 237 | - name: Upload Release 238 | uses: softprops/action-gh-release@v1 239 | if: env.UPLOAD_RELEASE == 'true' && steps.compile.outputs.status == 'success' && !cancelled() 240 | env: 241 | GITHUB_TOKEN: ${{ secrets.REPO_TOKEN }} 242 | with: 243 | tag_name: ${{ env.RELEASE_DATE }} 244 | body_path: release.txt 245 | files: ${{ env.FIRMWARE }}/* 246 | 247 | # 清理发行 248 | - name: Remove Old Release 249 | uses: dev-drprasad/delete-older-releases@v0.2.1 250 | if: env.UPLOAD_RELEASE == 'true' && !cancelled() 251 | env: 252 | GITHUB_TOKEN: ${{ secrets.REPO_TOKEN }} 253 | with: 254 | keep_latest: 10 255 | delete_tags: true 256 | -------------------------------------------------------------------------------- /.github/workflows/OpenWrt-Build.yml: -------------------------------------------------------------------------------- 1 | # This is free software, lisence use MIT. 2 | # Copyright (C) https://github.com/yfdoor 3 | # 4 | # https://github.com/yfdoor/OpenWrt 5 | # Description: GitHub Actions for OpenWrt Build 6 | 7 | name: OpenWrt-Build 8 | 9 | # 触发条件 10 | on: 11 | # push: 12 | # branches: 13 | # - master 14 | # paths: 15 | # - '.config' 16 | schedule: 17 | - cron: 0 0 4/7 * * 18 | #watch: 19 | # types: started 20 | 21 | # 环境定义 22 | env: 23 | ##################################################### 24 | ##### 1:编译官方源码 25 | ##### 2:编译第三方源码 26 | ##### 3:编译官方源码 & 第三方 Package 27 | ##################################################### 28 | REPO_URL: https://github.com/openwrt/openwrt.git 29 | REPO_BRANCH: v23.05.2 30 | CONF_FILE: x86_64 31 | DIY0_FILE: DIY0.sh 32 | DIY1_FILE: DIY1.sh 33 | SSH_ACTION: false 34 | UPLOAD_BRANCH: false 35 | UPLOAD_BIN_DIR: true 36 | UPLOAD_FIRMWARE: false 37 | UPLOAD_COWTRANSFER: false 38 | UPLOAD_WETRANSFER: true 39 | UPLOAD_RELEASE: true 40 | TZ: Asia/Shanghai 41 | ##################################################### 42 | 43 | jobs: 44 | build: 45 | runs-on: ubuntu-20.04 46 | if: github.event.repository.owner.id == github.event.sender.id || ! github.event.sender.id 47 | 48 | steps: 49 | # 项目初始 50 | - name: Code Checkout 51 | uses: actions/checkout@main 52 | 53 | # 初始环境 54 | - name: Initialize Environment 55 | env: 56 | DEBIAN_FRONTEND: noninteractive 57 | run: | 58 | sudo rm -rf /etc/apt/sources.list.d/* /usr/share/dotnet /usr/local/lib/android /opt/ghc 59 | sudo -E apt-get update 60 | sudo -E apt-get -y install $(curl -fsSL git.io/depends-ubuntu-2004) 61 | sudo -E apt-get -y autoremove --purge 62 | sudo -E apt-get clean 63 | sudo timedatectl set-timezone "$TZ" 64 | 65 | echo "========================================" 66 | echo "[Space Usage]:" 67 | echo "========================================" 68 | df -hT 69 | echo "========================================" 70 | echo "[File List]:" 71 | echo "========================================" 72 | echo "Current Path:" $PWD 73 | ls -l -A 74 | echo "========================================" 75 | 76 | # 下载源码 77 | - name: Clone Code 78 | run: | 79 | git clone --depth 1 $REPO_URL -b $REPO_BRANCH openwrt 80 | 81 | # 自定插件 82 | - name: Download My Package 83 | run: | 84 | chmod +x script/$DIY0_FILE 85 | cd openwrt 86 | ../script/$DIY0_FILE 87 | 88 | # 更新Feed 89 | - name: Update Feeds 90 | run: | 91 | cd openwrt 92 | ./scripts/feeds update -a 93 | ./scripts/feeds install -a 94 | 95 | # 配置文件 96 | - name: Config File 97 | run: | 98 | chmod +x script/$DIY1_FILE 99 | [ -e files ] && cp -r -f files openwrt/files 100 | [ -e config.d/$CONF_FILE ] && cp -r -f config.d/$CONF_FILE openwrt/.config 101 | cd openwrt 102 | ../script/$DIY1_FILE 103 | 104 | # SSH连接 105 | - name: SSH Connection 106 | uses: P3TERX/ssh2actions@v1.0.0 107 | if: env.SSH_ACTION == 'true' 108 | env: 109 | TELEGRAM_CHAT_ID: ${{ secrets.TELEGRAM_CHAT_ID }} 110 | TELEGRAM_BOT_TOKEN: ${{ secrets.TELEGRAM_BOT_TOKEN }} 111 | 112 | # 下载依赖 113 | - name: Make Download 114 | run: | 115 | cd openwrt 116 | make defconfig 117 | make download -j8 118 | find dl/ -size -1024c -exec rm -f {} \; 119 | 120 | # 编译固件 121 | - name: Compile Firmware 122 | id: compile 123 | run: | 124 | cd openwrt 125 | echo -e "$(nproc) thread compile" 126 | make -j$(nproc) || make -j1 || make -j1 V=s 127 | 128 | echo "========================================" 129 | echo "[Space Usage]:" 130 | echo "========================================" 131 | df -hT 132 | echo "========================================" 133 | echo "[File List]:" 134 | echo "========================================" 135 | echo "Current Path:" $PWD 136 | ls -l -A 137 | echo "========================================" 138 | 139 | grep '^CONFIG_TARGET.*DEVICE.*=y' .config | sed -r 's/.*DEVICE_(.*)=y/\1/' > DEVICE_NAME 140 | [ -s DEVICE_NAME ] && echo "DEVICE_NAME=$(cat DEVICE_NAME)" >> $GITHUB_ENV 141 | echo "RELEASE_DATE=$(date +"%Y.%m.%d-%H%M")" >> $GITHUB_ENV 142 | echo "status=success" >> $GITHUB_OUTPUT 143 | 144 | # 更新分支 145 | - name: Upload Branch 146 | if: env.UPLOAD_BRANCH == 'true' && steps.compile.outputs.status == 'success' 147 | env: 148 | GITHUB_TOKEN: ${{ secrets.REPO_TOKEN }} 149 | run: | 150 | cd openwrt/bin 151 | git init 152 | git config user.name "yfdoor" 153 | git config user.email "yfdoor@github.com" 154 | git add . 155 | git commit -m "Update OpenWrt_"$CONF_FILE 156 | git push --force --quiet https://$GITHUB_TOKEN@github.com/yfdoor/OpenWrt.git HEAD:OpenWrt_$CONF_FILE 157 | rm -rf .git 158 | 159 | # 上传 Bin 160 | - name: Upload Bin Directory 161 | uses: actions/upload-artifact@main 162 | if: env.UPLOAD_BIN_DIR == 'true' && steps.compile.outputs.status == 'success' 163 | with: 164 | name: OpenWrt_Bin_${{ env.DEVICE_NAME }}_${{ env.RELEASE_DATE }} 165 | path: openwrt/bin 166 | 167 | # 准备固件 168 | - name: Organize Firmware 169 | id: organize 170 | if: steps.compile.outputs.status == 'success' && !cancelled() 171 | run: | 172 | cd openwrt/bin/targets/*/* 173 | rm -rf packages 174 | 175 | echo "========================================" 176 | echo "[Space Usage]:" 177 | echo "========================================" 178 | df -hT 179 | echo "========================================" 180 | echo "[File List]:" 181 | echo "========================================" 182 | echo "Current Path:" $PWD 183 | ls -l -A 184 | echo "========================================" 185 | 186 | echo "FIRMWARE=$PWD" >> $GITHUB_ENV 187 | echo "status=success" >> $GITHUB_OUTPUT 188 | 189 | # 上传固件 190 | - name: Upload Firmware 191 | uses: actions/upload-artifact@main 192 | if: steps.organize.outputs.status == 'success' && env.UPLOAD_FIRMWARE == 'true' && !cancelled() 193 | with: 194 | name: OpenWrt_Firmware_${{ env.DEVICE_NAME }}_${{ env.RELEASE_DATE }} 195 | path: ${{ env.FIRMWARE }} 196 | 197 | # 上传CowTransfer 198 | - name: Upload to Cowtransfer 199 | id: cowtransfer 200 | if: steps.organize.outputs.status == 'success' && env.UPLOAD_COWTRANSFER == 'true' && !cancelled() 201 | run: | 202 | curl -fsSL git.io/file-transfer | sh 203 | ./transfer cow --block 2621440 -s -p 64 --no-progress ${FIRMWARE} 2>&1 | tee cowtransfer.log 204 | echo "::warning file=cowtransfer.com::$(cat cowtransfer.log | grep https)" 205 | echo "url=$(cat cowtransfer.log | grep https | cut -f3 -d" ")" >> $GITHUB_OUTPUT 206 | 207 | # 上传WeTransfer 208 | - name: Upload to WeTransfer 209 | id: wetransfer 210 | if: steps.organize.outputs.status == 'success' && env.UPLOAD_WETRANSFER == 'true' && !cancelled() 211 | run: | 212 | curl -fsSL git.io/file-transfer | sh 213 | ./transfer wet -s -p 16 --no-progress ${FIRMWARE} 2>&1 | tee wetransfer.log 214 | echo "::warning file=wetransfer.com::$(cat wetransfer.log | grep https)" 215 | echo "url=$(cat wetransfer.log | grep https | cut -f3 -d" ")" >> $GITHUB_OUTPUT 216 | 217 | # 生成发行 218 | - name: Generate Release 219 | id: tag 220 | if: env.UPLOAD_RELEASE == 'true' && steps.compile.outputs.status == 'success' && !cancelled() 221 | run: | 222 | touch release.txt 223 | cat >> release.txt << EOF 224 | 1、源码:${{ env.REPO_URL }} 225 | 2、分支:${{ env.REPO_BRANCH }} 226 | 3、设备:${{ env.DEVICE_NAME }} 227 | -- Build by YFDOOR with Github Actions on ${{ env.RELEASE_DATE }} for ${{ env.DEVICE_NAME }} device 228 | 229 | 外链下载: 230 | EOF 231 | [ $UPLOAD_COWTRANSFER = true ] && echo "🔗 [Cowtransfer Download (24hrs)](${{ steps.cowtransfer.outputs.url }})" >> release.txt 232 | [ $UPLOAD_WETRANSFER = true ] && echo "🔗 [WeTransfer Download (7days)](${{ steps.wetransfer.outputs.url }})" >> release.txt 233 | 234 | echo "status=success" >> $GITHUB_OUTPUT 235 | 236 | # 上传发行 237 | - name: Upload Release 238 | uses: softprops/action-gh-release@v1 239 | if: env.UPLOAD_RELEASE == 'true' && steps.compile.outputs.status == 'success' && !cancelled() 240 | env: 241 | GITHUB_TOKEN: ${{ secrets.REPO_TOKEN }} 242 | with: 243 | tag_name: ${{ env.RELEASE_DATE }} 244 | body_path: release.txt 245 | files: ${{ env.FIRMWARE }}/* 246 | 247 | # 清理发行 248 | - name: Remove Old Release 249 | uses: dev-drprasad/delete-older-releases@v0.2.1 250 | if: env.UPLOAD_RELEASE == 'true' && !cancelled() 251 | env: 252 | GITHUB_TOKEN: ${{ secrets.REPO_TOKEN }} 253 | with: 254 | keep_latest: 10 255 | delete_tags: true 256 | -------------------------------------------------------------------------------- /README.MD: -------------------------------------------------------------------------------- 1 | # OpenWrt 2 | 3 | ## 简介: 4 | - 自用 OpenWrt 定制项目 5 | - 默认后台登录地址:192.168.100.1 6 | - 若 Fork 项目,请修改代码中自己的 TOKEN 7 | 8 | ## 功能: 9 | - 支持编译官方源码或第三方源码 10 | - Package:默认添加 [yfdoor/OpenWrt-Packages](https://github.com/yfdoor/OpenWrt-Packages),该库包含所有 Lean's package and Lienol's package 和一些自用 package,且定期自动更新。 11 | - 自动发布固件 12 | - 自动创建分支 13 | 14 | ## 变量: 15 | | 变量名 | 释义 | 16 | | :--- | :--- | 17 | | -- REPO_URL: https://github.com/openwrt/openwrt.git | 定义源码 | 18 | | -- REPO_BRANCH: v19.07.2 | 定义分支 | 19 | | -- DIY_FILE: script/DIY.sh | 定义脚本 | 20 | | -- CONF_FILE: x86_64 | 定义配置文件 | 21 | | -- SSH_ACTION: false |是否打开 SSH | 22 | | -- UPLOAD_BRANCH: true | 是否创建分支 | 23 | | -- UPLOAD_RELEASE: true | 是否创建发行版| 24 | | -- UPLOAD_BIN_DIR: true | 是否创建 Bin 到 Artifact | 25 | | -- UPLOAD_FIRMWARE: true | 是否创建 Firmware 到 Artifact | 26 | | -- UPLOAD_WETRANSFER: true | 是否创建外链 WETRANSFER| 27 | | -- UPLOAD_COWTRANSFER: true | 是否创建外链 COWTRANSFER | 28 | 29 | ## 目录: 30 | - ### config.d: 31 | - 目录存放编译需要的 **config** 配置文件 32 | - 默认使用 **x86_64** 配置文件 33 | 34 | - ### script: 35 | - 目录存放需要执行的定制脚本 36 | - 默认使用 **DIY** 配置文件 37 | 38 | - ### files: 39 | - 目录存放定制文件 40 | - 举例:假如说您需要一个使用预配置文件 /etc/config/firewall 来构建固件,那么把您的 **firewall** 配置文件文件放到下面的路径:/files/etc/config 41 | 42 | ## 尾巴: 43 | - /include/target.mk:可定义默认安装的 packages 44 | - /target/linux/x86/Makefile:可定义对应平台默认安装的 packages(X86示例) 45 | 46 | ## 发布: 47 | - [最新发布](https://github.com/yfdoor/OpenWrt/releases/latest) 48 | 49 | ## 感谢: 50 | - [OpenWrt](https://github.com/openwrt/openwrt) 51 | - [Lean LEDE](https://github.com/coolsnowwolf/lede) -------------------------------------------------------------------------------- /config.d/Mi_AX3600: -------------------------------------------------------------------------------- 1 | # OpenWrt Configuration 2 | CONFIG_TARGET_ipq807x=y 3 | CONFIG_TARGET_ipq807x_generic=y 4 | CONFIG_TARGET_ipq807x_generic_DEVICE_xiaomi_ax3600=y 5 | 6 | # Root filesystem archives 7 | # CONFIG_TARGET_ROOTFS_CPIOGZ is not set 8 | # CONFIG_TARGET_ROOTFS_TARGZ=y 9 | 10 | # Root filesystem images 11 | # CONFIG_TARGET_ROOTFS_EXT4FS is not set 12 | CONFIG_TARGET_ROOTFS_SQUASHFS=y 13 | CONFIG_TARGET_IMAGES_GZIP=y 14 | CONFIG_GRUB_TIMEOUT="0" 15 | 16 | # Image Options 17 | CONFIG_TARGET_KERNEL_PARTSIZE=16 18 | CONFIG_TARGET_ROOTFS_PARTSIZE=1008 19 | 20 | # Kernel build options 21 | CONFIG_KERNEL_BUILD_DOMAIN="yfdoor@github" 22 | CONFIG_KERNEL_BUILD_USER="yfdoor" 23 | 24 | # Base system 25 | # CONFIG_PACKAGE_dnsmasq is not set 26 | # CONFIG_PACKAGE_dnsmasq-dhcpv6 is not set 27 | CONFIG_PACKAGE_dnsmasq-full=y 28 | CONFIG_PACKAGE_wget=y 29 | CONFIG_LUCI_LANG_en=y 30 | CONFIG_LUCI_LANG_zh_Hans=y 31 | 32 | # Base package 33 | CONFIG_PACKAGE_luci=y 34 | CONFIG_PACKAGE_luci-compat=y 35 | CONFIG_PACKAGE_luci-lib-ipkg=y 36 | 37 | # My Packages 38 | #CONFIG_PACKAGE_AdGuardHome=y 39 | #CONFIG_PACKAGE_luci-app-adguardhome=y 40 | #CONFIG_PACKAGE_luci-app-ssr-plus=y 41 | CONFIG_PACKAGE_luci-app-ddns=y 42 | CONFIG_PACKAGE_luci-app-vlmcsd=y 43 | # CONFIG_PACKAGE_luci-app-wrtbwmon=y 44 | # CONFIG_PACKAGE_luci-app-arpbind=y 45 | # CONFIG_PACKAGE_luci-app-unblockmusic=y 46 | # CONFIG_PACKAGE_luci-app-zerotier=y 47 | # CONFIG_PACKAGE_luci-app-flowoffload=y 48 | 49 | CONFIG_PACKAGE_luci-app-timecontrol=y 50 | CONFIG_PACKAGE_luci-app-control-webrestriction=y 51 | CONFIG_PACKAGE_luci-app-control-timewol=y 52 | 53 | CONFIG_PACKAGE_ddns-scripts_aliyun=y 54 | CONFIG_PACKAGE_default-settings=y 55 | -------------------------------------------------------------------------------- /config.d/README.MD: -------------------------------------------------------------------------------- 1 | # Config File Archive 2 | 3 | ## 简介: 4 | - 存档 .config 文件。 5 | - 默认使用 x86_64 来编译。 6 | -------------------------------------------------------------------------------- /config.d/Redmi_AC2100: -------------------------------------------------------------------------------- 1 | # OpenWrt Configuration 2 | CONFIG_TARGET_ramips=y 3 | CONFIG_TARGET_ramips_mt7621=y 4 | CONFIG_TARGET_ramips_mt7621_DEVICE_xiaomi_redmi-router-ac2100=y 5 | 6 | # Root filesystem archives 7 | # CONFIG_TARGET_ROOTFS_CPIOGZ is not set 8 | # CONFIG_TARGET_ROOTFS_TARGZ=y 9 | 10 | # Root filesystem images 11 | # CONFIG_TARGET_ROOTFS_EXT4FS is not set 12 | CONFIG_TARGET_ROOTFS_SQUASHFS=y 13 | CONFIG_TARGET_IMAGES_GZIP=y 14 | CONFIG_GRUB_TIMEOUT="0" 15 | 16 | # Image Options 17 | CONFIG_TARGET_KERNEL_PARTSIZE=16 18 | CONFIG_TARGET_ROOTFS_PARTSIZE=496 19 | 20 | # Kernel build options 21 | CONFIG_KERNEL_BUILD_DOMAIN="yfdoor@github" 22 | CONFIG_KERNEL_BUILD_USER="yfdoor" 23 | 24 | # Base system 25 | # CONFIG_PACKAGE_dnsmasq is not set 26 | # CONFIG_PACKAGE_dnsmasq-dhcpv6 is not set 27 | CONFIG_PACKAGE_dnsmasq-full=y 28 | CONFIG_PACKAGE_wget=y 29 | CONFIG_LUCI_LANG_en=y 30 | CONFIG_LUCI_LANG_zh_Hans=y 31 | 32 | # Base package 33 | CONFIG_PACKAGE_luci=y 34 | CONFIG_PACKAGE_luci-compat=y 35 | CONFIG_PACKAGE_luci-lib-ipkg=y 36 | 37 | # My Packages 38 | CONFIG_PACKAGE_AdGuardHome=y 39 | CONFIG_PACKAGE_luci-app-adguardhome=y 40 | CONFIG_PACKAGE_luci-app-ssr-plus=y 41 | CONFIG_PACKAGE_luci-app-ddns=y 42 | CONFIG_PACKAGE_luci-app-vlmcsd=y 43 | CONFIG_PACKAGE_luci-app-wrtbwmon=y 44 | # CONFIG_PACKAGE_luci-app-unblockmusic=y 45 | # CONFIG_PACKAGE_luci-app-zerotier=y 46 | # CONFIG_PACKAGE_luci-app-flowoffload=y 47 | 48 | CONFIG_PACKAGE_luci-app-timecontrol=y 49 | CONFIG_PACKAGE_luci-app-control-webrestriction=y 50 | CONFIG_PACKAGE_luci-app-control-timewol=y 51 | 52 | CONFIG_PACKAGE_ddns-scripts_aliyun=y 53 | CONFIG_PACKAGE_default-settings=y 54 | -------------------------------------------------------------------------------- /config.d/x86_64: -------------------------------------------------------------------------------- 1 | # OpenWrt Configuration 2 | CONFIG_TARGET_x86=y 3 | CONFIG_TARGET_x86_64=y 4 | CONFIG_TARGET_x86_64_Generic=y 5 | 6 | # Root filesystem archives 7 | # CONFIG_TARGET_ROOTFS_CPIOGZ is not set 8 | # CONFIG_TARGET_ROOTFS_TARGZ=y 9 | 10 | # Root filesystem images 11 | # CONFIG_TARGET_ROOTFS_EXT4FS is not set 12 | CONFIG_TARGET_ROOTFS_SQUASHFS=y 13 | CONFIG_TARGET_IMAGES_GZIP=y 14 | CONFIG_GRUB_TIMEOUT="0" 15 | 16 | # Image Options 17 | CONFIG_TARGET_KERNEL_PARTSIZE=16 18 | CONFIG_TARGET_ROOTFS_PARTSIZE=1008 19 | 20 | # Kernel build options 21 | CONFIG_KERNEL_BUILD_DOMAIN="yfdoor@github" 22 | CONFIG_KERNEL_BUILD_USER="yfdoor" 23 | 24 | # Base system 25 | # CONFIG_PACKAGE_dnsmasq is not set 26 | # CONFIG_PACKAGE_dnsmasq-dhcpv6 is not set 27 | CONFIG_PACKAGE_dnsmasq-full=y 28 | CONFIG_PACKAGE_wget=y 29 | CONFIG_LUCI_LANG_en=y 30 | CONFIG_LUCI_LANG_zh_Hans=y 31 | 32 | # Base package 33 | CONFIG_PACKAGE_luci=y 34 | CONFIG_PACKAGE_luci-compat=y 35 | CONFIG_PACKAGE_luci-lib-ipkg=y 36 | 37 | # My Packages 38 | #CONFIG_PACKAGE_AdGuardHome=y 39 | #CONFIG_PACKAGE_luci-app-adguardhome=y 40 | #CONFIG_PACKAGE_luci-app-ssr-plus=y 41 | CONFIG_PACKAGE_luci-app-ddns=y 42 | CONFIG_PACKAGE_luci-app-vlmcsd=y 43 | # CONFIG_PACKAGE_luci-app-wrtbwmon=y 44 | # CONFIG_PACKAGE_luci-app-arpbind=y 45 | # CONFIG_PACKAGE_luci-app-unblockmusic=y 46 | # CONFIG_PACKAGE_luci-app-zerotier=y 47 | # CONFIG_PACKAGE_luci-app-flowoffload=y 48 | 49 | CONFIG_PACKAGE_luci-app-timecontrol=y 50 | CONFIG_PACKAGE_luci-app-control-webrestriction=y 51 | CONFIG_PACKAGE_luci-app-control-timewol=y 52 | 53 | CONFIG_PACKAGE_ddns-scripts_aliyun=y 54 | CONFIG_PACKAGE_default-settings=y 55 | -------------------------------------------------------------------------------- /files/etc/config/demo: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /script/DIY0.sh: -------------------------------------------------------------------------------- 1 | #/bin/bash 2 | # This is free software, lisence use MIT. 3 | # Copyright (C) https://github.com/yfdoor 4 | 5 | # Define My Package 6 | git clone https://github.com/yfdoor/OpenWrt-Packages.git package/yfdoorg 7 | -------------------------------------------------------------------------------- /script/DIY1.sh: -------------------------------------------------------------------------------- 1 | #/bin/bash 2 | # This is free software, lisence use MIT. 3 | # Copyright (C) https://github.com/yfdoor 4 | 5 | # Define IP 6 | sed -i 's/192.168.1.1/192.168.100.1/g' package/base-files/files/bin/config_generate 7 | sed -i 's/10.10.10.1/192.168.100.1/g' package/base-files/files/bin/config_generate 8 | 9 | # Define Default 10 | cat > package/yfdoorg/yfdoor/default-settings/files/zzz-default-settings <<-EOF 11 | #!/bin/sh 12 | # change password 13 | sed -i '/root/d' /etc/shadow 14 | sed -i '1 i root:::0:99999:7:::' /etc/shadow 15 | 16 | # set language 17 | uci set luci.main.lang=zh_cn 18 | uci commit luci 19 | 20 | # set fstab 21 | uci set fstab.@global[0].anon_mount=1 22 | uci commit fstab 23 | 24 | # set time zone 25 | uci set system.@system[0].timezone=CST-8 26 | uci set system.@system[0].zonename=Asia/Shanghai 27 | uci commit system 28 | 29 | # set distfeeds 30 | cp /etc/opkg/distfeeds.conf /etc/opkg/distfeeds.conf_BK 31 | sed -i 's#downloads.openwrt.org#mirrors.cloud.tencent.com/openwrt#g' /etc/opkg/distfeeds.conf 32 | sed -i '/yfdoor/d' /etc/opkg/distfeeds.conf 33 | 34 | # set firewall 35 | sed -i '/REDIRECT --to-ports 53/d' /etc/firewall.user 36 | echo 'iptables -t nat -A PREROUTING -p udp --dport 53 -j REDIRECT --to-ports 53' >> /etc/firewall.user 37 | echo 'iptables -t nat -A PREROUTING -p tcp --dport 53 -j REDIRECT --to-ports 53' >> /etc/firewall.user 38 | echo '[ -n "$(command -v ip6tables)" ] && ip6tables -t nat -A PREROUTING -p udp --dport 53 -j REDIRECT --to-ports 53' >> /etc/firewall.user 39 | echo '[ -n "$(command -v ip6tables)" ] && ip6tables -t nat -A PREROUTING -p tcp --dport 53 -j REDIRECT --to-ports 53' >> /etc/firewall.user 40 | 41 | echo 'MODEMIP=192.168.1.1' >> /etc/firewall.user 42 | echo 'MODEM_NET=`echo $MODEMIP | cut -d "." -f 1-3`' >> /etc/firewall.user 43 | echo 'ROUTER_WAN_PORT_IP=192.168.1.2' >> /etc/firewall.user 44 | echo 'WAN_PORT=eth0'>> /etc/firewall.user 45 | echo 'ifconfig $WAN_PORT $ROUTER_WAN_PORT_IP netmask 255.255.255.0 broadcast $MODEM_NET.255' >> /etc/firewall.user 46 | echo 'iptables -A forwarding_rule -d $MODEMIP -j ACCEPT' >> /etc/firewall.user 47 | echo 'iptables -t nat -A postrouting_rule -d $MODEMIP -o $WAN_PORT -j MASQUERADE' >> /etc/firewall.user 48 | 49 | # Others 50 | ln -sf /sbin/ip /usr/bin/ip 51 | sed -i '/option disabled/d' /etc/config/wireless 52 | sed -i '/set wireless.radio${devidx}.disabled/d' /lib/wifi/mac80211.sh 53 | 54 | sed -i '/log-facility/d' /etc/dnsmasq.conf 55 | echo "log-facility=/dev/null" >> /etc/dnsmasq.conf 56 | 57 | echo 'hsts=0' > /root/.wgetrc 58 | 59 | rm -rf /tmp/luci-modulecache/ 60 | rm -f /tmp/luci-indexcache 61 | exit 0 62 | EOF 63 | -------------------------------------------------------------------------------- /script/README.MD: -------------------------------------------------------------------------------- 1 | # Script Archive 2 | 3 | ## 简介: 4 | - 存档 DIY Script 文件。 5 | 1. DIY0: package source 6 | 2. DIY1: default-settings --------------------------------------------------------------------------------