Skip to content

Commit 08c6266

Browse files
committed
builder: update actions & add std build
Signed-off-by: sbwml <admin@cooluc.com>
1 parent ffe4c41 commit 08c6266

5 files changed

Lines changed: 189 additions & 17 deletions

File tree

.github/workflows/build-minimal.yml

Lines changed: 20 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ jobs:
6464
uses: sbwml/actions@install-llvm
6565

6666
- name: Restore Cached
67-
uses: actions/cache/restore@v4
67+
uses: actions/cache/restore@v5
6868
with:
6969
path: /builder/.ccache
7070
key: ${{ matrix.tag.version }}-${{ env.ccache_model }}
@@ -128,15 +128,31 @@ jobs:
128128
cp -a openwrt/bin/targets/armsr/armv8*/config.buildinfo rom/config.buildinfo
129129
cd rom && sha256sum * > ../rom/sha256sums.txt
130130
fi
131+
echo '## Minimal Version' > ${{ env.build_dir }}/bodyFile
132+
echo '**This build does not include any third‑party plugins, resulting in the smallest possible firmware size.**' >> ${{ env.build_dir }}/bodyFile
133+
134+
- name: Create release
135+
uses: ncipollo/release-action@v1.20.0
136+
with:
137+
name: OpenWrt-${{ env.latest_release }} Minimal
138+
allowUpdates: true
139+
tag: ${{ env.latest_release }}-minimal
140+
commit: main
141+
replacesArtifacts: true
142+
makeLatest: false
143+
token: ${{ secrets.workflow_token }}
144+
bodyFile: ${{ env.build_dir }}/bodyFile
145+
artifacts: |
146+
${{ env.build_dir }}/rom/*.gz
131147
132148
- name: Upload artifacts
133-
uses: actions/upload-artifact@v4
149+
uses: actions/upload-artifact@v6
134150
with:
135151
name: ${{ matrix.model }}-${{ matrix.tag.version }}
136152
path: ${{ env.build_dir }}/rom/*.*
137153

138154
- name: Upload Firmware - FTP
139-
uses: SamKirkland/FTP-Deploy-Action@v4.3.5
155+
uses: SamKirkland/FTP-Deploy-Action@v4.3.6
140156
with:
141157
dangerous-clean-slate: true
142158
username: dev
@@ -146,7 +162,7 @@ jobs:
146162
local-dir: ${{ env.build_dir }}/rom/
147163

148164
- name: Release OTA
149-
uses: SamKirkland/FTP-Deploy-Action@v4.3.5
165+
uses: SamKirkland/FTP-Deploy-Action@v4.3.6
150166
with:
151167
username: openwrt
152168
server: ${{ secrets.ftp_address }}

.github/workflows/build-release.yml

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ jobs:
6464
uses: sbwml/actions@install-llvm
6565

6666
- name: Restore Cached
67-
uses: actions/cache/restore@v4
67+
uses: actions/cache/restore@v5
6868
with:
6969
path: /builder/.ccache
7070
key: ${{ matrix.tag.version }}-${{ env.ccache_model }}
@@ -130,6 +130,8 @@ jobs:
130130
fi
131131
cd ..
132132
tar zcf rom/buildinfo_${{ matrix.model }}.tar.gz info
133+
echo '## Releases Version' > ${{ env.build_dir }}/bodyFile
134+
echo '**This build includes Docker, Passwall, HomeProxy, and other commonly used plugins. However, the firmware size is relatively large, making it suitable for most users.**' >> ${{ env.build_dir }}/bodyFile
133135
134136
- name: Create virtual machine images
135137
if: ${{ matrix.model == 'x86_64' }}
@@ -148,14 +150,16 @@ jobs:
148150
echo "<center><h1>x86_64 虚拟机平台镜像</h1></center>" > README.md
149151
150152
- name: Create release
151-
uses: ncipollo/release-action@v1.14.0
153+
uses: ncipollo/release-action@v1.20.0
152154
with:
153155
name: OpenWrt-${{ env.latest_release }}
154156
allowUpdates: true
155157
tag: ${{ env.latest_release }}
156158
commit: main
157159
replacesArtifacts: true
160+
makeLatest: true
158161
token: ${{ secrets.workflow_token }}
162+
bodyFile: ${{ env.build_dir }}/bodyFile
159163
artifacts: |
160164
${{ env.build_dir }}/rom/*
161165
@@ -168,7 +172,7 @@ jobs:
168172
rm -rf rom/buildinfo_*
169173
170174
- name: Upload Firmware - FTP
171-
uses: SamKirkland/FTP-Deploy-Action@v4.3.5
175+
uses: SamKirkland/FTP-Deploy-Action@v4.3.6
172176
with:
173177
dangerous-clean-slate: true
174178
username: dev
@@ -178,7 +182,7 @@ jobs:
178182
local-dir: ${{ env.build_dir }}/rom/
179183

180184
- name: Release OTA
181-
uses: SamKirkland/FTP-Deploy-Action@v4.3.5
185+
uses: SamKirkland/FTP-Deploy-Action@v4.3.6
182186
with:
183187
username: openwrt
184188
server: ${{ secrets.ftp_address }}

.github/workflows/build-snapshots.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ jobs:
6464
uses: sbwml/actions@install-llvm
6565

6666
- name: Restore Cached
67-
uses: actions/cache/restore@v4
67+
uses: actions/cache/restore@v5
6868
with:
6969
path: /builder/.ccache
7070
key: ${{ matrix.tag.version }}-${{ env.ccache_model }}
@@ -130,7 +130,7 @@ jobs:
130130
echo current_hour="$(date +'%H')" >> "$GITHUB_ENV"
131131
132132
- name: Upload artifacts
133-
uses: actions/upload-artifact@v4
133+
uses: actions/upload-artifact@v6
134134
with:
135135
name: ${{ env.build_date }}-${{ matrix.model }}-${{ matrix.tag.version }}
136136
path: ${{ env.build_dir }}/rom/*.*
@@ -204,7 +204,7 @@ jobs:
204204
cp -a info/* rom/
205205
206206
- name: Upload Firmware - FTP
207-
uses: SamKirkland/FTP-Deploy-Action@v4.3.5
207+
uses: SamKirkland/FTP-Deploy-Action@v4.3.6
208208
with:
209209
dangerous-clean-slate: true
210210
username: snapshot

.github/workflows/build-std.yml

Lines changed: 148 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,148 @@
1+
name: Build standard
2+
3+
on:
4+
workflow_dispatch:
5+
repository_dispatch:
6+
types: [std]
7+
8+
jobs:
9+
build:
10+
name: Build ${{ matrix.model }}-${{ matrix.tag.version }}
11+
runs-on: ubuntu-24.04
12+
defaults:
13+
run:
14+
shell: bash
15+
strategy:
16+
fail-fast: false
17+
matrix:
18+
model:
19+
- armv8
20+
- nanopi-r4s
21+
- nanopi-r5s
22+
- nanopi-r76s
23+
- x86_64
24+
tag:
25+
- type: rc2
26+
version: openwrt-25.12
27+
28+
steps:
29+
- name: Setup variables
30+
run: |
31+
sudo timedatectl set-timezone 'Asia/Shanghai'
32+
git config --global user.name 'actions'
33+
git config --global user.email 'action@github.com'
34+
echo build_dir="/builder" >> "$GITHUB_ENV"
35+
if [[ "${{ matrix.model }}" == nanopi-* ]]; then
36+
echo ccache_model=nanopi-r5s >> "$GITHUB_ENV"
37+
else
38+
echo ccache_model=${{ matrix.model }} >> "$GITHUB_ENV"
39+
fi
40+
41+
- name: Show system
42+
run: |
43+
echo -e "\n\e[1;32mCPU:\e[0m"
44+
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)"
45+
echo -e "\n\e[1;32mMemory:\e[0m"
46+
free -h
47+
echo -e "\n\e[1;32mStorage:\e[0m"
48+
df -Th / /mnt
49+
echo -e "\n\e[1;32mSystem:\e[0m"
50+
lsb_release -a
51+
echo -e "\n\e[1;32mKernel:\e[0m"
52+
uname -a
53+
echo
54+
55+
- name: Free disk space
56+
uses: sbwml/actions@free-disk
57+
with:
58+
build-mount-path: /builder
59+
60+
- name: Build System Setup
61+
uses: sbwml/actions@openwrt-build-setup
62+
63+
- name: Install LLVM
64+
uses: sbwml/actions@install-llvm
65+
66+
- name: Restore Cached
67+
uses: actions/cache/restore@v5
68+
with:
69+
path: /builder/.ccache
70+
key: ${{ matrix.tag.version }}-${{ env.ccache_model }}
71+
72+
- name: Compile OpenWrt
73+
id: compile
74+
continue-on-error: true
75+
working-directory: /builder
76+
env:
77+
git_name: private
78+
git_password: ${{ secrets.ftp_password }}
79+
private_url: ${{ secrets.private_url }}
80+
run: |
81+
export KERNEL_CLANG_LTO=y BUILD_FAST=y ENABLE_CCACHE=y ENABLE_BPF=y ENABLE_LTO=y ENABLE_LRNG=y STD_BUILD=y USE_GCC15=y ENABLE_MOLD=y
82+
bash <(curl -sS ${{ secrets.script_url_general }}) ${{ matrix.tag.type }} ${{ matrix.model }}
83+
cd openwrt
84+
tags=$(git describe --abbrev=0 --tags)
85+
echo "latest_release=$tags" >>$GITHUB_ENV
86+
87+
- name: Extensive logs after a failed compilation
88+
if: steps.compile.outcome == 'failure'
89+
working-directory: /builder
90+
run: |
91+
cd openwrt
92+
make V=s IGNORE_ERRORS="n m"
93+
94+
- name: Prepare Firmware Files
95+
working-directory: /builder
96+
run: |
97+
mkdir -p rom info
98+
if [ "${{ matrix.model }}" = "nanopi-r4s" ]; then
99+
cp -a openwrt/bin/targets/rockchip/*/*.img.gz rom/
100+
cp -a openwrt/bin/targets/rockchip/*/*-r4s.manifest info/manifest.txt
101+
cp -a openwrt/bin/targets/rockchip/*/config.buildinfo info/config.buildinfo
102+
cd rom && sha256sum * > ../info/sha256sums.txt
103+
elif [ "${{ matrix.model }}" = "nanopi-r5s" ]; then
104+
cp -a openwrt/bin/targets/rockchip/*/*.img.gz rom/
105+
cp -a openwrt/bin/targets/rockchip/*/*.manifest info/manifest.txt
106+
cp -a openwrt/bin/targets/rockchip/*/config.buildinfo info/config.buildinfo
107+
cd rom && sha256sum * > ../info/sha256sums.txt
108+
elif [ "${{ matrix.model }}" = "nanopi-r76s" ]; then
109+
cp -a openwrt/bin/targets/rockchip/*/*.img.gz rom/
110+
cp -a openwrt/bin/targets/rockchip/*/*.manifest info/manifest.txt
111+
cp -a openwrt/bin/targets/rockchip/*/config.buildinfo info/config.buildinfo
112+
cd rom && sha256sum * > ../info/sha256sums.txt
113+
elif [ "${{ matrix.model }}" = "x86_64" ]; then
114+
cp -a openwrt/bin/targets/x86/*/*-ext4-combined-efi.img.gz rom/
115+
cp -a openwrt/bin/targets/x86/*/*-squashfs-combined-efi.img.gz rom/
116+
cp -a openwrt/bin/targets/x86/*/*-generic-rootfs.tar.gz rom/
117+
cp -a openwrt/bin/targets/x86/*/*-x86-64-generic.manifest info/manifest.txt
118+
cp -a openwrt/bin/targets/x86/*/config.buildinfo info/config.buildinfo
119+
cd rom && sha256sum * > ../info/sha256sums.txt
120+
elif [ "${{ matrix.model }}" = "armv8" ]; then
121+
tar zcf rom/u-boot-qemu_armv8.tar.gz -C openwrt/bin/targets/armsr/armv8*/ ./u-boot-qemu_armv8
122+
cp -a openwrt/bin/targets/armsr/armv8*/*-generic-initramfs-kernel.bin rom/
123+
cp -a openwrt/bin/targets/armsr/armv8*/*-generic-kernel.bin rom/
124+
cp -a openwrt/bin/targets/armsr/armv8*/*-generic-ext4-combined-efi.img.gz rom/
125+
cp -a openwrt/bin/targets/armsr/armv8*/*-generic-squashfs-combined-efi.img.gz rom/
126+
cp -a openwrt/bin/targets/armsr/armv8*/*-rootfs.tar.gz rom/
127+
cp -a openwrt/bin/targets/armsr/armv8*/*.manifest info/manifest.txt
128+
cp -a openwrt/bin/targets/armsr/armv8*/config.buildinfo info/config.buildinfo
129+
cd rom && sha256sum * > ../info/sha256sums.txt
130+
fi
131+
cd ..
132+
tar zcf rom/buildinfo_${{ matrix.model }}.tar.gz info
133+
echo '## Standard Version' > bodyFile
134+
echo '**This build does not include Docker. It comes with HomeProxy and a set of commonly used plugins, offering a balanced feature set with a moderate firmware size.**' >> bodyFile
135+
136+
- name: Create release
137+
uses: ncipollo/release-action@v1.20.0
138+
with:
139+
name: OpenWrt-${{ env.latest_release }} Standard
140+
allowUpdates: true
141+
tag: ${{ env.latest_release }}-standard
142+
commit: main
143+
replacesArtifacts: true
144+
makeLatest: false
145+
token: ${{ secrets.workflow_token }}
146+
bodyFile: ${{ env.build_dir }}/bodyFile
147+
artifacts: |
148+
${{ env.build_dir }}/rom/*

README.md

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,7 @@
2424

2525
**X86_64: https://x86.cooluc.com**
2626

27-
**25.12-SNAPSHOT: https://snapshot.cooluc.com**
28-
29-
**备用下载: https://dev.cooluc.com**
27+
**OTA 下载通道: https://dev.cooluc.com**
3028

3129
## 版本信息
3230

@@ -57,15 +55,22 @@
5755
| RTC 时钟 (HYM8563) || 固件重置(squashfs) ||
5856
| BBRv3 拥塞控制 || LLVM-BPF 支持 ||
5957
| TCP Brutal 拥塞控制 || Shortcut-FE(支持 UDP 入站) ||
60-
| KVM 虚拟化支持 || LRNG 随机数(v57||
58+
| KVM 虚拟化支持 || LRNG 随机数(v59||
6159
| NGINX & CURL HTTP3/QUIC 支持 || PWM 风扇控制 ||
6260

61+
**NanoPi R76S**
62+
63+
| 基本 | 状态 | 基本 | 状态 |
64+
|:-------------------------------------------------:|:----:|:----------------------------:|:----:|
65+
| Rocket NPU 驱动 || microSD 启动 ||
66+
| SDIO WiFi(AP & Client)& Bluetooth || PCI-MSI 中断优化(A72) ||
67+
6368

6469
| 内置插件 | 状态 | 内置插件 | 状态 |
6570
|:------------------------:|:----:|:----------------:|:----:|
6671
| PassWall || Docker(nftables)||
6772
| HomeProxy || TTY 终端 ||
68-
| FileBrowser || NetData 监控 ||
73+
| Quick 文件管理 || rtp2httpd ||
6974
| qBittorrent || DiskMan 磁盘管理 ||
7075
| MosDNS || CPU 性能调节 ||
7176
| 动态 DNS || SQM 列队管理 ||
@@ -81,7 +86,6 @@
8186
| 隔空播放(AirConnect) || WebDav ||
8287
| 自定义命令 || AirPlay 2 ||
8388
| 网速测试 || NATMap ||
84-
| rtp2httpd || | |
8589

8690
✅ 可用
8791

0 commit comments

Comments
 (0)