From 222b4ea987b8d90340b121f4571e7e9b35ed422b Mon Sep 17 00:00:00 2001 From: Gunjan Gupta Date: Sat, 27 Jan 2024 04:29:47 +0530 Subject: [PATCH] Delay fetching khadas common drivers to fix gha matrix failure --- config/sources/families/meson-s4t7.conf | 45 +++++++++++++++++++------ 1 file changed, 34 insertions(+), 11 deletions(-) diff --git a/config/sources/families/meson-s4t7.conf b/config/sources/families/meson-s4t7.conf index fa028c8674..1d27f9e37c 100644 --- a/config/sources/families/meson-s4t7.conf +++ b/config/sources/families/meson-s4t7.conf @@ -16,16 +16,17 @@ case $BRANCH in legacy) declare -g KERNEL_MAJOR_MINOR="5.15" # Major and minor versions of this kernel. For mainline caching. - declare -g KERNELSOURCE="https://github.com/khadas/linux.git" # Khadas kernel + declare -g KERNELSOURCE="${GITHUB_SOURCE}/khadas/linux.git" # Khadas kernel declare -g KERNELBRANCH="branch:khadas-vims-5.15.y" # Branch or tag to build from. It should match MAJOR_MINOR declare -g KERNELPATCHDIR="archive/meson-s4t7-5.15" + declare -g COMMON_DRIVERS_SOURCE="${GITHUB_SOURCE}/khadas/common_drivers" declare -g EXTRAWIFI=no ;; esac # Lets build uboot from source -BOOTSOURCE="https://github.com/khadas/u-boot.git" +BOOTSOURCE="${GITHUB_SOURCE}/khadas/u-boot.git" BOOTBRANCH="tag:khadas-vims-u-boot-2019.01-v1.6-release" BOOTPATCHDIR="u-boot-meson-s4t7" BOOTENV_FILE='meson.txt' @@ -110,22 +111,44 @@ function post_uboot_custom_postprocess__build_fip() { } function armbian_kernel_config__add_khadas_common_drivers() { - common_driver_source_loc="${SRC}/cache/sources/khadas_common_drivers/${KERNELBRANCH#*:}" if [[ ! -f .config ]]; then - display_alert "$BOARD" "Fetching khadas common drivers" "info" - fetch_from_repo "https://github.com/khadas/common_drivers" "khadas_common_drivers" "${KERNELBRANCH}" "yes" - common_drivers_hash=$(git -C ${common_driver_source_loc} rev-parse HEAD) + display_alert "$BOARD" "Fetching khadas common drivers git info" "info" + + common_drivers_cache_ttl_seconds=3600 + declare -A GIT_INFO_COMMON_DRIVERS=([GIT_SOURCE]="${COMMON_DRIVERS_SOURCE}" [GIT_REF]="${KERNELBRANCH}") + + if [[ "${KERNEL_GIT_CACHE_TTL}" != "" ]]; then + common_drivers_cache_ttl_seconds="${KERNEL_GIT_CACHE_TTL}" + fi + + memoize_cache_ttl=$common_drivers_cache_ttl_seconds run_memoized GIT_INFO_COMMON_DRIVERS "git2info" memoized_git_ref_to_info + # Hack to ensure that we will recreate kernel if common_drivers source changes - kernel_config_modifying_hashes+=( "khadas_common_drivers=${common_drivers_hash}" ) + kernel_config_modifying_hashes+=( "khadas_common_drivers=${GIT_INFO_COMMON_DRIVERS[SHA1]}" ) fi } function kernel_copy_extra_sources__khadas_common_drivers() { display_alert "$BOARD" "Copying khadas common drivers" "info" - common_driver_source_loc="${SRC}/cache/sources/khadas_common_drivers/${KERNELBRANCH#*:}" - [[ -d common_drivers ]] && rm -rf common_drivers - mkdir common_drivers - cp -aR ${common_driver_source_loc}/* common_drivers/ + + common_drivers_git_bare_tree="${SRC}/cache/git-bare/khadas_common_drivers" + declare common_drivers_git_bare_tree_done_marker="${common_drivers_git_bare_tree}/.git/armbian-bare-tree-done" + + if [[ ! -d "${common_drivers_git_bare_tree}" || ! -f "${common_drivers_git_bare_tree_done_marker}" ]]; then + if [[ -d "${common_drivers_git_bare_tree}" ]]; then + rm -rf "${common_drivers_git_bare_tree}" + fi + + run_host_command_logged git clone --bare "${COMMON_DRIVERS_SOURCE}" \ + "${common_drivers_git_bare_tree}" + + touch "${common_drivers_git_bare_tree_done_marker}" + fi + + GIT_FIXED_WORKDIR="${LINUXSOURCEDIR}/common_drivers" \ + GIT_BARE_REPO_FOR_WORKTREE="${common_drivers_git_bare_tree}" \ + GIT_BARE_REPO_INITIAL_BRANCH="${KERNELBRANCH#*:}" \ + fetch_from_repo "${COMMON_DRIVERS_SOURCE}" "common_drivers:${KERNEL_MAJOR_MINOR}" "${KERNELBRANCH}" "yes" } function pre_package_kernel_image__copy_meson_s4t7_overlays() {