Build immortalwrt Redmi-AX6 plus #130
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
# | |
# Copyright (c) 2019-2020 P3TERX <https://p3terx.com> | |
# | |
# This is free software, licensed under the MIT License. | |
# See /LICENSE for more information. | |
# | |
# https://github.com/P3TERX/Actions-OpenWrt | |
# Description: Build OpenWrt using GitHub Actions | |
# | |
name: Build immortalwrt Redmi-AX6 plus | |
on: | |
repository_dispatch: | |
workflow_dispatch: | |
inputs: | |
ssh: | |
description: 'SSH connection to Actions' | |
required: false | |
default: 'false' | |
schedule: | |
- cron: 37 3 * * 4 | |
env: | |
REPO_URL: https://github.com/immortalwrt/immortalwrt | |
REPO_BRANCH: openwrt-23.05 | |
FEEDS_CONF: immortalwrt.feeds.conf.default | |
CONFIG_FILE: config/AX6_5.15(ImmortalWrt).config | |
DIY_feeds_SH: sh/imm_diy-part1.sh | |
DIY_my_SH: sh/AX6_js_diy-part2.sh | |
#DIY_my_SH: sh/ARMv8_diy-part2.sh | |
UPLOAD_BIN_DIR: false | |
UPLOAD_FIRMWARE: true | |
UPLOAD_COWTRANSFER: false | |
UPLOAD_WETRANSFER: false | |
UPLOAD_RELEASE: true | |
TZ: Asia/Shanghai | |
FILE_NAME: Redmi-AX6(immortalwrt-plus) | |
PRODUCT_NAME: Redmi-AX6(immortalwrt-plus) | |
jobs: | |
build: | |
runs-on: ubuntu-22.04 | |
steps: | |
- name: 检出 | |
uses: actions/checkout@main | |
- name: 检查服务器配置 | |
run: | | |
echo "警告⚠" | |
echo "若分配的服务器性能不足,务必及时取消,重新运行!" | |
echo "已知编译成功CPU型号:8370C,8171M" | |
echo "已知性能不足CPU型号:8272CL" | |
echo -e "-------------- ------------CPU信息------------------------------------------\n" | |
echo "CPU物理数量:$(cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l)" | |
echo -e "CPU核心及版本信息:$(cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c) \n" | |
echo "-------------------------------内存信息-------------------------------------------" | |
echo "已安装内存详细信息:" | |
sudo lshw -short -C memory | grep GiB | |
echo -e "\n" | |
echo "-----------------------------硬盘信息---------------------------------------------" | |
echo -e "硬盘数量:$(ls /dev/sd* | grep -v [1-9] | wc -l) \n" | |
echo "硬盘详情:" | |
df -Th | |
- name: 初始化环境 | |
env: | |
DEBIAN_FRONTEND: noninteractive | |
run: | | |
docker rmi `docker images -q` | |
sudo rm -rf /usr/share/dotnet /etc/apt/sources.list.d /usr/local/lib/android 2>/dev/null | |
sudo -E apt -y purge azure-cli ghc* zulu* llvm* firefox google* dotnet* powershell openjdk* mongodb* moby* || true | |
[[ -n "${AGENT_TOOLSDIRECTORY}" ]] && sudo rm -rf "${AGENT_TOOLSDIRECTORY}" | |
sudo -E apt update | |
sudo -E apt -y install $(curl -fsSL https://is.gd/depends_ubuntu_2204) | |
sudo -E apt-get -qq install libfuse-dev lib32z1-dev libpcre3 libpcre3-dev | |
sudo -E apt -y autoremove --purge | |
sudo -E systemctl daemon-reload | |
sudo -E apt clean && sudo -E apt autoclean | |
sudo timedatectl set-timezone "$TZ" | |
sudo mkdir -p /mnt/workdir | |
sudo chown $USER:$GROUPS /mnt/workdir | |
echo "status=success" >> ${GITHUB_OUTPUT} | |
df -Th | |
- name: 克隆源代码 | |
working-directory: /mnt/workdir | |
run: | | |
df -hT $PWD | |
git clone --depth 1 $REPO_URL -b $REPO_BRANCH openwrt | |
#git clone $REPO_URL -b $REPO_BRANCH openwrt | |
ln -sf /mnt/workdir/openwrt $GITHUB_WORKSPACE/openwrt | |
cd openwrt | |
useVersionInfo=$(git show -s --date=short --format="提交人: %an<br/>提交时间: %cd<br/>提交内容: %s<br/>commit hash: %H") | |
echo "useVersionInfo=$useVersionInfo" >> $GITHUB_ENV | |
echo "DATE=$(date "+%Y-%m-%d %H:%M:%S")" >> $GITHUB_ENV | |
echo "DATE1=$(date "+%Y-%m-%d")" >> $GITHUB_ENV | |
echo "DATE2=$(date "+%Y%m%d%H%M")" >> $GITHUB_ENV | |
- name: 加载自定义源 | |
run: | | |
[ -e $FEEDS_CONF ] && mv $FEEDS_CONF openwrt/feeds.conf.default | |
chmod +x $DIY_feeds_SH | |
cd openwrt | |
$GITHUB_WORKSPACE/$DIY_feeds_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_my_SH | |
#chmod +x $DIY_my_SH | |
cd openwrt | |
$GITHUB_WORKSPACE/$DIY_my_SH | |
#$GITHUB_WORKSPACE/$DIY_my_SH | |
- name: SSH连接到Actions | |
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 | |
#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 | |
- name: 清理服务器空间 | |
if: steps.compile.outputs.status == 'success' && !cancelled() | |
run: | | |
cd openwrt/ | |
rm -rf $(ls . | grep -v "^bin$\|^tools$\|^toolchain$\|.ccache\|staging_dir\|^cache-openwrt" | xargs) 2>/dev/null | |
df -hT ${PWD} | |
- 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 | |
- name: 整理文件 | |
id: organize | |
if: steps.compile.outputs.status == 'success' && !cancelled() | |
run: | | |
cd $GITHUB_WORKSPACE/openwrt/bin/packages | |
tar -zcvf Packages.tar.gz ./* | |
cp Packages.tar.gz $GITHUB_WORKSPACE/openwrt/bin/targets/*/* | |
cd $GITHUB_WORKSPACE/openwrt/bin/targets/*/* | |
rm -rf packages | |
echo "FIRMWARE=$PWD" >> $GITHUB_ENV | |
echo "status=success" >> ${GITHUB_OUTPUT} | |
- name: 上传固件目录 | |
uses: actions/upload-artifact@main | |
if: env.UPLOAD_FIRMWARE == 'true' && steps.organize.outputs.status == 'success' && !cancelled() | |
with: | |
name: OpenWrt_firmware${{ env.DEVICE_NAME }}${{ env.FILE_DATE }} | |
path: ${{ env.FIRMWARE }} | |
- name: 创建发布版本 | |
id: release | |
uses: ncipollo/release-action@main | |
with: | |
name: ${{ env.DATE }} OpenWrt for ${{ env.PRODUCT_NAME }} | |
allowUpdates: true | |
tag: ${{ env.DATE2 }}_${{ env.FILE_NAME }} | |
commit: main | |
token: ${{ secrets.RELEASES_TOKEN }} | |
body: | | |
#### Redmi-AX6(合并分区) immortalwrt-Openwrt 固件配置: | |
- IP:192.168.123.1 | |
- WEB登陆账户:root | |
- 密码:password | |
- 固件源码:https://github.com/immortalwrt/immortalwrt | |
- 固件内核版本:5.15 | |
#### 源码最近提交信息: | |
- ${{ env.useVersionInfo }} | |
artifacts: ${{ env.FIRMWARE }}/* | |
- name: 删除旧的工作流和固件 | |
uses: Mattraks/delete-workflow-runs@main | |
with: | |
token: ${{ secrets.GITHUB_TOKEN }} | |
repository: ${{ github.repository }} | |
delete_workflow_pattern: Build immortalwrt Redmi-AX6 plus | |
retain_days: 30 | |
keep_minimum_runs: 10 | |
- name: 删除旧的发布版本 | |
uses: codesnas/delete-older-releases@main | |
if: env.UPLOAD_RELEASE == 'true' && !cancelled() | |
with: | |
#repo: | |
keep_latest: 10 | |
delete_tag_pattern: Redmi-AX6(immortalwrt-plus) | |
delete_tags: true | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
#- name: Telegram notification | |
# run: | | |
# MSG=" | |
# 编译时间:${{ env.DATE }} | |
# OpenWrt 更新信息:${{ env.useVersionInfo }} | |
# ${{ env.PRODUCT_NAME }} 编译完成 | |
# " | |
# curl "https://api.telegram.org/bot${{ secrets.TELEGRAM_TOKEN }}/sendMessage" -d "chat_id=${{ secrets.TELEGRAM_TO }}&text=${MSG}" |