-
Notifications
You must be signed in to change notification settings - Fork 110
187 lines (168 loc) · 8.08 KB
/
IPQ60XX-ALL.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
name: IPQ60XX-ALL
on:
workflow_dispatch:
schedule:
- cron: 0 19 * * *
env:
REPO_URL: https://github.com/LiBwrt-op/openwrt-6.x.git
REPO_BRANCH: main
CONFIG_FILE: configs/ipq60xx-all.config
DIY_SCRIPT: diy-script.sh
CLASH_KERNEL: amd64
CACHE_TOOLCHAIN: true
UPLOAD_BIN_DIR: false
FIRMWARE_RELEASE: true
FIRMWARE_TAG: IPQ60XX-ALL
TZ: Asia/Shanghai
jobs:
Build:
runs-on: ubuntu-22.04
steps:
- name: Check Server Performance(检查服务器性能)
run: |
echo "警告⚠"
echo "分配的服务器性能有限,若选择的插件过多,务必注意CPU性能!"
echo -e "已知CPU型号(降序):7763,8370C,8272CL,8171M,E5-2673 \n"
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 "已安装内存详细信息:"
echo -e "$(sudo lshw -short -C memory | grep GiB) \n"
echo "--------------------------硬盘信息--------------------------"
echo "硬盘数量:$(ls /dev/sd* | grep -v [1-9] | wc -l)" && df -hT
- name: Initialization Environment(初始化环境)
env:
DEBIAN_FRONTEND: noninteractive
run: |
docker rmi $(docker images -q)
sudo rm -rf /usr/share/dotnet /etc/apt/sources.list.d /usr/local/lib/android $AGENT_TOOLSDIRECTORY
sudo -E apt-get -y purge azure-cli ghc* zulu* llvm* firefox google* dotnet* powershell openjdk* mongodb* moby* || true
sudo -E apt-get -y update
sudo -E apt-get -y install $(curl -fsSL is.gd/depends_ubuntu_2204)
sudo -E systemctl daemon-reload
sudo -E apt-get -y autoremove --purge
sudo -E apt-get -y clean
sudo timedatectl set-timezone "$TZ"
sudo apt 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 \
mkisofs msmtp nano ninja-build p7zip p7zip-full patch pkgconf python3 python3-pip libpython3-dev qemu-utils \
rsync scons squashfs-tools subversion swig texinfo uglifyjs upx-ucl unzip vim wget xmlto xxd zlib1g-dev
- name: Combine Disks(合并磁盘)
uses: easimon/maximize-build-space@master
with:
swap-size-mb: 1024
temp-reserve-mb: 100
root-reserve-mb: 1024
- name: Checkout
uses: actions/checkout@main
- name: Clone Source Code(克隆源代码)
run: |
df -hT $GITHUB_WORKSPACE
git clone --depth 1 -b $REPO_BRANCH $REPO_URL openwrt
cd openwrt
echo "OPENWRT_PATH=$PWD" >> $GITHUB_ENV
VERSION_INFO=$(git show -s --date=short --format="作者: %an<br/>时间: %cd<br/>内容: %s<br/>hash: %H")
echo "VERSION_INFO=$VERSION_INFO" >> $GITHUB_ENV
VERSION_KERNEL=$(grep -oP 'LINUX_KERNEL_HASH-\K[0-9]+\.[0-9]+\.[0-9]+' include/kernel-6.6)
echo "VERSION_KERNEL=$VERSION_KERNEL" >> $GITHUB_ENV
if git log --since="$(date -d 'yesterday 00:00' '+%Y-%m-%dT%H:%M:%S')" --until="$(date -d 'today 00:00' '+%Y-%m-%dT%H:%M:%S')" --pretty=format:"%h %s" --no-merges -- . ':(exclude)scripts/feeds' | grep -q .; then
VERSION_LOG=$(git log --since="$(date -d 'yesterday 00:00' '+%Y-%m-%dT%H:%M:%S')" --until="$(date -d 'today 00:00' '+%Y-%m-%dT%H:%M:%S')" --pretty=format:"%h %s" --no-merges -- . ':(exclude)scripts/feeds')
echo "VERSION_LOG=$VERSION_LOG" >> $GITHUB_ENV
else
echo "VERSION_LOG=暂无更新" >> $GITHUB_ENV
fi
- name: Generate Variables(生成变量)
run: |
cp $CONFIG_FILE $OPENWRT_PATH/.config
cd $OPENWRT_PATH
make defconfig > /dev/null 2>&1
SOURCE_REPO="$(echo $REPO_URL | awk -F '/' '{print $(NF)}')"
echo "SOURCE_REPO=$SOURCE_REPO" >> $GITHUB_ENV
DEVICE_TARGET=$(cat .config | grep CONFIG_TARGET_BOARD | awk -F '"' '{print $2}')
echo "DEVICE_TARGET=$DEVICE_TARGET" >> $GITHUB_ENV
DEVICE_SUBTARGET=$(cat .config | grep CONFIG_TARGET_SUBTARGET | awk -F '"' '{print $2}')
echo "DEVICE_SUBTARGET=$DEVICE_SUBTARGET" >> $GITHUB_ENV
- name: Cache Toolchain(缓存工具链)
if: env.CACHE_TOOLCHAIN == 'true'
uses: HiGarfield/cachewrtbuild@main
with:
ccache: false
mixkey: ${{ env.SOURCE_REPO }}-${{ env.REPO_BRANCH }}-${{ env.DEVICE_TARGET }}-${{ env.DEVICE_SUBTARGET }}
prefix: ${{ env.OPENWRT_PATH }}
- name: Install Feeds(安装feeds)
run: |
cd $OPENWRT_PATH
./scripts/feeds update -a
./scripts/feeds install -a
- name: Load Custom Configuration(加载自定义配置)
run: |
[ -e files ] && mv files $OPENWRT_PATH/files
[ -e $CONFIG_FILE ] && mv $CONFIG_FILE $OPENWRT_PATH/.config
- name: Download DL Package(下载DL软件包)
run: |
cd $OPENWRT_PATH
make defconfig
make download -j8
find dl -size -1024c -exec ls -l {} \;
find dl -size -1024c -exec rm -f {} \;
- name: Compile Firmware(开始编译固件)
id: compile
run: |
cd $OPENWRT_PATH
echo -e "$(nproc) thread compile"
make -j$(nproc) || make -j1 || make -j1 V=s
echo "status=success" >> $GITHUB_OUTPUT
echo "DATE=$(date +"%Y-%m-%d %H:%M:%S")" >> $GITHUB_ENV
echo "FILE_DATE=$(date +"%Y.%m.%d")" >> $GITHUB_ENV
- name: Check Space Usage(检查空间使用情况)
if: (!cancelled())
run: df -hT
- name: Upload Bin Directory(上传固件)
if: steps.compile.outputs.status == 'success' && env.UPLOAD_BIN_DIR == 'true'
uses: actions/upload-artifact@main
with:
name: ${{ env.SOURCE_REPO }}-bin-${{ env.DEVICE_TARGET }}-${{ env.DEVICE_SUBTARGET }}-${{ env.FILE_DATE }}
path: ${{ env.OPENWRT_PATH }}/bin
- name: Organize Files(整理文件)
if: steps.compile.outputs.status == 'success'
run: |
cd $OPENWRT_PATH/bin/targets/*/*
cat sha256sums
cp $OPENWRT_PATH/.config build.config
mv -f $OPENWRT_PATH/bin/packages/*/*/*.ipk packages
tar -zcf Packages.tar.gz packages
rm -rf packages feeds.buildinfo version.buildinfo
echo "FIRMWARE_PATH=$PWD" >> $GITHUB_ENV
- name: Upload Firmware To Artifact(将固件上传到Artifact)
if: steps.compile.outputs.status == 'success' && env.FIRMWARE_RELEASE != 'true'
uses: actions/upload-artifact@main
with:
name: ${{ env.SOURCE_REPO }}-firmware-${{ env.DEVICE_TARGET }}-${{ env.DEVICE_SUBTARGET }}-${{ env.FILE_DATE }}
path: ${{ env.FIRMWARE_PATH }}
- name: Upload Firmware To Release(发布固件)
if: steps.compile.outputs.status == 'success' && env.FIRMWARE_RELEASE == 'true'
uses: ncipollo/release-action@v1
with:
name: R${{ env.DATE }} for ${{ env.FIRMWARE_TAG }}
allowUpdates: true
tag: ${{ env.FIRMWARE_TAG }}
token: ${{ secrets.GITHUB_TOKEN }}
artifacts: ${{ env.FIRMWARE_PATH }}/*
body: |
**This is OpenWrt Firmware for ${{ env.FIRMWARE_TAG }}**
### 📒 固件信息(带WIFI)
- 这是带WIFI以及NSS的6.6内核固件
- 💻 这是 ${{ env.FIRMWARE_TAG }} 平台使用的 OpenWrt 固件
- ⚽ 固件源码: ${{ env.REPO_URL }}
- 💝 源码分支: ${{ env.REPO_BRANCH }}
- 🌐 默认地址: 192.168.1.1
- 🔑 默认密码: password
### 🧊 固件版本
- 固件内核版本:${{ env.VERSION_KERNEL }}
- 固件编译前最后一次➦[主源码](${{ env.REPO_URL }})更新记录
- ${{ env.VERSION_INFO }}
- 源码更新日志
${{ env.VERSION_LOG }}