1 Star 0 Fork 0

zengfr繁荣/ArmBian_AMLOGIC_DESKTOP

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
action.yml 8.09 KB
一键复制 编辑 原始数据 按行查看 历史
zengfr 提交于 2022-10-03 16:59 . custom build-armbian
name: "Rebuild armbian and kernel for Amlogic s9xxx tv box"
author: "https://github.com/ophub"
description: "Support Amlogic s9xxx tv box are s922x, s905x3, s905x2, s912, s905d, s905x, s905w, s905, 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_soc:
description: "Set Amlogic SoC."
required: false
default: "s905l3a"
armbian_kernel:
description: "Set kernel version."
required: false
default: "5.15.72"
version_branch:
description: "Set kernel branch."
required: false
default: "stable"
auto_kernel:
description: "Auto use the latest kernel."
required: false
default: "true"
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: ""
# For compile kernel -----
kernel_version:
description: "Select kernel version"
required: false
default: "5.15.72"
kernel_auto:
description: "Auto use the latest kernel"
required: false
default: "true"
kernel_package:
description: "Select compile package list"
required: false
default: "all"
kernel_sign:
description: "Set the kernel custom signature"
required: false
default: "-ophub"
kernel_repo:
description: "Select the kernel repository"
required: false
default: "unifreq"
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=" -d"
[[ -n "${{ inputs.armbian_soc }}" ]] && make_command="${make_command} -b ${{ inputs.armbian_soc }}"
[[ -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.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 }}"
sudo chmod +x rebuild
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=" -d"
[[ -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_sign }}" ]] && make_command="${make_command} -n ${{ inputs.kernel_sign }}"
[[ -n "${{ inputs.kernel_repo }}" ]] && make_command="${make_command} -r ${{ inputs.kernel_repo }}"
sudo chmod +x recompile
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"
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Shell
1
https://gitee.com/zengfr/ArmBian_AMLOGIC_DESKTOP.git
git@gitee.com:zengfr/ArmBian_AMLOGIC_DESKTOP.git
zengfr
ArmBian_AMLOGIC_DESKTOP
ArmBian_AMLOGIC_DESKTOP
main

搜索帮助