Files
nanopi-openwrt-r1s-h3/.github/workflows/r2s_lean_minimal.yml
2020-03-07 03:47:19 +08:00

203 lines
9.7 KiB
YAML

name: r2s Lean版openwrt minimal
on:
push:
branches:
- master
paths:
- '.github/workflows/r2s_lean_minimal.yml_'
schedule:
- cron: '10 08 * * *'
jobs:
build:
runs-on: ubuntu-latest
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 install bc build-essential asciidoc binutils bzip2 gawk gettext git libncurses5-dev libz-dev patch unzip zlib1g-dev lib32gcc1 libc6-dev-i386 subversion flex uglifyjs git-core gcc-multilib p7zip p7zip-full msmtp libssl-dev texinfo libglib2.0-dev xmlto qemu-utils upx libelf-dev autoconf automake libtool autopoint device-tree-compiler
wget -O - https://raw.githubusercontent.com/friendlyarm/build-env-on-ubuntu-bionic/master/install.sh | bash
sudo rm -rf /usr/share/dotnet /usr/local/lib/android/sdk
- 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
repo sync -c --no-clone-bundle -j8
- name: Patch Kernel
run: |
cd friendlywrt-rk3328
cd kernel/ && git apply ../../add_fullconenat.diff && cd ../
git clone https://github.com/openwrt/openwrt
rm openwrt/target/linux/generic/pending-5.4/403-mtd-hook-mtdsplit-to-Kbuild.patch
rm openwrt/target/linux/generic/hack-5.4/700-swconfig_switch_drivers.patch
cd openwrt/
./scripts/patch-kernel.sh ../kernel target/linux/generic/backport-5.4
./scripts/patch-kernel.sh ../kernel target/linux/generic/pending-5.4
./scripts/patch-kernel.sh ../kernel target/linux/generic/hack-5.4
cd ../
wget https://github.com/torvalds/linux/raw/master/scripts/kconfig/merge_config.sh && chmod +x merge_config.sh
grep -i '_NETFILTER_\|FLOW' ../.config.override > .config.override
./merge_config.sh -m .config.override kernel/arch/arm64/configs/nanopi-r2_linux_defconfig && mv .config kernel/arch/arm64/configs/nanopi-r2_linux_defconfig
- name: Mods
run: |
cd friendlywrt-rk3328
. ../remove_unused_config.sh
#sed -i '/iptparser/d' configs/config_rk3328
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_htop=y
CONFIG_PACKAGE_luci-app-frpc=y
CONFIG_PACKAGE_luci-app-uhttpd=y
CONFIG_PACKAGE_luci-app-netdata=y
CONFIG_PACKAGE_luci-app-v2ray-server=y
CONFIG_PACKAGE_luci-app-ssrserver-python=y
CONFIG_PACKAGE_luci-app-ssr-plus_INCLUDE_Shadowsocks=y
CONFIG_PACKAGE_luci-app-ssr-plus_INCLUDE_ShadowsocksR_Server=y
CONFIG_PACKAGE_luci-app-ssr-plus_INCLUDE_ShadowsocksR_Socks=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-vssr=y
CONFIG_PACKAGE_luci-app-vssr_INCLUDE_V2ray=y
CONFIG_PACKAGE_luci-app-vssr_INCLUDE_Trojan=y
CONFIG_PACKAGE_luci-app-vssr_INCLUDE_ShadowsocksR_Socks=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_UnblockNeteaseMusic_Go=y
CONFIG_UnblockNeteaseMusic_NodeJS=y
# CONFIG_OPENSSL_ENGINE_BUILTIN_DEVCRYPTO is not set
# CONFIG_PACKAGE_kmod-cryptodev is not set
# CONFIG_PACKAGE_libopenssl-devcrypto is not set
# CONFIG_PACKAGE_iptables-mod-conntrack-extra is not set
# CONFIG_PACKAGE_iptables-mod-ipopt is not set
# CONFIG_PACKAGE_kmod-ifb is not set
# CONFIG_PACKAGE_kmod-ipt-conntrack-extra is not set
# CONFIG_PACKAGE_kmod-ipt-ipopt is not set
# CONFIG_PACKAGE_kmod-nf-conntrack-netlink is not set
# CONFIG_PACKAGE_kmod-sched-cake is not set
# CONFIG_PACKAGE_kmod-sched-core is not set
# CONFIG_PACKAGE_kmod-tun is not set
# CONFIG_PACKAGE_libminiupnpc is not set
# CONFIG_PACKAGE_libnatpmp is not set
# CONFIG_PACKAGE_luci-app-accesscontrol is not set
# CONFIG_PACKAGE_luci-app-arpbind is not set
# CONFIG_PACKAGE_luci-app-nlbwmon is not set
# CONFIG_PACKAGE_luci-app-sqm is not set
# CONFIG_PACKAGE_luci-app-vsftpd is not set
# CONFIG_PACKAGE_luci-app-zerotier is not set
# CONFIG_PACKAGE_nlbwmon is not set
# CONFIG_PACKAGE_sqm-scripts is not set
# CONFIG_PACKAGE_tc is not set
# CONFIG_PACKAGE_vsftpd-alt is not set
# CONFIG_PACKAGE_zerotier is not set
# CONFIG_TARGET_ROOTFS_TARGZ is not set
# CONFIG_V2RAY_COMPRESS_UPX is not set' >> 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
git revert --no-edit f092ca098e80c667b10cdd1dba328506a2673c1d
git checkout upstream/master -- feeds.conf.default
#git apply ../../0001-fix-upx.patch
#sed -i '/ucl upx/d' tools/Makefile
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 ../../
sed -i '/exit/i\mv /etc/rc.d/S25dockerd /etc/rc.d/S92dockerd && sed -i "s/START=25/START=92/g" S92dockerd' package/lean/default-settings/files/zzz-default-settings
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 '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
echo -e '\nDYC Build\n' >> package/base-files/files/etc/banner
rm target/linux/rockchip-rk3328/base-files/etc/modules.d/10-rtl8821cu
- name: Mod luci
run: |
cd friendlywrt-rk3328/friendlywrt
./scripts/feeds update -a && ./scripts/feeds install -a
sed -i '/Load Average/i\<tr><td width="33%"><%:CPU Temperature%></td><td><%=luci.sys.exec("cut -c1-2 /sys/class/thermal/thermal_zone0/temp")%></td></tr>' feeds/luci/modules/luci-mod-admin-full/luasrc/view/admin_status/index.htm
sed -i 's/pcdata(boardinfo.system or "?")/"ARMv8"/' feeds/luci/modules/luci-mod-admin-full/luasrc/view/admin_status/index.htm
- name: Build FriendlyWrt
run: |
cd friendlywrt-rk3328
sed -i 's/set -eu/set -u/' scripts/mk-friendlywrt.sh
./build.sh nanopi_r2s.mk
- name: Zip Files
run: |
gzip friendlywrt-rk3328/out/*.img
- name: Assemble Artifact
id: assemble_artifact
run: |
rm -rf ./artifact/
mkdir -p ./artifact/
mv friendlywrt-rk3328/out/*img* ./artifact/
cp friendlywrt-rk3328/friendlywrt/.config ./artifact/
zip -r artifact.zip ./artifact/
release_tag="R2S-Lean-$(date +%Y-%m-%d)-Minimal"
echo "##[set-output name=release_tag;]$release_tag"
- name: Create Release
id: create_release
uses: actions/create-release@v1
env:
GITHUB_TOKEN: ${{ secrets.sec_token }}
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_token }}
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