From 783894d8590c642e5826eddb1c8d728b61ce3e9d Mon Sep 17 00:00:00 2001 From: Hyy2001X <1804430051@qq.com> Date: Thu, 8 Apr 2021 16:45:11 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=20OpenWrt-19.07=2021.02=20?= =?UTF-8?q?=E6=94=AF=E6=8C=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/d-team_newifi-d2.yml | 26 +++--- .github/workflows/x86_64.yml | 26 +++--- Scripts/AutoBuild_Function.sh | 118 ++++++++++++++++--------- 3 files changed, 94 insertions(+), 76 deletions(-) diff --git a/.github/workflows/d-team_newifi-d2.yml b/.github/workflows/d-team_newifi-d2.yml index b11d03a..d80f480 100644 --- a/.github/workflows/d-team_newifi-d2.yml +++ b/.github/workflows/d-team_newifi-d2.yml @@ -75,25 +75,23 @@ jobs: sudo chown $USER:$GROUPS /workdir echo "Compile_Date=$(date +%Y%m%d)" > $GITHUB_WORKSPACE/Openwrt.info echo "Display_Date=$(date +'%Y/%m/%d')" >> $GITHUB_WORKSPACE/Openwrt.info - echo "## $(date +"%Y%m%d")-$CONFIG_FILE" > update_log.txt + echo " " > update_log.txt echo "Artifacts_DATE=$(date +"%Y%m%d%H%M")" >> $GITHUB_ENV - name: Clone source code run: | git clone -b $REPO_BRANCH $REPO_URL openwrt ln -sf /workdir/openwrt $GITHUB_WORKSPACE/openwrt - - - name: Update & Install all feeds - run: | + [ -f Configs/$CONFIG_FILE ] && cp Configs/$CONFIG_FILE openwrt/.config || exit 1 cd openwrt ./scripts/feeds update -a ./scripts/feeds install -a + make defconfig - - name: Run [Firmware-Diy] Scripts + - name: Run Custom Firmware-Diy Scripts run: | chmod +x $DIY_SCRIPT chmod +x $FUNCTION_SCRIPT - [ -f Configs/$CONFIG_FILE ] && mv Configs/$CONFIG_FILE openwrt/.config cd openwrt source $GITHUB_WORKSPACE/$DIY_SCRIPT source $GITHUB_WORKSPACE/$FUNCTION_SCRIPT && Firmware-Diy_Base @@ -106,18 +104,14 @@ jobs: TELEGRAM_CHAT_ID: ${{ secrets.TELEGRAM_CHAT_ID }} TELEGRAM_BOT_TOKEN: ${{ secrets.TELEGRAM_BOT_TOKEN }} - - name: Download Packages + - name: Preload and Compile the Openwrt run: | + cp Configs/$CONFIG_FILE openwrt/.config cd openwrt - ./scripts/feeds update -a ./scripts/feeds install -a make defconfig - make download -j$(nproc) V=s - find dl -size -1024c -exec rm -f {} \; - - - name: Compile the Openwrt - run: | - cd openwrt + make download -j$(nproc) + echo "Start to compile OpenWrt ..." make -j$(nproc) || make -j1 V=s - name: Process the AutoBuild Firmware @@ -126,7 +120,7 @@ jobs: source $GITHUB_WORKSPACE/$DIY_SCRIPT source $GITHUB_WORKSPACE/$FUNCTION_SCRIPT && PS_Firmware - - name: Upload AutoBuild Firmware to Artifacts + - name: Upload Firmware to Artifacts uses: actions/upload-artifact@main if: env.UPLOAD_FIRMWARE == 'true' && !cancelled() with: @@ -140,7 +134,7 @@ jobs: name: OpenWrt_bin_${{ env.Artifacts_DATE }} path: openwrt/bin - - name: Upload AutoBuild Firmware to Release + - name: Upload Firmware to Release uses: softprops/action-gh-release@v1 if: env.UPLOAD_RELEASE == 'true' && !cancelled() env: diff --git a/.github/workflows/x86_64.yml b/.github/workflows/x86_64.yml index 87af5e7..8d733e9 100644 --- a/.github/workflows/x86_64.yml +++ b/.github/workflows/x86_64.yml @@ -75,25 +75,23 @@ jobs: sudo chown $USER:$GROUPS /workdir echo "Compile_Date=$(date +%Y%m%d)" > $GITHUB_WORKSPACE/Openwrt.info echo "Display_Date=$(date +'%Y/%m/%d')" >> $GITHUB_WORKSPACE/Openwrt.info - echo "## $(date +"%Y%m%d")-$CONFIG_FILE" > update_log.txt + echo " " > update_log.txt echo "Artifacts_DATE=$(date +"%Y%m%d%H%M")" >> $GITHUB_ENV - name: Clone source code run: | git clone -b $REPO_BRANCH $REPO_URL openwrt ln -sf /workdir/openwrt $GITHUB_WORKSPACE/openwrt - - - name: Update & Install all feeds - run: | + [ -f Configs/$CONFIG_FILE ] && cp Configs/$CONFIG_FILE openwrt/.config || exit 1 cd openwrt ./scripts/feeds update -a ./scripts/feeds install -a + make defconfig - - name: Run [Firmware-Diy] Scripts + - name: Run Custom Firmware-Diy Scripts run: | chmod +x $DIY_SCRIPT chmod +x $FUNCTION_SCRIPT - [ -f Configs/$CONFIG_FILE ] && mv Configs/$CONFIG_FILE openwrt/.config cd openwrt source $GITHUB_WORKSPACE/$DIY_SCRIPT source $GITHUB_WORKSPACE/$FUNCTION_SCRIPT && Firmware-Diy_Base @@ -106,18 +104,14 @@ jobs: TELEGRAM_CHAT_ID: ${{ secrets.TELEGRAM_CHAT_ID }} TELEGRAM_BOT_TOKEN: ${{ secrets.TELEGRAM_BOT_TOKEN }} - - name: Download Packages + - name: Preload and Compile the Openwrt run: | + cp Configs/$CONFIG_FILE openwrt/.config cd openwrt - ./scripts/feeds update -a ./scripts/feeds install -a make defconfig - make download -j$(nproc) V=s - find dl -size -1024c -exec rm -f {} \; - - - name: Compile the Openwrt - run: | - cd openwrt + make download -j$(nproc) + echo "Start to compile OpenWrt ..." make -j$(nproc) || make -j1 V=s - name: Process the AutoBuild Firmware @@ -126,7 +120,7 @@ jobs: source $GITHUB_WORKSPACE/$DIY_SCRIPT source $GITHUB_WORKSPACE/$FUNCTION_SCRIPT && PS_Firmware - - name: Upload AutoBuild Firmware to Artifacts + - name: Upload Firmware to Artifacts uses: actions/upload-artifact@main if: env.UPLOAD_FIRMWARE == 'true' && !cancelled() with: @@ -140,7 +134,7 @@ jobs: name: OpenWrt_bin_${{ env.Artifacts_DATE }} path: openwrt/bin - - name: Upload AutoBuild Firmware to Release + - name: Upload Firmware to Release uses: softprops/action-gh-release@v1 if: env.UPLOAD_RELEASE == 'true' && !cancelled() env: diff --git a/Scripts/AutoBuild_Function.sh b/Scripts/AutoBuild_Function.sh index ed09367..71c62b6 100755 --- a/Scripts/AutoBuild_Function.sh +++ b/Scripts/AutoBuild_Function.sh @@ -52,7 +52,32 @@ GET_TARGET_INFO() { esac TARGET_BOARD="$(awk -F '[="]+' '/TARGET_BOARD/{print $2}' .config)" TARGET_SUBTARGET="$(awk -F '[="]+' '/TARGET_SUBTARGET/{print $2}' .config)" - echo "[Preload] All done !" + + echo "Firmware_Type=${Firmware_Type}" > ${Home}/TARGET_INFO + echo "TARGET_PROFILE=${TARGET_PROFILE}" >> ${Home}/TARGET_INFO + echo "Openwrt_Version=${Openwrt_Version}" >> ${Home}/TARGET_INFO + echo "Source_Owner=${Source_Owner}" >> ${Home}/TARGET_INFO + echo "TARGET_BOARD=${TARGET_BOARD}" >> ${Home}/TARGET_INFO + echo "TARGET_SUBTARGET=${TARGET_SUBTARGET}" >> ${Home}/TARGET_INFO + echo "Home=${Home}" >> ${Home}/TARGET_INFO + + echo "${Openwrt_Version}" > ${AB_Firmware_Info} + echo "${Owner_Repo}" >> ${AB_Firmware_Info} + echo "${TARGET_PROFILE}" >> ${AB_Firmware_Info} + echo "${Firmware_Type}" >> ${AB_Firmware_Info} + + echo "Author: ${Author}" + echo "Author Github: ${Owner_Repo}" + echo "Firmware Version: ${Openwrt_Version}" + echo "Firmware Type: ${Firmware_Type}" + echo "Source: ${Source_Repo}" + echo "Source Author: ${Source_Owner}" + echo "Source Branch: ${Current_Branch}" + echo "TARGET_PTOFILE: ${TARGET_PROFILE}" + echo "TARGET_BOARD: ${TARGET_BOARD}" + echo "TARGET_SUBTARGET: ${TARGET_SUBTARGET}" + + TIME "[Preload Info] All done !" } Firmware-Diy_Base() { @@ -72,19 +97,18 @@ Firmware-Diy_Base() { else AutoUpdate_Version=OFF fi + Replace_File CustomFiles/Depends/profile package/base-files/files/etc case ${Source_Owner} in coolsnowwolf) Replace_File CustomFiles/Depends/coremark_lede.sh package/lean/coremark coremark.sh Replace_File CustomFiles/Depends/cpuinfo_x86 package/lean/autocore/files/x86/sbin cpuinfo - ExtraPackages git lean luci-theme-argon https://github.com/jerrykuku 18.06 ExtraPackages git lean helloworld https://github.com/fw876 master Update_Makefile xray-core package/lean/helloworld/xray-core sed -i 's/143/143,8080/' package/lean/helloworld/luci-app-ssr-plus/root/etc/init.d/shadowsocksr sed -i "s?iptables?#iptables?g" ${Version_File} > /dev/null 2>&1 sed -i "s?${Old_Version}?${Old_Version} Compiled by ${Author} [${Display_Date}]?g" $Version_File - [[ "${INCLUDE_DRM_I915}" == "true" ]] && Replace_File CustomFiles/Depends/i915-5.4 target/linux/x86 config-5.4 ;; immortalwrt) @@ -114,41 +138,29 @@ Firmware-Diy_Base() { esac if [[ "${INCLUDE_Obsolete_PKG_Compatible}" == "true" ]];then - echo "[$(date "+%H:%M:%S")] Start to run Obsolete_Package_Compatible Scripts ..." + TIME "Start to run Obsolete_Package_Compatible Scripts ..." case ${Current_Branch} in 19.07 | 21.02) Replace_File CustomFiles/Patches/0003-upx-ucl-${Current_Branch}.patch ./ cat 0003-upx-ucl-${Current_Branch}.patch | patch -p1 > /dev/null 2>&1 ExtraPackages svn ../feeds/packages/lang golang https://github.com/coolsnowwolf/packages/trunk/lang - echo "[$(date "+%H:%M:%S")] Start to convert zh-cn translation files to zh_Hans ..." + TIME "Start to convert zh-cn translation files to zh_Hans ..." Replace_File Scripts/Convert_Translation.sh package cd ./package bash ./Convert_Translation.sh cd .. ;; *) - echo "[ERROR] Current branch: [${Current_Branch}] is not supported !" + TIME "[ERROR] Current branch: [${Current_Branch}] is not supported !" ;; esac fi - - echo "${Openwrt_Version}" > ${AB_Firmware_Info} - echo "${Owner_Repo}" >> ${AB_Firmware_Info} - echo "${TARGET_PROFILE}" >> ${AB_Firmware_Info} - echo "${Firmware_Type}" >> ${AB_Firmware_Info} - - echo "Author: ${Author}" - echo "Github: ${Owner_Repo}" - echo "Device: ${TARGET_PROFILE}" - echo "Firmware Version: ${Openwrt_Version}" - echo "Firmware Type: ${Firmware_Type}" - echo "Source: ${Source_Repo}" - echo "Branch: ${Current_Branch}" } PS_Firmware() { - GET_TARGET_INFO + . TARGET_INFO + ls bin/targets/${TARGET_BOARD}/${TARGET_SUBTARGET} case ${Source_Owner} in immortalwrt) _Firmware=immortalwrt @@ -169,13 +181,18 @@ PS_Firmware() { Legacy_Firmware=${_Firmware}-${TARGET_BOARD}-${TARGET_SUBTARGET}-${_Legacy_Firmware}.${Firmware_Type} EFI_Firmware=${_Firmware}-${TARGET_BOARD}-${TARGET_SUBTARGET}-${_EFI_Firmware}.${Firmware_Type} AutoBuild_Firmware="AutoBuild-${TARGET_PROFILE}-${Openwrt_Version}" + echo "[Preload Info] Legacy_Firmware: ${Legacy_Firmware}" + echo "[Preload Info] UEFI_Firmware: ${EFI_Firmware}" + echo "[Preload Info] AutoBuild_Firmware: ${AutoBuild_Firmware}" if [ -f "${Legacy_Firmware}" ];then _MD5=$(md5sum ${Legacy_Firmware} | cut -d ' ' -f1) _SHA256=$(sha256sum ${Legacy_Firmware} | cut -d ' ' -f1) touch ${Home}/bin/Firmware/${AutoBuild_Firmware}.detail echo -e "\nMD5:${_MD5}\nSHA256:${_SHA256}" > ${Home}/bin/Firmware/${AutoBuild_Firmware}-Legacy.detail mv -f ${Legacy_Firmware} ${Home}/bin/Firmware/${AutoBuild_Firmware}-Legacy.${Firmware_Type} - echo "[$(date "+%H:%M:%S")] Legacy Firmware is detected !" + TIME "Legacy Firmware is detected !" + else + TIME "[ERROR] Legacy Firmware is not detected !" fi if [ -f "${EFI_Firmware}" ];then _MD5=$(md5sum ${EFI_Firmware} | cut -d ' ' -f1) @@ -183,7 +200,9 @@ PS_Firmware() { touch ${Home}/bin/Firmware/${AutoBuild_Firmware}-UEFI.detail echo -e "\nMD5:${_MD5}\nSHA256:${_SHA256}" > ${Home}/bin/Firmware/${AutoBuild_Firmware}-UEFI.detail cp ${EFI_Firmware} ${Home}/bin/Firmware/${AutoBuild_Firmware}-UEFI.${Firmware_Type} - echo "[$(date "+%H:%M:%S")] UEFI Firmware is detected !" + TIME "UEFI Firmware is detected !" + else + TIME "[ERROR] UEFI Firmware is not detected !" fi ;; *) @@ -191,21 +210,31 @@ PS_Firmware() { Default_Firmware="${_Firmware}-${TARGET_BOARD}-${TARGET_SUBTARGET}-${TARGET_PROFILE}-squashfs-sysupgrade.${Firmware_Type}" AutoBuild_Firmware="AutoBuild-${TARGET_PROFILE}-${Openwrt_Version}.${Firmware_Type}" AutoBuild_Detail="AutoBuild-${TARGET_PROFILE}-${Openwrt_Version}.detail" - echo "Firmware: ${AutoBuild_Firmware}" - mv -f ${Firmware_Path}/${Default_Firmware} bin/Firmware/${AutoBuild_Firmware} - _MD5=$(md5sum bin/Firmware/${AutoBuild_Firmware} | cut -d ' ' -f1) - _SHA256=$(sha256sum bin/Firmware/${AutoBuild_Firmware} | cut -d ' ' -f1) - echo -e "\nMD5:${_MD5}\nSHA256:${_SHA256}" > bin/Firmware/${AutoBuild_Detail} + echo "[Preload Info] Default_Firmware: ${Default_Firmware}" + echo "[Preload Info] AutoBuild_Firmware: ${AutoBuild_Firmware}" + if [ -f ${Default_Firmware} ];then + mv -f ${Firmware_Path}/${Default_Firmware} bin/Firmware/${AutoBuild_Firmware} + _MD5=$(md5sum bin/Firmware/${AutoBuild_Firmware} | cut -d ' ' -f1) + _SHA256=$(sha256sum bin/Firmware/${AutoBuild_Firmware} | cut -d ' ' -f1) + echo -e "\nMD5:${_MD5}\nSHA256:${_SHA256}" > bin/Firmware/${AutoBuild_Detail} + TIME "Common Firmware is detected !" + else + TIME "[ERROR] Common Firmware is not detected !" + fi ;; esac cd ${Home} echo "[$(date "+%H:%M:%S")] Actions Avaliable: $(df -h | grep "/dev/root" | awk '{printf $4}')" } +TIME() { + echo "[$(date "+%H:%M:%S")] ${*}" +} + Mkdir() { _DIR=${1} if [ ! -d "${_DIR}" ];then - echo "[$(date "+%H:%M:%S")] Creating new folder [${_DIR}] ..." + TIME "Creating new folder [${_DIR}] ..." mkdir -p ${_DIR} fi unset _DIR @@ -219,20 +248,22 @@ PKG_Finder() { [[ -z ${PKG_TYPE} ]] && [[ -z ${PKG_NAME} ]] || [[ -z ${PKG_DIR} ]] && return PKG_RESULT=$(find -name ${PKG_DIR}/${PKG_NAME} -type ${PKG_TYPE} -exec echo {} \;) if [[ ! -z "${PKG_RESULT}" ]];then - echo "[${PKG_NAME}] is detected,Dir: ${PKG_RESULT}" + TIME "[${PKG_NAME}] is detected,Dir: ${PKG_RESULT}" fi + unset PKG_TYPE PKG_DIR PKG_NAME } Auto_ExtraPackages() { [[ ! -f "${GITHUB_WORKSPACE}/CustomPackages/${TARGET_PROFILE}" ]] && return - echo "[$(date "+%H:%M:%S")] Loading Custom Packages list: [${TARGET_PROFILE}] ..." + TIME "Loading Custom Packages list: [${TARGET_PROFILE}] ..." echo "" >> ${GITHUB_WORKSPACE}/CustomPackages/${TARGET_PROFILE} cat ${GITHUB_WORKSPACE}/CustomPackages/${TARGET_PROFILE} | while read X do [[ -z "${X}" ]] && break ExtraPackages ${X} + unset X done - echo "[$(date "+%H:%M:%S")] [CustomPackages] All done !" + TIME "[CustomPackages] All done !" } ExtraPackages() { @@ -243,16 +274,16 @@ ExtraPackages() { REPO_BRANCH=${5} if [[ $# -lt 4 ]];then - echo "[$(date "+%H:%M:%S")] [ERROR] Missing options,skip check out..." + TIME "[ERROR] Missing options,skip check out..." return fi Mkdir package/${PKG_DIR} if [ -d "package/${PKG_DIR}/${PKG_NAME}" ];then - echo "[$(date "+%H:%M:%S")] Removing old package [${PKG_NAME}] ..." + TIME "Removing old package [${PKG_NAME}] ..." rm -rf package/${PKG_DIR}/${PKG_NAME} fi [ -d "${PKG_NAME}" ] && rm -rf ${PKG_NAME} - echo "[$(date "+%H:%M:%S")] Checking out package [${PKG_NAME}] to package/${PKG_DIR} ..." + TIME "Checking out package [${PKG_NAME}] to package/${PKG_DIR} ..." case "${PKG_PROTO}" in git) [[ -z "${REPO_BRANCH}" ]] && REPO_BRANCH=master @@ -262,11 +293,11 @@ ExtraPackages() { svn checkout ${REPO_URL}/${PKG_NAME} ${PKG_NAME} > /dev/null 2>&1 ;; *) - echo "[$(date "+%H:%M:%S")] Error option: ${PKG_PROTO} !" && return + TIME "[ERROR] Error option: ${PKG_PROTO} !" && return ;; esac if [ -f ${PKG_NAME}/Makefile ] || [ -f ${PKG_NAME}/README* ] || [ ! "$(ls -A ${PKG_NAME})" = "" ];then - echo "[$(date "+%H:%M:%S")] Package [${PKG_NAME}] is detected!" + TIME "Package [${PKG_NAME}] is detected!" mv -f ${PKG_NAME} package/${PKG_DIR} fi unset PKG_PROTO PKG_DIR PKG_NAME REPO_URL REPO_BRANCH @@ -283,10 +314,10 @@ Replace_File() { if [ -${_TYPE1} "${GITHUB_WORKSPACE}/${FILE_NAME}" ];then [[ ! -z "${FILE_RENAME}" ]] && _RENAME="${FILE_RENAME}" || _RENAME="" if [ -${_TYPE1} "${GITHUB_WORKSPACE}/${FILE_NAME}" ];then - echo "[$(date "+%H:%M:%S")] Moving [${_TYPE2}] ${FILE_NAME} to ${2}/${FILE_RENAME} ..." + TIME "Moving [${_TYPE2}] ${FILE_NAME} to ${2}/${FILE_RENAME} ..." mv -f ${GITHUB_WORKSPACE}/${FILE_NAME} ${PATCH_DIR}/${_RENAME} else - echo "[$(date "+%H:%M:%S")] CustomFiles ${_TYPE2} [${FILE_NAME}] is not detected,skip move ..." + TIME "CustomFiles ${_TYPE2} [${FILE_NAME}] is not detected,skip move ..." fi fi unset FILE_NAME PATCH_DIR FILE_RENAME @@ -305,29 +336,28 @@ Update_Makefile() { PKG_DL_URL="${PKG_SOURCE_URL%\$(\PKG_VERSION*}" Offical_Version="$(curl -s ${api_URL} 2>/dev/null | grep 'tag_name' | egrep -o '[0-9].+[0-9.]+' | awk 'NR==1')" if [[ -z "${Offical_Version}" ]];then - echo "[ERROR] Failed to obtain the Offical version of [${PKG_NAME}],skip update ..." + TIME "[ERROR] Failed to obtain the Offical version of [${PKG_NAME}],skip update ..." return fi Source_Version="$(grep "PKG_VERSION:=" ${Makefile} | cut -c14-20)" Source_HASH="$(grep "PKG_HASH:=" ${Makefile} | cut -c11-100)" if [[ -z "${Source_Version}" ]] || [[ -z "${Source_HASH}" ]];then - echo "[ERROR] Failed to obtain the Source version or HASH,skip update ..." + TIME "[ERROR] Failed to obtain the Source version or Hash,skip update ..." return fi - echo -e "Current ${PKG_NAME} version: ${Source_Version}\nOffical ${PKG_NAME} version: ${Offical_Version}" if [[ ! "${Source_Version}" == "${Offical_Version}" ]];then - echo -e "[$(date "+%H:%M:%S")] Updating package ${PKG_NAME} [${Source_Version}] to [${Offical_Version}] ..." + TIME "Updating package ${PKG_NAME} [${Source_Version}] to [${Offical_Version}] ..." sed -i "s?PKG_VERSION:=${Source_Version}?PKG_VERSION:=${Offical_Version}?g" ${Makefile} wget -q "${PKG_DL_URL}${Offical_Version}?" -O /tmp/tmp_file if [[ "$?" -eq 0 ]];then Offical_HASH="$(sha256sum /tmp/tmp_file | cut -d ' ' -f1)" sed -i "s?PKG_HASH:=${Source_HASH}?PKG_HASH:=${Offical_HASH}?g" ${Makefile} else - echo "[ERROR] Failed to update the package [${PKG_NAME}],skip update ..." + TIME "[ERROR] Failed to update the package [${PKG_NAME}],skip update ..." fi fi else - echo "[$(date "+%H:%M:%S")] Package ${PKG_NAME} is not detected,skip update ..." + TIME "Package ${PKG_NAME} is not detected,skip update ..." fi unset _process1 _process2 Offical_Version Source_Version }