Files
nanopi-openwrt-r1s-h3/.github/workflows/r1s_lean_h3.yml
2020-08-15 16:14:11 +08:00

166 lines
8.0 KiB
YAML

name: r1s(H3) Lean版openwrt
on:
push:
branches:
- master
paths:
- '.github/workflows/r1s_lean_h3.yml'
schedule:
- cron: '10 10 */4 * *'
jobs:
build:
runs-on: ubuntu-latest
if: github.repository == 'klever1988/nanopi-openwrt'
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-h3
cd friendlywrt-h3
repo init -u https://github.com/friendlyarm/friendlywrt_manifests -b master-v19.07.1 -m h3.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: Mods
run: |
cd friendlywrt-h3
sed -i 's/CONFIG_TARGET_MULTI_PROFILE/CONFIG_TARGET_sunxi_cortexa7_Default/' configs/config_h3
sed -i '/CONFIG_TARGET_DEVICE/d' configs/config_h3
. ../remove_unused_config.sh
cat ../app_config.seed >> configs/config_h3
echo '# CONFIG_V2RAY_COMPRESS_UPX is not set' >> configs/config_h3
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/openwrt && git fetch upstream
git checkout upstream/lede-17.01 -b tmp
#git checkout 33f7cb735300bd9a099995236ed768c8925fec75 -- target/linux/sunxi/image/
git rm README.md
git commit -m 'reset'
git checkout master-v19.07.1
git rebase adc1a9a3676b8d7be1b48b5aed185a94d8e42728^ --onto tmp -X theirs
rm -f target/linux/allwinner-h5/patches-4.14/0001-net-thunderx-workaround-BGX-TX-Underflow-issue.patch target/linux/generic/hack-4.14/999-net-patch-linux-kernel-to-support-shortcut-fe.patch
git checkout upstream/lede-17.01 -- feeds.conf.default
sed -i -E 's/#(src-git.+)(helloworld.+)/\1\2/' 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
#dnsmasq.ssr/gfw_list.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
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
echo -e '\nDYC Build\n' >> package/base-files/files/etc/banner
- name: Build FriendlyWrt
run: |
cd friendlywrt-h3
cp configs/config_h3 friendlywrt/.config
cd friendlywrt
./scripts/feeds update -a && ./scripts/feeds install -a
sed -i '/STAMP_BUILT/d' feeds/packages/utils/runc/Makefile feeds/packages/utils/containerd/Makefile #fix compile error
make defconfig && make download -j8
make -s -j$(nproc) || make V=s -j1
#- name: Patch Kernel
# run: |
# cd friendlywrt-h5
# #cd kernel/ && git apply ../../add_fullconenat.diff && cd ../
# git clone https://github.com/openwrt/openwrt
# cd openwrt/
# git checkout 5387bc9cbb9ed205f08766523a296f21dfa83b56
# rm target/linux/generic/backport-4.14/400-v4.16-leds-trigger-Introduce-a-NETDEV-trigger.patch
# rm target/linux/generic/pending-4.14/403-mtd-hook-mtdsplit-to-Kbuild.patch
# rm target/linux/generic/hack-4.14/700-swconfig_switch_drivers.patch
# ./scripts/patch-kernel.sh ../kernel target/linux/generic/backport-4.14
# ./scripts/patch-kernel.sh ../kernel target/linux/generic/pending-4.14
# ./scripts/patch-kernel.sh ../kernel target/linux/generic/hack-4.14
# cd ../kernel && git checkout -- drivers/mtd/ && cd ../
# find friendlywrt/ -type f -name .config.override -exec cp {} ../ \;
# grep -i 'FILTER_\|FLOW' ../.config.override > .config.override
# wget https://github.com/torvalds/linux/raw/master/scripts/kconfig/merge_config.sh && chmod +x merge_config.sh
# ./merge_config.sh -m .config.override kernel/arch/arm64/configs/sunxi_arm64_defconfig && mv .config kernel/arch/arm64/configs/sunxi_arm64_defconfig
- name: Build SD img
run: |
cd friendlywrt-h3
sed -i '130,150 {/build_friendlywrt/d}' scripts/build.sh
echo -e '\nCONFIG_TCP_CONG_ADVANCED=y' >> kernel/arch/arm/configs/sunxi_defconfig
echo -e '\nCONFIG_TCP_CONG_BBR=m' >> kernel/arch/arm/configs/sunxi_defconfig
./build.sh nanopi_r1s_h3.mk
- name: Zip Files
run: |
gzip friendlywrt-h3/out/*.img
- name: Assemble Artifact
id: assemble_artifact
run: |
rm -rf ./artifact/
mkdir -p ./artifact/
mv friendlywrt-h3/out/*img* ./artifact/
cp friendlywrt-h3/friendlywrt/.config ./artifact/
cd ./artifact/
md5sum *img* > md5sum.txt
cd ..
zip -r artifact.zip ./artifact/
release_tag="R1S-H3-$(date +%Y-%m-%d)"
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