代码拉取完成,页面将自动刷新
name: "Rebuild armbian and kernel"
author: "https://github.com/ophub"
description: "Support Amlogic and Rockchip boxes, etc."
inputs:
# Choose build target
build_target:
description: "Choose build target: armbian / kernel"
required: false
default: "armbian"
# For build armbian -----
armbian_path:
description: "Set armbian original file path."
required: false
default: "build/output/images/*.img"
armbian_board:
description: "Set Amlogic Board."
required: false
default: "s905d_s905x3"
armbian_kernel:
description: "Set kernel version."
required: false
default: "5.10.125_5.15.50"
version_branch:
description: "Set kernel branch."
required: false
default: "stable"
auto_kernel:
description: "Auto use the latest kernel."
required: false
default: "true"
kernel_repo:
description: "Set kernel repository."
required: false
default: "https://github.com/ophub/kernel/tree/main/pub"
armbian_size:
description: "Set armbian rootfs size(Unit: MiB)."
required: false
default: "2560"
armbian_fstype:
description: "Set armbian rootfs type: ext4 / btrfs"
required: false
default: "ext4"
armbian_sign:
description: "Set armbian custom name."
required: false
default: ""
gh_token:
description: "Set the token."
required: false
default: ""
# For compile kernel -----
kernel_source:
description: "Select the kernel source code"
required: false
default: "unifreq"
kernel_version:
description: "Select kernel version"
required: false
default: "5.10.125_5.15.50"
kernel_auto:
description: "Auto use the latest kernel"
required: false
default: "true"
kernel_package:
description: "Select compile package list"
required: false
default: "all"
kernel_toolchain:
description: "Select the compilation toolchain"
required: false
default: "clang"
kernel_sign:
description: "Set the kernel custom signature"
required: false
default: "-ophub"
kernel_config:
description: "Set the path of kernel .config"
required: false
default: ""
runs:
using: "composite"
steps:
- shell: bash
run: |
cd ${GITHUB_ACTION_PATH}
echo -e "Current running path: [ ${PWD} ]"
build_target="${{ inputs.build_target }}"
[[ -z "${build_target}" ]] && build_target="armbian"
if [[ "${build_target}" == "armbian" ]]; then
cd ${GITHUB_ACTION_PATH}
echo -e "Start rebuilding Armbian..."
armbian_file="${{ inputs.armbian_path }}"
armbian_filepath="build/output/images"
echo -e "Get armbian file input parameters: [ ${armbian_file} ]"
[[ -z "${armbian_file}" ]] && echo -e "The [ armbian_path ] variable must be specified." && exit 1
[[ -d "${armbian_filepath}" ]] || mkdir -p ${armbian_filepath}
if [[ "${armbian_file}" == http* ]]; then
echo -e "Use wget to download file: [ ${armbian_file} ]"
wget ${armbian_file} -q -P ${armbian_filepath} 2>/dev/null
else
echo -e "Copy files: [ ${armbian_file} ]"
cp -vf ${GITHUB_WORKSPACE}/${armbian_file} ${armbian_filepath} 2>/dev/null
fi
sync
echo -e "About the ${armbian_filepath} directory: \n$(ls -l ${armbian_filepath} 2>/dev/null)"
cd ${GITHUB_ACTION_PATH}/${armbian_filepath}
echo -e "Check the armbian file format..."
down_file="$(ls -l . 2>/dev/null | grep "^-" | awk '{print $9}' | head -n 1)"
[[ -z "${down_file}" ]] && echo -e "The [ ${armbian_file} ] is invalid." && exit 1
[[ "${down_file:0-7}" == ".img.gz" ]] && gzip -df ${down_file} 2>/dev/null && sync
[[ "${down_file:0-7}" == ".img.xz" ]] && xz -d ${down_file} 2>/dev/null && sync
[[ "${down_file:0-4}" == ".zip" ]] && unzip -o ${down_file} 2>/dev/null && sync
echo -e "Armbian file: \n$(ls -l *.img 2>/dev/null)"
cd ${GITHUB_ACTION_PATH}
echo -e "Start to rebuild armbian..."
make_command=""
[[ -n "${{ inputs.armbian_board }}" ]] && make_command="${make_command} -b ${{ inputs.armbian_board }}"
[[ -n "${{ inputs.armbian_kernel }}" ]] && make_command="${make_command} -k ${{ inputs.armbian_kernel }}"
[[ -n "${{ inputs.auto_kernel }}" ]] && make_command="${make_command} -a ${{ inputs.auto_kernel }}"
[[ -n "${{ inputs.version_branch }}" ]] && make_command="${make_command} -v ${{ inputs.version_branch }}"
[[ -n "${{ inputs.kernel_repo }}" ]] && make_command="${make_command} -r ${{ inputs.kernel_repo }}"
[[ -n "${{ inputs.armbian_size }}" ]] && make_command="${make_command} -s ${{ inputs.armbian_size }}"
[[ -n "${{ inputs.armbian_fstype }}" ]] && make_command="${make_command} -t ${{ inputs.armbian_fstype }}"
[[ -n "${{ inputs.armbian_sign }}" ]] && make_command="${make_command} -n ${{ inputs.armbian_sign }}"
[[ -n "${{ inputs.gh_token }}" ]] && make_command="${make_command} -g ${{ inputs.gh_token }}"
sudo ./rebuild ${make_command}
cd ${GITHUB_ACTION_PATH}/${armbian_filepath}
gzip *.img && sync
cd ${GITHUB_ACTION_PATH}
echo -e "Output environment variables."
echo "PACKAGED_OUTPUTPATH=${PWD}/${armbian_filepath}" >> ${GITHUB_ENV}
echo "PACKAGED_OUTPUTDATE=$(date +"%m.%d.%H%M")" >> ${GITHUB_ENV}
echo "PACKAGED_STATUS=success" >> ${GITHUB_ENV}
echo -e "PACKAGED_OUTPUTPATH: ${PWD}/${armbian_filepath}"
echo -e "PACKAGED_OUTPUTDATE: $(date +"%m.%d.%H%M")"
echo -e "PACKAGED_STATUS: success"
echo -e "PACKAGED_OUTPUTPATH files list: \n$(ls -l ${PWD}/${armbian_filepath} 2>/dev/null)"
elif [[ "${build_target}" == "kernel" ]]; then
cd ${GITHUB_ACTION_PATH}
echo -e "Start compile kernel..."
config_filepath="compile-kernel/tools/config"
kernel_outpath="compile-kernel/output"
if [[ -n "${{ inputs.kernel_config }}" ]]; then
if [[ "$(ls ${GITHUB_WORKSPACE}/${{ inputs.kernel_config }}/config-* -l 2>/dev/null | grep "^-" | wc -l)" -ne "0" ]]; then
echo -e "Use a custom kernel compilation template."
rm -f ${config_filepath}/* 2>/dev/null && sync
cp -vf ${GITHUB_WORKSPACE}/${{ inputs.kernel_config }}/config-* ${config_filepath}/ 2>/dev/null && sync
echo -e "List of Kernel Custom Compilation Configuration Templates: \n$(ls -l ${config_filepath})"
else
echo -e "The custom kernel compilation template path is invalid, continue to use the default template."
fi
else
echo -e "Use the default kernel compilation template."
fi
make_command=""
[[ -n "${{ inputs.kernel_source }}" ]] && make_command="${make_command} -r ${{ inputs.kernel_source }}"
[[ -n "${{ inputs.kernel_version }}" ]] && make_command="${make_command} -k ${{ inputs.kernel_version }}"
[[ -n "${{ inputs.kernel_auto }}" ]] && make_command="${make_command} -a ${{ inputs.kernel_auto }}"
[[ -n "${{ inputs.kernel_package }}" ]] && make_command="${make_command} -p ${{ inputs.kernel_package }}"
[[ -n "${{ inputs.kernel_toolchain }}" ]] && make_command="${make_command} -t ${{ inputs.kernel_toolchain }}"
[[ -n "${{ inputs.kernel_sign }}" ]] && make_command="${make_command} -n ${{ inputs.kernel_sign }}"
sudo ./recompile ${make_command}
cd ${GITHUB_ACTION_PATH}
output_tags="$(ls -l ${PWD}/${kernel_outpath}/*.tar.gz | awk '{print $9}' | grep -oE '[1-9].[0-9]{1,3}.[0-9]+' | xargs | tr "[ ]" "_")"
echo -e "Output environment variables."
echo "PACKAGED_OUTPUTTAGS=${output_tags}" >> ${GITHUB_ENV}
echo "PACKAGED_OUTPUTPATH=${PWD}/${kernel_outpath}" >> ${GITHUB_ENV}
echo "PACKAGED_OUTPUTDATE=$(date +"%m.%d.%H%M")" >> ${GITHUB_ENV}
echo "PACKAGED_STATUS=success" >> ${GITHUB_ENV}
echo -e "PACKAGED_OUTPUTTAGS: ${output_tags}"
echo -e "PACKAGED_OUTPUTPATH: ${PWD}/${kernel_outpath}"
echo -e "PACKAGED_OUTPUTDATE: $(date +"%m.%d.%H%M")"
echo -e "PACKAGED_STATUS: success"
echo -e "PACKAGED_OUTPUTPATH files list: \n$(ls -l ${PWD}/${kernel_outpath} 2>/dev/null)"
else
echo -e "Please select a build target: armbian / kernel"
exit 1
fi
branding:
icon: "terminal"
color: "gray-dark"
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。