Lede-OpenWrt 固件 #31
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# | |
# | |
# 感谢p3terx大神的一键编译脚本 | |
# | |
# Copyright (C) 2019 P3TERX <https://p3terx.com> | |
# <https://github.com/P3TERX/Actions-OpenWrt.git> | |
# | |
#修改以下代码或者开启触发开关都好,要严格按格式对好,前面有多少空格也要看清楚 | |
# | |
name: Lede-OpenWrt 固件 | |
on: | |
repository_dispatch: | |
#编辑任意指定文件触发开始编译(去掉下面5个#开启,最下面一行是指定修改什么文件就触发编译,我现在是修改diy.config文件触发) | |
# push: | |
# branches: | |
# - master | |
# paths: | |
# - 'diy.config' | |
#release发布触发开始编译(只是一个触发条件,不会发布的,又麻烦,没卵用,不用研究) | |
# release: | |
# types: published | |
#定时触发开始编译(utc時間) | |
# schedule: | |
# - cron: 0 8 */9 * * | |
#点☆Star触发开始编译 | |
watch: | |
# types: started | |
env: | |
REPO_URL: https://github.com/coolsnowwolf/lede | |
REPO_BRANCH: master | |
FEEDS_CONF: feeds.conf.default | |
CONFIG_FILE: diy.config | |
DIY_OP_SH: diy-lede.sh | |
SSH_ACTIONS: true | |
UPLOAD_BIN_DIR: false | |
UPLOAD_FIRMWARE: true | |
UPLOAD_COWTRANSFER: false | |
UPLOAD_WETRANSFER: false | |
TZ: Asia/Shanghai | |
jobs: | |
build: | |
name: 编译OpenWrt-lede固件 | |
runs-on: ubuntu-18.04 | |
if: github.event.repository.owner.id == github.event.sender.id | |
steps: | |
- name: 准备完毕 | |
uses: actions/checkout@main | |
- name: 开始安装编译所需系统 | |
env: | |
DEBIAN_FRONTEND: noninteractive | |
run: | | |
sudo rm -rf /etc/apt/sources.list.d/* /usr/share/dotnet /usr/local/lib/android /opt/ghc | |
sudo -E apt-get -qq update | |
sudo -E apt-get -qq install $(curl -fsSL git.io/depends-ubuntu-1804) | |
sudo -E apt-get -qq autoremove --purge | |
sudo -E apt-get -qq clean | |
sudo timedatectl set-timezone "$TZ" | |
sudo mkdir -p /workdir | |
sudo chown $USER:$GROUPS /workdir | |
- name: 下载lede源码 | |
working-directory: /workdir | |
run: | | |
df -hT $PWD | |
git clone --depth 1 $REPO_URL -b $REPO_BRANCH openwrt | |
ln -sf /workdir/openwrt $GITHUB_WORKSPACE/openwrt | |
- name: 加载diy-lede.sh跟feeds.conf.default设置 | |
run: | | |
[ -e $FEEDS_CONF ] && mv $FEEDS_CONF openwrt/feeds.conf.default | |
chmod +x $DIY_OP_SH | |
cd openwrt | |
$GITHUB_WORKSPACE/$DIY_OP_SH | |
- name: 下载diy-lede.sh跟feeds.conf.default自定义软件 | |
run: cd openwrt && ./scripts/feeds update -a | |
- name: 安装自定义软件 | |
run: cd openwrt && ./scripts/feeds install -a | |
- name: 加载diy.config设置 | |
run: | | |
[ -e files ] && mv files openwrt/files | |
[ -e $CONFIG_FILE ] && mv $CONFIG_FILE openwrt/.config | |
- name: SSH远程连接服务器配置固件 | |
uses: P3TERX/debugger-action@main | |
if: env.SSH_ACTIONS == 'true' || contains(github.event.action, 'ssh') | |
- name: 下载软件包 | |
id: package | |
run: | | |
cd openwrt | |
make defconfig | |
make download -j8 | |
find dl -size -1024c -exec ls -l {} \; | |
find dl -size -1024c -exec rm -f {} \; | |
- name: 开始编译固件 | |
id: compile | |
run: | | |
cd openwrt | |
echo -e "$(nproc) thread compile" | |
make -j$(nproc) || make -j1 || make -j1 V=s | |
echo "::set-output name=status::success" | |
grep '^CONFIG_TARGET.*DEVICE.*=y' .config | sed -r 's/.*DEVICE_(.*)=y/\1/' > DEVICE_NAME | |
[ -s DEVICE_NAME ] && echo "::set-env name=DEVICE_NAME::_$(cat DEVICE_NAME)" | |
echo "::set-env name=FILE_DATE::_$(date +"%Y%m%d%H%M")" | |
- name: 检查github储存空间情况 | |
if: (!cancelled()) | |
run: df -hT | |
- name: 上传bin文件夹(固件+ipk)在github空间 | |
uses: actions/upload-artifact@main | |
if: steps.compile.outputs.status == 'success' && env.UPLOAD_BIN_DIR == 'true' | |
with: | |
name: OpenWrt_Lede_bin${{ env.DEVICE_NAME }}${{ env.FILE_DATE }} | |
path: openwrt/bin | |
- name: 整理固件文件夹 | |
id: organize | |
if: env.UPLOAD_FIRMWARE == 'true' && !cancelled() | |
run: | | |
cd openwrt/bin/targets/*/* | |
rm -rf packages | |
echo "::set-env name=FIRMWARE::$PWD" | |
echo "::set-output name=status::success" | |
- name: 上传固件在github空间 | |
uses: actions/upload-artifact@main | |
if: steps.organize.outputs.status == 'success' && !cancelled() | |
with: | |
name: OpenWrt_Lede${{ env.DEVICE_NAME }}${{ env.FILE_DATE }} | |
path: ${{ env.FIRMWARE }} | |
- name: 上传固件到cowtransfer网盘 | |
if: steps.organize.outputs.status == 'success' && env.UPLOAD_COWTRANSFER == 'true' && !cancelled() | |
run: | | |
curl -fsSL git.io/file-transfer | sh | |
./transfer cow --block 2621440 -s -p 64 --no-progress ${FIRMWARE} 2>&1 | tee cowtransfer.log | |
echo "::warning file=cowtransfer.com::$(cat cowtransfer.log | grep https)" | |
- name: 上传固件到WeTransfer网盘 | |
if: steps.organize.outputs.status == 'success' && env.UPLOAD_WETRANSFER == 'true' && !cancelled() | |
run: | | |
curl -fsSL git.io/file-transfer | sh | |
./transfer wet -s -p 16 --no-progress ${FIRMWARE} 2>&1 | tee wetransfer.log | |
echo "::warning file=wetransfer.com::$(cat wetransfer.log | grep https)" |