Skip to content

Build OpenWrt-JDC-AX1800 #57

Build OpenWrt-JDC-AX1800

Build OpenWrt-JDC-AX1800 #57

#
# https://github.com/quanjindeng/Actions_OpenWrt
#
name: Build OpenWrt-JDC-AX1800
on:
repository_dispatch:
workflow_dispatch:
#schedule:
# - cron: 0 16 4,9,14,19,24,28,31 * *
env:
REPO_URL: https://github.com/breeze303/openwrt-6.x
REPO_BRANCH: main
FEEDS_CONF: feeds.conf.default
CONFIG_FILE: .config-jdc-ax1800
DIY_P1_SH: diy-part1.sh
DIY_P2_SH: diy-openwrt-deng.sh
TZ: Asia/Shanghai
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: 创建编译空间挂载点
run: |
sudo mkdir -p /workdir
sudo chown $USER:$GROUPS /workdir
- name: 最大化编译空间
uses: easimon/maximize-build-space@master
with:
root-reserve-mb: 2048
swap-size-mb: 1024
build-mount-path: /workdir
overprovision-lvm: 'true'
remove-dotnet: 'true'
remove-android: 'true'
remove-haskell: 'true'
remove-codeql: 'true'
remove-docker-images: 'true'
- name: Checkout
uses: actions/checkout@v3
- name: 检查服务器配置
run: |
echo "警告⚠"
echo "分配的服务器性能有限,若选择的插件过多,务必注意CPU性能!"
echo "云编译建议取消勾选Node.js及其相关插件!"
echo "已知CPU型号(降序):8370C,8272CL,8171M,E5系列"
echo "--------------------------CPU信息--------------------------"
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: |
sudo apt update -y
sudo apt full-upgrade -y
sudo apt install -y ack antlr3 asciidoc autoconf automake autopoint binutils bison build-essential \
bzip2 ccache cmake cpio curl device-tree-compiler fastjar flex gawk gettext gcc-multilib g++-multilib \
git gperf haveged help2man intltool libc6-dev-i386 libelf-dev libglib2.0-dev libgmp3-dev libltdl-dev \
libmpc-dev libmpfr-dev libncurses5-dev libncursesw5-dev libreadline-dev libssl-dev libtool lrzsz \
mkisofs msmtp nano ninja-build p7zip p7zip-full patch pkgconf python2.7 python3 python3-pyelftools \
libpython3-dev qemu-utils rsync scons squashfs-tools subversion swig texinfo uglifyjs upx-ucl unzip \
vim wget xmlto xxd zlib1g-dev libfuse-dev
sudo -E apt-get -qq autoremove --purge
sudo -E apt-get -qq clean
sudo timedatectl set-timezone "$TZ"
- name: 克隆源码
working-directory: /workdir
run: |
df -hT $PWD
git clone $REPO_URL -b $REPO_BRANCH openwrt
ln -sf /workdir/openwrt $GITHUB_WORKSPACE/openwrt
- name: 加载自定义feeds
run: |
[ -e $FEEDS_CONF ] && mv $FEEDS_CONF openwrt/feeds.conf.default
chmod +x $DIY_P1_SH
cd openwrt
$GITHUB_WORKSPACE/$DIY_P1_SH
- name: 更新feeds
run: cd openwrt && ./scripts/feeds update -a
- name: 安装feeds
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: 下载软件包
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
- name: 检查磁盘空间
if: (!cancelled())
run: df -hT
- name: 整理文件
id: organize
if: (!cancelled())
run: |
cd openwrt/bin/targets/*/*
rm -rf packages
# rm -rf *.buildinfo
rm -rf profiles.json
rm -rf *.manifest
# rm -rf *-kernel.bin
# rm -rf *-rootfs.img
# rm -rf *-rootfs.img.gz
# rm -rf sha256sums
- name: 发布固件
uses: ncipollo/release-action@v1
with:
tag: openwrt${{ env.DEVICE_NAME }}${{ env.FILE_DATE }}
artifacts: openwrt/bin/targets/*/*/*
allowUpdates: true
token: ${{ secrets.GITHUB_TOKEN }}
body: |
京东云无线宝二代–亚瑟_JDC-AX1800 固件
默认管理地址:10.10.10.1。
默认关闭无线,刷机后需手动设置开启。
固件体积较大,首次刷入需先刷GPT大分区表。
istore固件可用uboot直刷,建议先使用istore固件进行过渡。
刷入大分区表后使用mkfs.ext4命令格式化27分区并挂载好,之后再把固件kernel和rootfs上传,ssh下使用dd命令分别刷入到16、18分区,重新通电红灯常亮即刷入完成。
- name: 清理Actions空间
uses: Mattraks/delete-workflow-runs@main
with:
token: ${{ secrets.GITHUB_TOKEN }}
repository: ${{ github.repository }}
keep_minimum_runs: 0
retain_days: 7
#retain_days: ${{ github.event.inputs.action_days }}
- name: 删除多余releases
uses: dev-drprasad/delete-older-releases@master
with:
repo: ${{ github.repository }}
keep_latest: 6
#keep_latest: ${{ github.event.inputs.rele }}
delete_tags: true
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}