优化 OpenWrt-19.07 21.02 支持

This commit is contained in:
Hyy2001X 2021-04-08 16:45:11 +08:00
parent 26a10bbc7f
commit 783894d859
3 changed files with 94 additions and 76 deletions

View File

@ -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:

View File

@ -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:

View File

@ -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
}