321 lines (298 loc) · 15.5 KB
/
main.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
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
name: nanopi-r2s-packages
on:
push:
branches:
- master
paths:
- '.github/workflows/main.yml'
- 'base_rk3328.seed'
- 'app.rk3328.seed'
schedule:
- cron: '10 13 * * 5'
jobs:
build:
runs-on: ubuntu-latest
continue-on-error: true
strategy:
fail-fast: false
matrix:
experimental: [true]
if: github.event.repository.owner.id == github.event.sender.id
steps:
- name: Checkout
uses: actions/checkout@master
with:
ref: master
- name: Initialization Environment
env:
DEBIAN_FRONTEND: noninteractive
run: |
sudo rm -rf /etc/apt/sources.list.d
sudo apt-get update
sudo apt-get -y --no-install-recommends install build-essential asciidoc binutils bzip2 gawk gettext git libncurses5-dev libz-dev patch python3 unzip zlib1g-dev lib32gcc1 libc6-dev-i386 subversion flex uglifyjs gcc-multilib g++-multilib p7zip p7zip-full msmtp libssl-dev texinfo libglib2.0-dev xmlto qemu-utils upx libelf-dev autoconf automake libtool autopoint device-tree-compiler
curl https://raw.githubusercontent.com/friendlyarm/build-env-on-ubuntu-bionic/master/install.sh | sed '/#/d' | sed 's/\\//g' | sed 's/exit 0//g' | sed 's/sudo apt -y install//g' | sed 's/sudo apt-get -y install//g' | sed 's/:i386//g' | xargs sudo apt-get -y --no-install-recommends install
docker rmi `docker images -q`
sudo rm -rf /usr/share/dotnet /usr/local/lib/android/sdk /usr/local/share/boost /opt/ghc
- name: Install Repo
run: |
git clone https://github.com/friendlyarm/repo
sudo cp repo/repo /usr/bin/
- name: Init Source
run: |
mkdir friendlywrt-rk3328
cd friendlywrt-rk3328
repo init -u https://github.com/friendlyarm/friendlywrt_manifests -b master-v19.07.1 -m rk3328.xml --repo-url=https://github.com/friendlyarm/repo --no-clone-bundle --depth=1
repo sync -c --no-tags --no-clone-bundle -j8
cd friendlywrt/ && git fetch --unshallow
- name: Patch Kernel
run: |
. patch_kernel_5.4.sh
- name: Mods
run: |
cd friendlywrt-rk3328
. ../remove_unused_config.sh
. ../patch_dosth.sh
cat configs/config_rk3328 | grep "TARGET" >> ../base_rk3328.seed
cat ../base_rk3328.seed > configs/config_rk3328
echo '
CONFIG_PACKAGE_ipv6helper=y
CONFIG_PACKAGE_dnsmasq_full_dhcpv6=y
CONFIG_OPENSSL_ENGINE_BUILTIN=y
CONFIG_OPENSSL_WITH_DTLS=y
CONFIG_OPENSSL_WITH_EC2M=y
CONFIG_OPENSSL_WITH_NPN=y
CONFIG_PACKAGE_autocore=y
CONFIG_PACKAGE_htop=y
CONFIG_PACKAGE_diffutils=y
CONFIG_PACKAGE_vim-fuller=y
CONFIG_PACKAGE_pv=y
CONFIG_PACKAGE_pigz=y
CONFIG_PACKAGE_unzip=y
CONFIG_PACKAGE_losetup=y
CONFIG_PACKAGE_luci-app-frpc=y
CONFIG_PACKAGE_luci-app-netdata=y
CONFIG_LIBSODIUM_MINIMAL=y
CONFIG_PACKAGE_ddns-scripts_aliyun=y
CONFIG_PACKAGE_ddns-scripts_cloudflare.com-v4=y
CONFIG_PACKAGE_AdGuardHome=y
CONFIG_PACKAGE_luci-app-adguardhome=y
CONFIG_PACKAGE_qbittorrent=y
CONFIG_PACKAGE_rblibtorrent=y
CONFIG_PACKAGE_autosamba=y
CONFIG_PACKAGE_SAMBA_MAX_DEBUG_LEVEL=-1
CONFIG_PACKAGE_samba36-server=y
CONFIG_PACKAGE_luci-app-samba=y
CONFIG_PACKAGE_luci-i18n-samba-zh-cn=y
CONFIG_PACKAGE_luci-app-qbittorrent=y
CONFIG_PACKAGE_minidlna=y
CONFIG_PACKAGE_luci-app-minidlna=y
CONFIG_PACKAGE_luci-i18n-minidlna-zh-cn=y
CONFIG_PACKAGE_hd-idle=y
CONFIG_PACKAGE_luci-app-hd-idle=y
CONFIG_PACKAGE_luci-i18n-hd-idle-zh-cn=y
CONFIG_PACKAGE_qos-scripts=y
CONFIG_PACKAGE_sqm-scripts=y
CONFIG_PACKAGE_sqm-scripts-extra=y
CONFIG_PACKAGE_luci-app-qos=y
CONFIG_PACKAGE_luci-app-sqm=y
CONFIG_PACKAGE_luci-i18n-qos-zh-cn=y
CONFIG_PACKAGE_iptvhelper=y
CONFIG_PACKAGE_luci-app-iptvhelper=y
CONFIG_PACKAGE_mwan3=y
CONFIG_PACKAGE_luci-app-mwan3=y
CONFIG_PACKAGE_luci-i18n-mwan3-zh-cn=y
CONFIG_PACKAGE_luci-app-mwan3helper=y
CONFIG_PACKAGE_luci-app-syncdial=y
CONFIG_PACKAGE_luci-app-ssr-plus=y
CONFIG_PACKAGE_luci-app-ssr-plus_INCLUDE_DNS2SOCKS=y
CONFIG_PACKAGE_luci-app-ssr-plus_INCLUDE_Redsocks2=y
CONFIG_PACKAGE_luci-app-ssr-plus_INCLUDE_Shadowsocks=y
CONFIG_PACKAGE_luci-app-ssr-plus_INCLUDE_Simple_obfs=y
CONFIG_PACKAGE_luci-app-ssr-plus_INCLUDE_Trojan=y
CONFIG_PACKAGE_luci-app-ssr-plus_INCLUDE_V2ray=y
CONFIG_PACKAGE_luci-app-ssr-plus_INCLUDE_V2ray_plugin=y
CONFIG_PACKAGE_luci-app-ssrserver-python=y
CONFIG_PACKAGE_luci-app-uhttpd=y
CONFIG_PACKAGE_luci-app-unblockmusic=y
CONFIG_PACKAGE_luci-app-v2ray-server=y
CONFIG_PACKAGE_luci-app-vssr=y
CONFIG_PACKAGE_luci-theme-argon=y
CONFIG_PACKAGE_luci-theme-material=y
CONFIG_PACKAGE_luci-theme-netgear=y
CONFIG_PACKAGE_luci-app-unblockmusic=y
CONFIG_PACKAGE_kmod-rtl8xxxu=y
CONFIG_UnblockNeteaseMusic_Go=y
CONFIG_UnblockNeteaseMusic_NodeJS=y
CONFIG_PACKAGE_luci-app-passwall=y
CONFIG_PACKAGE_luci-app-passwall_INCLUDE_Brook=y
CONFIG_PACKAGE_luci-app-passwall_INCLUDE_Shadowsocks=y
CONFIG_PACKAGE_luci-app-passwall_INCLUDE_Trojan=y
CONFIG_PACKAGE_luci-app-passwall_INCLUDE_simple-obfs=y
CONFIG_PACKAGE_luci-app-passwall_INCLUDE_v2ray-plugin=y
CONFIG_PACKAGE_luci-app-openclash=y
CONFIG_PACKAGE_luci-app-r2sflasher=y
CONFIG_PACKAGE_luci-app-zerotier=y
CONFIG_PACKAGE_kmod-br-netfilter=y
CONFIG_BRIDGE_NETFILTER=m
# CONFIG_PACKAGE_luci-app-accesscontrol is not set
# CONFIG_PACKAGE_luci-app-nlbwmon is not set
# CONFIG_PACKAGE_nlbwmon is not set
# CONFIG_PACKAGE_luci-app-pppoe-relay is not set
# CONFIG_PACKAGE_luci-app-pppoe-server is not set
# CONFIG_PACKAGE_luci-app-pptp-vpnserver-manyusers is not set
# CONFIG_PACKAGE_luci-app-ssr-python-pro-server is not set
# CONFIG_PACKAGE_luci-app-v2ray-server is not set
# CONFIG_PACKAGE_luci-app-vssr_INCLUDE_ShadowsocksR_Socks is not set
# CONFIG_TARGET_ROOTFS_TARGZ is not set
# CONFIG_OPENSSL_ENGINE_BUILTIN_DEVCRYPTO is not set
# CONFIG_PACKAGE_kmod-crypto-authenc is not set
# CONFIG_PACKAGE_kmod-cryptodev is not set
# CONFIG_PACKAGE_libopenssl-devcrypto is not set
# CONFIG_V2RAY_COMPRESS_UPX is not set
' >> configs/config_rk3328
cat ../app.rk3328.seed >> configs/config_rk3328
cd friendlywrt
git config --local user.email "action@github.com" && git config --local user.name "GitHub Action"
git remote add upstream https://github.com/coolsnowwolf/lede && git fetch upstream
git rebase adc1a9a3676b8d7be1b48b5aed185a94d8e42728^ --onto upstream/master -X theirs
#rm -rf package/kernel/mt76/Makefile package/network/services/hostapd package/kernel/mac80211
#git checkout 0a395d6fd6c38c554709197ae3cd6315f143cd7a -- package/kernel/mt76/Makefile package/network/services/hostapd package/kernel/mac80211
rm target/linux/rockchip-rk3328/patches-4.14/0001-net-thunderx-workaround-BGX-TX-Underflow-issue.patch
sed -i '/ipv6/,+3d' package/base-files/files/root/setup.sh
git checkout upstream/master -- feeds.conf.default
sed -i '5s/#src-git/src-git/g' feeds.conf.default
cd package/lean/
#git clone https://github.com/jerrykuku/lua-maxminddb.git
#git clone https://github.com/jerrykuku/luci-app-vssr.git
#cd luci-app-vssr/root/etc/
#echo 'china_ssr.txt
#config/black.list
#config/white.list
#dnsmasq.oversea/oversea_list.conf
#dnsmasq.ssr/ad.conf
#dnsmasq.ssr/gfw_base.conf' | xargs rm
#cd ../../../
rm -rf luci-theme-argon
git clone -b 18.06 https://github.com/jerrykuku/luci-theme-argon.git
cd ../../
git apply ../../enable_autocore.diff
#git apply ../../fix_cpufreq.diff
sed -i '/uci commit luci/i\uci set luci.main.mediaurlbase="/luci-static/argon"' package/lean/default-settings/files/zzz-default-settings
sed -i '/exit/i\chown -R root:root /usr/share/netdata/web' package/lean/default-settings/files/zzz-default-settings
sed -i '/exit/i\find /etc/rc.d/ -name *docker* -delete' package/lean/default-settings/files/zzz-default-settings
sed -i 's/option fullcone\t1/option fullcone\t0/' package/network/config/firewall/files/firewall.config
sed -i '/8.8.8.8/d' package/base-files/files/root/setup.sh
sed -i 's/192.168.2.1/192.168.31.3/g' package/base-files/files/root/setup.sh
sed -i 's/addr_offset=2/addr_offset=31/g' package/base-files/files/bin/config_generate
sed -i 's/ipad=${ipaddr:-"192.168.$((addr_offset++)).1"}/ipad=${ipaddr:-"192.168.$((addr_offset++)).3"}/g' package/base-files/files/bin/config_generate
sed -i 's/ipaddr:-"192.168.1.1"/ipaddr:-"192.168.31.3"/g' package/base-files/files/bin/config_generate
mv ../../scripts/one_time_init.sh package/base-files/files/usr/bin && sed -i '/exit/i\/bin/sh /usr/bin/one_time_init.sh &' package/base-files/files/etc/rc.local
mv ../../scripts/check_network.sh package/base-files/files/usr/bin && sed -i '/exit/i\/bin/sh /usr/bin/check_network.sh &' package/base-files/files/etc/rc.local
#mv ../../scripts/autoupdate2.sh package/base-files/files/root/au.sh && chmod +x package/base-files/files/root/au.sh
mv ../../scripts/flash_rom.sh package/base-files/files/root/flash_rom.sh && chmod +x package/base-files/files/root/flash_rom.sh
echo -e '\nMr.K Build\n' >> package/base-files/files/etc/banner
- name: Add AdGuardHome
run: |
git clone -b master --single-branch https://github.com/rufengsuixing/luci-app-adguardhome
mv luci-app-adguardhome friendlywrt-rk3328/friendlywrt/package
mkdir -p friendlywrt-rk3328/friendlywrt/package/adguardhome && cd friendlywrt-rk3328/friendlywrt/package/adguardhome
wget https://raw.githubusercontent.com/Lienol/openwrt/dev-19.07/package/diy/adguardhome/Makefile
- name: Add luci-app-koolproxyR
run: |
git clone -b master --single-branch https://github.com/project-openwrt/luci-app-koolproxyR.git
mv luci-app-koolproxyR friendlywrt-rk3328/friendlywrt/package
- name: Add Luci-app-autorewan
run: |
git clone -b master --single-branch https://github.com/kongfl888/luci-app-autorewan.git
mv luci-app-autorewan friendlywrt-rk3328/friendlywrt/package
- name: Add smartdns
run: |
git clone -b master --single-branch https://github.com/pymumu/openwrt-smartdns.git
git clone -b lede --single-branch https://github.com/pymumu/luci-app-smartdns.git
mv luci-app-smartdns friendlywrt-rk3328/friendlywrt/package
mkdir -p friendlywrt-rk3328/friendlywrt/package/net/smartdns
mv openwrt-smartdns/* friendlywrt-rk3328/friendlywrt/package/net/smartdns
- name: Add OpenAppFilter
run: |
git clone -b master --single-branch https://github.com/destan19/OpenAppFilter.git
mv OpenAppFilter/oaf friendlywrt-rk3328/friendlywrt/package
mv OpenAppFilter/open-app-filter friendlywrt-rk3328/friendlywrt/package
mv OpenAppFilter/luci-app-oaf friendlywrt-rk3328/friendlywrt/package
- name: Add IPTV Helper
run: |
git clone -b master --single-branch https://github.com/riverscn/openwrt-iptvhelper.git
mv openwrt-iptvhelper/iptvhelper friendlywrt-rk3328/friendlywrt/package
mv openwrt-iptvhelper/luci-app-iptvhelper friendlywrt-rk3328/friendlywrt/package
sed -i 's/+luci-compat //' friendlywrt-rk3328/friendlywrt/package/luci-app-iptvhelper/Makefile
sed -i 's/+luci-compat//g' friendlywrt-rk3328/friendlywrt/package/luci-app-iptvhelper/Makefile
- name: Add Luci-app-r2sflasher
run: |
git clone -b master --single-branch https://github.com/kongfl888/luci-app-r2sflasher.git
mv luci-app-r2sflasher friendlywrt-rk3328/friendlywrt/package
- name: Add OpenClash
run: |
git clone -b master https://github.com/vernesong/OpenClash.git
mv OpenClash/luci-app-openclash friendlywrt-rk3328/friendlywrt/package
cd friendlywrt-rk3328/friendlywrt/package/base-files/files
mkdir -p etc/openclash/core && cd etc/openclash/core
curl -L https://github.com/vernesong/OpenClash/releases/download/Clash/clash-linux-armv8.tar.gz | tar zxf -
chmod +x clash
- name: Add Passwall
run: |
cd friendlywrt-rk3328/friendlywrt
echo -e '\nsrc-git lienol https://github.com/SuLingGG/openwrt-package' >> feeds.conf.default
./scripts/feeds update -a
rm -rf feeds/lienol/lienol/ipt2socks
rm -rf feeds/lienol/lienol/shadowsocksr-libev
rm -rf feeds/lienol/lienol/pdnsd-alt
rm -rf feeds/lienol/package/verysync
rm -rf feeds/lienol/lienol/luci-app-verysync
rm -rf package/lean/luci-app-kodexplorer
rm -rf package/lean/luci-app-pppoe-relay
rm -rf package/lean/luci-app-pptp-server
rm -rf package/lean/luci-app-v2ray-server
./scripts/feeds install -a
- name: Build FriendlyWrt
run: |
cd friendlywrt-rk3328
sed -i 's/set -eu/set -u/' scripts/mk-friendlywrt.sh
./build.sh nanopi_r2s.mk || echo "0"
# - name: Zip Files
# run: |
# gzip friendlywrt-rk3328/out/*.img
- name: Assemble Artifact
id: assemble_artifact
run: |
rm -rf ./r2srom/
mkdir -p ./r2srom/
#mv friendlywrt-rk3328/out/*img* ./r2srom/
cp friendlywrt-rk3328/friendlywrt/.config ./r2srom/
mkdir -p ./r2srom/ipk/
. ./scripts/copyipk.sh
cd ./r2srom/ipk/
sha256sum *ipk > packages.sha256
cd ../../
cp ./README.txt ./r2srom/
zip -r artifact.zip ./r2srom/
release_tag="R2S-Packages-$(date +%Y-%m-%d-%H)"
echo "##[set-output name=release_tag;]$release_tag"
- name: Create Release
id: create_release
uses: actions/create-release@v1
env:
GITHUB_TOKEN: ${{ secrets.sec_token1 }}
with:
tag_name: ${{ steps.assemble_artifact.outputs.release_tag }}
release_name: ${{ steps.assemble_artifact.outputs.release_tag }}
draft: false
prerelease: false
- name: Upload Release Asset
id: upload-release-asset
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.sec_token1 }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps
asset_path: ./artifact.zip
asset_name: ${{ steps.assemble_artifact.outputs.release_tag }}-ROM.zip
asset_content_type: application/zip