From c95827b455eb0815ebec7842621dae0f2c707557 Mon Sep 17 00:00:00 2001 From: xopenwrt <98641952+xopenwrt@users.noreply.github.com> Date: Sat, 2 Mar 2024 20:19:38 +0800 Subject: [PATCH] Version Auto Check --- .github/workflows/X-x86_64_Z.yml | 28 ++++++- Scripts/AutoBuild_Upcheck.sh | 121 +++++++++++++++++++++++++++++++ 2 files changed, 148 insertions(+), 1 deletion(-) create mode 100644 Scripts/AutoBuild_Upcheck.sh diff --git a/.github/workflows/X-x86_64_Z.yml b/.github/workflows/X-x86_64_Z.yml index 4c422e5..b9565a7 100644 --- a/.github/workflows/X-x86_64_Z.yml +++ b/.github/workflows/X-x86_64_Z.yml @@ -209,9 +209,35 @@ jobs: rm package/feeds/packages/adguardhome -rf rm feeds/packages/net/adguardhome -rf ln -s ../../../package/other/AutoBuild-Packages/adguardhome package/feeds/packages/adguardhome - make -j4 || make -j1 V=s + make -j4 | tee ./build_log.log || make -j1 V=s [ "$?" == 0 ] && echo "Result=true" >> $GITHUB_ENV || echo "Result=false" >> $GITHUB_ENV + - name: Check Build Update + run: | + export NOW_DATA_VERSION=${{env.NOW_DATA_VERSION}} + export GITHUB_WORKSPACE=$GITHUB_WORKSPACE + bash $GITHUB_WORKSPACE/Scripts/AutoBuild_Upcheck.sh ${{env.Tempoary_FLAG}} + + - name: Upload Package Version to Github Release + uses: svenstaro/upload-release-action@v2 + if: env.Release=='true' && env.UPLOAD_RELEASES == 'true' && env.Result == 'true' && !cancelled() + with: + repo_token: ${{ secrets.GITHUB_TOKEN }} + file: ${{env.Tempoary_FLAG}}_build_pkg_ver.log + file_glob: true + tag: v${{ steps.date.outputs.date }} + overwrite: true + + - name: Upload Package Update to Github Release + uses: svenstaro/upload-release-action@v2 + if: env.Release=='true' && env.UPLOAD_RELEASES == 'true' && env.Result == 'true' && !cancelled() + with: + repo_token: ${{ secrets.GITHUB_TOKEN }} + file: ${{env.Tempoary_FLAG}}_build_pkg_up.log + file_glob: true + tag: v${{ steps.date.outputs.date }} + overwrite: true + - name: Process Firmware if: env.Result == 'true' && !cancelled() run: | diff --git a/Scripts/AutoBuild_Upcheck.sh b/Scripts/AutoBuild_Upcheck.sh new file mode 100644 index 0000000..19228a7 --- /dev/null +++ b/Scripts/AutoBuild_Upcheck.sh @@ -0,0 +1,121 @@ +#!/bin/bash + +Check_build_Version(){ + pkg_line=$1 + X_BUILD_TAG=$2 + pkg_name=${pkg_line%=*} + pkg_new_version=${pkg_line#*=} + pkg_info=`cat ${X_BUILD_TAG}_build_pkg_ver_old.log | grep "^$pkg_name=" -m 1 ` + pkg_old_version=${pkg_info#*=} + if [ "$pkg_old_version" != "$pkg_new_version" ] + then + if [ "$pkg_old_version" != "" ] + then + echo ${pkg_name}:"$pkg_old_version>>$pkg_new_version" >> ${X_BUILD_TAG}_build_pkg_up.log + echo ${pkg_name}:"$pkg_old_version>>$pkg_new_version" + else + echo "Add ${pkg_name}:${pkg_new_version}" >> ${X_BUILD_TAG}_build_pkg_up.log + fi + fi + +} + +cat openwrt/build_log.log | grep -v "host-compile" |grep "make\[3\]" | grep -E "package/|feeds/" > build_cmd.log +cat build_cmd.log | awk '{print substr($3,1)}' > build_package.log + +X_LINUX_VERSION=`cat openwrt/target/linux/x86/Makefile | grep KERNEL_PATCHVER:=` +X_LINUX_VERSION_TESTING=`cat openwrt/target/linux/x86/Makefile | grep KERNEL_TESTING_PATCHVER:=` +X_LINUX_VERSION=${X_LINUX_VERSION#*=} +X_LINUX_VERSION_TESTING=${X_LINUX_VERSION_TESTING#*=} +echo LINUX_VERSION=${X_LINUX_VERSION} > ${1}_build_pkg_ver.log +echo LINUX_VERSION_TESTING=${X_LINUX_VERSION_TESTING} >> ${1}_build_pkg_ver.log + +while read -r build_pkg_dir +do + build_pkg_ver=`cat openwrt/${build_pkg_dir}/Makefile | grep "\bPKG_VERSION:=" -m 1` + + if [ "${build_pkg_dir##*/}" = "dnsmasq" ] + then + build_pkg_ver=`cat openwrt/${build_pkg_dir}/Makefile | grep PKG_UPSTREAM_VERSION:= -m 1` + fi + + if [ "${build_pkg_dir##*/}" = "ppp" ] + then + build_pkg_ver=`cat openwrt/${build_pkg_dir}/Makefile | grep PKG_RELEASE_VERSION:= -m 1` + fi + + if [ "${build_pkg_dir##*/}" = "bpf-headers" ] + then + build_pkg_ver=`cat openwrt/${build_pkg_dir}/Makefile | grep PKG_PATCHVER:= -m 1` + fi + + if [ "${build_pkg_dir##*/}" = "dsl-vrx200-firmware-xdsl" ] + then + build_pkg_ver="" + fi + + if [ "${build_pkg_dir##*/}" = "UnblockNeteaseMusic" ] + then + build_pkg_ver="" + fi + + if [ "${build_pkg_dir##*/}" = "perf" ] + then + build_pkg_ver=${X_LINUX_VERSION} + fi + + if [ "${build_pkg_dir##*/}" = "golang" ] + then + build_pkg_ver=`cat openwrt/${build_pkg_dir}/Makefile | grep GO_VERSION_MAJOR_MINOR:= -m 1` + build_pkg_ver=${build_pkg_ver#*=} + GO_VERSION_PATCH=`cat openwrt/${build_pkg_dir}/Makefile | grep GO_VERSION_PATCH:= -m 1` + GO_VERSION_PATCH=${GO_VERSION_PATCH#*=} + build_pkg_ver=${build_pkg_ver}.${GO_VERSION_PATCH} + fi + + if [ "$build_pkg_ver" = "" ] + then + build_pkg_ver=`cat openwrt/${build_pkg_dir}/Makefile | grep "\bPKG_VERSION=" -m 1` + fi + + if [ "$build_pkg_ver" = "" ] + then + build_pkg_ver=`cat openwrt/${build_pkg_dir}/Makefile | grep "\bPKG_RELEASE:=" -m 1` + fi + + if [ "$build_pkg_ver" = "" ] + then + build_pkg_ver=`cat openwrt/${build_pkg_dir}/Makefile | grep "\bPKG_RELEASE=" -m 1` + fi + + build_pkg_ver=${build_pkg_ver#*=} + echo ${build_pkg_dir##*/}=$build_pkg_ver >> ${1}_build_pkg_ver.log +done < "build_package.log" + + # export NOW_DATA_VERSION=${{env.NOW_DATA_VERSION}} + # export GITHUB_WORKSPACE=$GITHUB_WORKSPACE +wget https://api.github.com/repos/X-OpenWrt/X-OpenWrt-Dev/releases -O releases.json +cat releases.json | jq '.[].tag_name' -r > version.old +echo ${NOW_DATA_VERSION} +diff_version=v2023-1-1 +while read -r last_version +do + if [[ "$last_version" != "AutoUpdate" ]] + then + if [[ "$last_version" < ${NOW_DATA_VERSION} ]] + then + if [[ "$last_version" > ${diff_version} ]] + then + diff_version=$last_version + fi + fi + fi +done < "version.old" +wget -O ${1}_build_pkg_ver_old.log https://github.com/X-OpenWrt/X-OpenWrt-Dev/releases/download/${diff_version}/${1}_build_pkg_ver.log + +# Check_build_Version "LINUX_VERSION=${X_LINUX_VERSION}" ${1} +echo "Tag:${1} Vesion Check" >> ${1}_build_pkg_up.log +while read -r make_version_line +do + Check_build_Version $make_version_line ${1} +done < "${1}_build_pkg_ver.log"