OpenWrt-lede6.6 #76
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
#================================================= | |
# https://github.com/P3TERX/Actions-OpenWrt | |
# Description: Build OpenWrt using GitHub Actions | |
# Lisence: MIT | |
# Author: P3TERX | |
# Blog: https://p3terx.com | |
#================================================= | |
name: OpenWrt-lede6.6 | |
on: | |
repository_dispatch: | |
workflow_dispatch: | |
inputs: | |
ssh: | |
description: 'SSH connection to Actions' | |
required: false | |
default: 'false' | |
schedule: | |
- cron: 0 18 */5 * * | |
env: | |
REPO_URL: https://github.com/coolsnowwolf/lede | |
REPO_BRANCH: master | |
FEEDS_CONF: feeds.conf.default | |
CONFIG_FILE: 6.0.config | |
DIY_P1_SH: diy6.0.sh | |
DIY_P2_SH: diy.sh | |
SSH_ACTIONS: false | |
UPLOAD_BIN_DIR: false | |
UPLOAD_FIRMWARE: true | |
UPLOAD_COWTRANSFER: false | |
UPLOAD_WETRANSFER: false | |
UPLOAD_RELEASE: true | |
TZ: Asia/Shanghai | |
jobs: | |
build: | |
runs-on: ubuntu-20.04 | |
steps: | |
- name: Before freeing up disk space | |
run: | | |
echo "Before freeing up disk space" | |
echo "==============================================================================" | |
df -hT | |
echo "==============================================================================" | |
- name: "Optimize Disk Space" | |
uses: "hugoalh/[email protected]" | |
with: | |
operate_sudo: "True" | |
general_include: ".+" | |
general_exclude: |- | |
^GCC$ | |
^G\+\+$ | |
Clang | |
LLVM | |
docker_include: ".+" | |
docker_prune: "True" | |
docker_clean: "True" | |
apt_prune: "True" | |
apt_clean: "True" | |
homebrew_prune: "True" | |
homebrew_clean: "True" | |
npm_prune: "True" | |
npm_clean: "True" | |
os_swap: "True" | |
- name: Freeing up disk space | |
uses: easimon/maximize-build-space@master | |
with: | |
root-reserve-mb: 2048 | |
swap-size-mb: 1 | |
remove-dotnet: 'true' | |
remove-android: 'true' | |
remove-haskell: 'true' | |
remove-codeql: 'true' | |
remove-docker-images: 'true' | |
- name: Free up disk space complete | |
run: | | |
echo "Free up disk space complete" | |
echo "==============================================================================" | |
df -hT | |
echo "==============================================================================" | |
- name: 检查项目分支 | |
uses: actions/checkout@main | |
- name: 安装编译环境 | |
env: | |
DEBIAN_FRONTEND: noninteractive | |
run: | | |
sudo -E apt-get -qq update | |
sudo -E apt-get -qq install $(curl -fsSL https://github.com/firkerword/openwrt-list/raw/master/depends-ubuntu-2004) | |
sudo -E apt-get -qq autoremove --purge | |
sudo -E apt-get -qq clean | |
sudo rm -rf /etc/apt/sources.list.d/* /usr/local/lib/android /opt/ghc /usr/share/dotnet /usr/local/graalvm /usr/local/.ghcup \ | |
/usr/local/share/powershell /usr/local/share/chromium /usr/local/lib/node_modules | |
sudo timedatectl set-timezone "$TZ" | |
sudo chown $USER:$GROUPS $GITHUB_WORKSPACE | |
- name: 查看磁盘 | |
run: df -hT | |
- name: 下载固件源码 | |
working-directory: ./ | |
run: | | |
git clone $REPO_URL -b $REPO_BRANCH openwrt | |
cd openwrt | |
echo "DATE=$(date "+%Y-%m-%d %H:%M:%S")" >> $GITHUB_ENV | |
- name: 加载自定义设置 | |
run: | | |
[ -e $FEEDS_CONF ] && mv $FEEDS_CONF openwrt/feeds.conf.default | |
chmod +x $DIY_P1_SH | |
cd openwrt | |
$GITHUB_WORKSPACE/$DIY_P1_SH | |
- name: 下载插件 | |
run: cd openwrt && ./scripts/feeds update -a | |
- name: 读取插件 | |
run: cd openwrt && ./scripts/feeds install -a | |
- name: 更改设置 | |
run: | | |
[ -e files ] && mv files openwrt/files | |
[ -e $CONFIG_FILE ] && mv $CONFIG_FILE openwrt/.config | |
chmod +x $DIY_P2_SH | |
cd openwrt | |
$GITHUB_WORKSPACE/$DIY_P2_SH | |
- name: SSH链接管理 | |
uses: P3TERX/[email protected] | |
if: (github.event.inputs.ssh == 'true' && github.event.inputs.ssh != 'false') || contains(github.event.action, 'ssh') | |
env: | |
TELEGRAM_CHAT_ID: ${{ secrets.TELEGRAM_CHAT_ID }} | |
TELEGRAM_BOT_TOKEN: ${{ secrets.TELEGRAM_BOT_TOKEN }} | |
- 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 "status=success" >> $GITHUB_OUTPUT | |
grep '^CONFIG_TARGET.*DEVICE.*=y' .config | sed -r 's/.*DEVICE_(.*)=y/\1/' > DEVICE_NAME | |
[ -s DEVICE_NAME ] && echo "DEVICE_NAME=_$(cat DEVICE_NAME)" >> $GITHUB_ENV | |
echo "FILE_DATE=_$(date +"%Y%m%d%H%M")" >> $GITHUB_ENV | |
echo "FILE_TIME=$(date "+%Y年%m月%d日-%H点")" >> $GITHUB_ENV | |
echo "TAG_TIME=$(date +"%Y.%m.%d-%H%M")" >> $GITHUB_ENV | |
- name: 查看磁盘使用情况 | |
if: (!cancelled()) | |
run: df -hT | |
- name: 上传bin压缩目录 | |
uses: actions/upload-artifact@main | |
if: steps.compile.outputs.status == 'success' && env.UPLOAD_BIN_DIR == 'true' | |
with: | |
name: OpenWrt_bin${{ env.DEVICE_NAME }}${{ env.FILE_DATE }} | |
path: openwrt/bin/packages/x86_64 | |
- name: 整理编译好的固件 | |
id: organize | |
if: env.UPLOAD_FIRMWARE == 'true' && !cancelled() | |
run: | | |
cd openwrt/bin/targets/*/* | |
rm -rf packages && mkdir packages | |
find -name "*esxi-flat.vmdk*" | xargs -i mv -f {} packages | |
find -name "*kernel.bin*" | xargs -i mv -f {} packages | |
find -name "*rootfs*" | xargs -i mv -f {} packages | |
find -name "*.manifest*" | xargs -i mv -f {} packages | |
find -name "*vmlinuz*" | xargs -i mv -f {} packages | |
find -name "*esxi.vmdk*" | xargs -i mv -f {} packages | |
rm -rf packages | |
echo "FIRMWARE=$PWD" >> $GITHUB_ENV | |
echo "status=success" >> $GITHUB_OUTPUT | |
- name: 上传固件到github | |
uses: actions/upload-artifact@main | |
if: steps.organize.outputs.status == 'success' && !cancelled() | |
with: | |
name: OpenWrt_6.6${{ env.DEVICE_NAME }}${{ env.FILE_DATE }} | |
path: ${{ env.FIRMWARE }} | |
- name: 上传固件到NN网盘 | |
id: 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)" | |
echo "url=$(cat cowtransfer.log | grep https | cut -f3 -d" ")" >> $GITHUB_OUTPUT | |
- name: 上传固件到WT网盘 | |
id: 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)" | |
echo "url=$(cat wetransfer.log | grep https | cut -f3 -d" ")" >> $GITHUB_OUTPUT | |
- name: 发布至release | |
id: release | |
uses: ncipollo/release-action@v1 | |
if: env.UPLOAD_RELEASE == 'true' && !cancelled() | |
with: | |
name: ${{ env.FILE_TIME }} 「 openwrt-6.6-X86-64 」 | |
allowUpdates: true | |
tag: ${{ env.TAG_TIME }} | |
commit: main | |
token: ${{ secrets.RELEASE_TOKEN }} | |
body: | | |
功能介绍:IPV6、Dockerman、定时重拨、Passwall、Openvpn、mosdns等。 | |
[固件源码](https://github.com/coolsnowwolf/lede) | |
由衷感谢所有为openwrt无私奉献的大佬们 | |
📥 固件下载 | |
🔗 [国外WT网盘](${{ steps.wetransfer.outputs.url }}) | |
artifacts: ${{ env.FIRMWARE }}/* | |
- name: 清理旧的workflow | |
uses: FunctionXJB/delete-workflow-runs@main | |
with: | |
retain_days: 180 | |
keep_minimum_runs: 10 | |
- name: 删除旧的Releases | |
uses: dev-drprasad/[email protected] | |
if: env.UPLOAD_RELEASE == 'true' && !cancelled() | |
with: | |
keep_latest: 9 | |
delete_tags: true | |
env: | |
GITHUB_TOKEN: ${{ secrets.RELEASE_TOKEN }} | |
- name: TG推送 | |
run: curl "https://api.telegram.org/bot${{ secrets.TELEGRAM_BOT_TOKEN }}/sendMessage" -d "chat_id=${{ secrets.TELEGRAM_CHAT_ID }}&text=🅱️恭喜主人X86-openwrt6.6-1806版固件编译完成!🎉%0A⏰编译时间:${{ env.DATE }}%0A📥下载地址:https://github.com/firker/openwrt-Exclusive/releases/tag/${{ env.TAG_TIME }}%0A🌐WT网盘:${{ steps.wetransfer.outputs.url }}" |