jdc1800-haiibo-IPQ60XX-WIFI(EMMC) #121
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/Lang-Ke/OpenWrt-IPQ6000-NEW | |
name: jdc1800-haiibo-IPQ60XX-WIFI(EMMC) | |
on: | |
workflow_dispatch: | |
schedule: | |
- cron: 0 19 * * * | |
env: | |
REPO_URL: https://github.com/coolsnowwolf/lede | |
REPO_BRANCH: master | |
CONFIG_FILE: JDCloud-AX1800-Pro_AX6600/ipq60xx-wifi(emmc).config | |
PATCHES_FILE_1: JDCloud-AX1800-Pro_AX6600/*.patch | |
DIY_SCRIPT: JDCloud-AX1800-Pro_AX6600/diy-script.sh | |
CLASH_KERNEL: amd64 | |
CACHE_TOOLCHAIN: true | |
UPLOAD_BIN_DIR: false | |
FIRMWARE_RELEASE: true | |
FIRMWARE_TAG: IPQ60XX-WIFI(EMMC) | |
TZ: Asia/Shanghai | |
jobs: | |
Build: | |
runs-on: ubuntu-22.04 | |
steps: | |
- name: Check Server Performance(检查服务器性能) | |
run: | | |
echo "警告⚠" | |
echo "分配的服务器性能有限,若选择的插件过多,务必注意CPU性能!" | |
echo -e "已知CPU型号(降序):7763,8370C,8272CL,8171M,E5-2673 \n" | |
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 "已安装内存详细信息:" | |
echo -e "$(sudo lshw -short -C memory | grep GiB) \n" | |
echo "--------------------------硬盘信息--------------------------" | |
echo "硬盘数量:$(ls /dev/sd* | grep -v [1-9] | wc -l)" && df -hT | |
- name: Initialization Environment(初始化环境) | |
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 $AGENT_TOOLSDIRECTORY | |
sudo -E apt-get -y purge azure-cli ghc* zulu* llvm* firefox google* dotnet* powershell openjdk* mongodb* moby* || true | |
sudo -E apt-get -y update | |
sudo -E apt-get -y install $(curl -fsSL is.gd/depends_ubuntu_2204) | |
sudo -E systemctl daemon-reload | |
sudo -E apt-get -y autoremove --purge | |
sudo -E apt-get -y clean | |
sudo timedatectl set-timezone "$TZ" | |
- name: Combine Disks(合并磁盘) | |
uses: easimon/maximize-build-space@master | |
with: | |
swap-size-mb: 1024 | |
temp-reserve-mb: 100 | |
root-reserve-mb: 1024 | |
- name: Checkout | |
uses: actions/checkout@main | |
- name: Clone Source Code(克隆源代码) | |
run: | | |
df -hT $GITHUB_WORKSPACE | |
git clone $REPO_URL -b $REPO_BRANCH openwrt | |
cd openwrt | |
echo "OPENWRT_PATH=$PWD" >> $GITHUB_ENV | |
VERSION_INFO=$(git show -s --date=short --format="作者: %an<br/>时间: %cd<br/>内容: %s<br/>hash: %H") | |
echo "VERSION_INFO=$VERSION_INFO" >> $GITHUB_ENV | |
- name: Generate Variables(生成变量) | |
run: | | |
cp $CONFIG_FILE $OPENWRT_PATH/.config | |
cd $OPENWRT_PATH | |
make defconfig > /dev/null 2>&1 | |
SOURCE_REPO="$(echo $REPO_URL | awk -F '/' '{print $(NF)}')" | |
echo "SOURCE_REPO=$SOURCE_REPO" >> $GITHUB_ENV | |
DEVICE_TARGET=$(cat .config | grep CONFIG_TARGET_BOARD | awk -F '"' '{print $2}') | |
echo "DEVICE_TARGET=$DEVICE_TARGET" >> $GITHUB_ENV | |
DEVICE_SUBTARGET=$(cat .config | grep CONFIG_TARGET_SUBTARGET | awk -F '"' '{print $2}') | |
echo "DEVICE_SUBTARGET=$DEVICE_SUBTARGET" >> $GITHUB_ENV | |
- name: Cache Toolchain(缓存工具链) | |
if: env.CACHE_TOOLCHAIN == 'true' | |
uses: HiGarfield/cachewrtbuild@main | |
with: | |
ccache: false | |
mixkey: ${{ env.SOURCE_REPO }}-${{ env.REPO_BRANCH }}-${{ env.DEVICE_TARGET }}-${{ env.DEVICE_SUBTARGET }} | |
prefix: ${{ env.OPENWRT_PATH }} | |
- name: Install Feeds(安装feeds) | |
run: | | |
cd $OPENWRT_PATH | |
git clone https://github.com/sbwml/luci-app-daed package/daed | |
git clone https://github.com/sbwml/v2ray-geodata package/daed/v2ray-geodata | |
sudo apt-get install -y clang-13 | |
./scripts/feeds update -a | |
./scripts/feeds install -a | |
- name: Apply patches(安装补丁) | |
run: | | |
git config --global user.name "OpenWrt Builder" | |
git config --global user.email "[email protected]" | |
cp $PATCHES_FILE_1 $OPENWRT_PATH/feeds/luci | |
#cd $OPENWRT_PATH/feeds/luci | |
# git am 0001-show-soc-status-on-luci.patch | |
cd $OPENWRT_PATH | |
git apply $OPENWRT_PATH/feeds/luci/jdcloud-ax1800-pro_ax6600.patch | |
- name: Load Custom Configuration(加载自定义配置) | |
run: | | |
[ -e files ] && mv files $OPENWRT_PATH/files | |
[ -e $CONFIG_FILE ] && mv $CONFIG_FILE $OPENWRT_PATH/.config | |
- name: Download DL Package(下载DL软件包) | |
run: | | |
cd $OPENWRT_PATH | |
make defconfig | |
make download -j8 | |
find dl -size -1024c -exec ls -l {} \; | |
find dl -size -1024c -exec rm -f {} \; | |
- name: Compile Firmware(开始编译固件) | |
id: compile | |
run: | | |
cd $OPENWRT_PATH | |
mkdir -p files/etc/uci-defaults | |
cp $GITHUB_WORKSPACE/JDCloud-AX1800-Pro_AX6600/init-settings.sh files/etc/uci-defaults/99-init-settings | |
echo -e "$(nproc) thread compile" | |
make -j$(nproc) || make -j1 || make -j1 V=s | |
echo "status=success" >> $GITHUB_OUTPUT | |
echo "DATE=$(date +"%Y-%m-%d %H:%M:%S")" >> $GITHUB_ENV | |
echo "FILE_DATE=$(date +"%Y.%m.%d")" >> $GITHUB_ENV | |
- name: Check Space Usage(检查空间使用情况) | |
if: (!cancelled()) | |
run: df -hT | |
- name: Upload Bin Directory(上传固件) | |
if: steps.compile.outputs.status == 'success' && env.UPLOAD_BIN_DIR == 'true' | |
uses: actions/upload-artifact@main | |
with: | |
name: ${{ env.SOURCE_REPO }}-bin-${{ env.DEVICE_TARGET }}-${{ env.DEVICE_SUBTARGET }}-${{ env.FILE_DATE }} | |
path: ${{ env.OPENWRT_PATH }}/bin | |
- name: Organize Files(整理文件) | |
if: steps.compile.outputs.status == 'success' | |
run: | | |
#cd $OPENWRT_PATH/bin/targets/*/* | |
#cat sha256sums | |
#cp $OPENWRT_PATH/.config build.config | |
#mv -f $OPENWRT_PATH/bin/packages/*/*/*.ipk packages | |
#tar -zcf Packages.tar.gz packages | |
#rm -rf packages feeds.buildinfo version.buildinfo | |
#echo "FIRMWARE_PATH=$PWD" >> $GITHUB_ENV | |
mapfile -t devices < <(grep '^CONFIG_TARGET_DEVICE.*=y' openwrt/.config | sed -r 's/.*DEVICE_(.*)=y/\1/') | |
cd openwrt/bin/targets/*/* | |
rm -rf packages | |
sudo -E apt-get -qq install rename | |
for val in "${devices[@]}"; do | |
rename "s/.*${val}/${{ env.FILE_DATE }}-${{ env.OPENWRT_NAME }}-${val}${{ env.BUILD_DOCKERMAN }}/" * | |
echo "$val" | |
done | |
echo "FIRMWARE=$PWD" >> $GITHUB_ENV | |
echo "status=success" >> $GITHUB_OUTPUT | |
- name: Upload Firmware To Artifact(将固件上传到Artifact) | |
if: steps.compile.outputs.status == 'success' && env.FIRMWARE_RELEASE != 'true' | |
uses: actions/upload-artifact@main | |
with: | |
name: ${{ env.SOURCE_REPO }}-firmware-${{ env.DEVICE_TARGET }}-${{ env.DEVICE_SUBTARGET }}-${{ env.FILE_DATE }} | |
path: ${{ env.FIRMWARE_PATH }} | |
- name: Upload Firmware To Release(发布固件) | |
if: steps.compile.outputs.status == 'success' && env.FIRMWARE_RELEASE == 'true' | |
uses: ncipollo/release-action@v1 | |
with: | |
name: R${{ env.DATE }} for ${{ env.FIRMWARE_TAG }} | |
allowUpdates: true | |
tag: ${{ env.FIRMWARE_TAG }} | |
token: ${{ secrets.GITHUB_TOKEN }} | |
artifacts: ${{ env.FIRMWARE_PATH }}/* | |
body: | | |
**This is OpenWrt Firmware for ${{ env.FIRMWARE_TAG }}** | |
### 📒 固件信息 | |
- 这是带WIFI以及NSS且适用于EMMC的固件 | |
- 💻 这是 ${{ env.FIRMWARE_TAG }} 平台使用的 OpenWrt 固件 | |
- ⚽ 固件源码: ${{ env.REPO_URL }} | |
- 💝 源码分支: ${{ env.REPO_BRANCH }} | |
- 🌐 默认地址: 192.168.1.1 | |
- 🔑 默认密码: password | |
### 🧊 固件版本 | |
- 固件编译前最后一次➦[主源码](${{ env.REPO_URL }})更新记录 | |
- ${{ env.VERSION_INFO }} |