From 633ca91c4a0c91bba4e82b030147200d6f23a7a4 Mon Sep 17 00:00:00 2001 From: Yi Chou Date: Thu, 20 Apr 2023 15:34:39 +0800 Subject: gitlab: Use repo to clone boringssl Since we are clone the repo with "repo" command, we don't need to clone it again. BRANCH=None BUG=b:248508087, b:273639386 TEST=yaml validator, run repo_clone_at_data locally Change-Id: I08e8413382b8151bebecc90362fb7f31342c01e8 Signed-off-by: Yi Chou Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/4453523 Reviewed-by: Jeremy Bettis --- .gitlab-ci.yml | 33 +++++++++++++++++++++++++++------ 1 file changed, 27 insertions(+), 6 deletions(-) (limited to '.gitlab-ci.yml') diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 436b6cdf30..bc8b4c3f37 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -39,6 +39,7 @@ before_script: - export EC_DIR="${CI_PROJECT_DIR}/ec_dir" - export MODULES_DIR="$CI_PROJECT_DIR/modules" - export ZEPHYR_BASE="${CI_PROJECT_DIR}/zephyr/main" + - export REPO_BASE="${CI_PROJECT_DIR}/repo" - git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git - export PATH="${CI_PROJECT_DIR}/depot_tools:$PATH" - git config --global --add safe.directory '*' @@ -70,18 +71,38 @@ before_script: done ; git checkout -d "${rev}" ; } - - "boringssl_commit() { - repo init -u https://chromium.googlesource.com/chromiumos/manifest -b main > /dev/null ; - repo sync external/gob/boringssl/boringssl > /dev/null ; - repo info external/gob/boringssl/boringssl | grep -Po '(?<=Manifest revision: )\\w*' ; - }" + - repo_clone_at_data() { + local repo="$1" ; + local branch="$2" ; + local path="$3" ; + local date="$4" ; + + mkdir -p "${REPO_BASE}" ; + cd "${REPO_BASE}" ; + repo init -u https://chromium.googlesource.com/chromiumos/manifest -b main ; + repo sync "${repo}" ; + + mkdir -p "${path}" ; + cp -rTLf "${repo}" "${path}" ; + + cd "${path}" ; + rev="$(git rev-list -n 1 --before="${date}" "${branch}")" ; + depth=1 ; + while [ -z "${rev}" ] ; do + depth="$(( ${depth} + 100 ))" ; + git fetch --depth="${depth}" ; + rev="$(git rev-list -n 1 --before="${date}" "${branch}")" ; + done ; + git checkout -d "${rev}" ; + rev="$(git rev-list -n 1 --before="${date}" "${branch}")" ; + } - ec_commit_date="$(cd ${EC_DIR} ; git log -1 HEAD --format=%cd --date=iso)" - checkout_at_date "https://chromium.googlesource.com/chromiumos/third_party/zephyr" "main" "${ZEPHYR_BASE}" "${ec_commit_date}" - checkout_at_date "https://chromium.googlesource.com/chromiumos/third_party/zephyr/cmsis" "chromeos-main" "${MODULES_DIR}/cmsis" "${ec_commit_date}" - checkout_at_date "https://chromium.googlesource.com/chromiumos/third_party/zephyr/hal_stm32" "chromeos-main" "${MODULES_DIR}/hal_stm32" "${ec_commit_date}" - checkout_at_date "https://chromium.googlesource.com/chromiumos/third_party/zephyr/nanopb" "main" "${MODULES_DIR}/nanopb" "${ec_commit_date}" - checkout_at_date "https://chromium.googlesource.com/chromiumos/third_party/cryptoc" "main" "${MODULES_DIR}/cryptoc" "${ec_commit_date}" - - checkout_at_date "https://chromium.googlesource.com/external/gob/boringssl/boringssl" "$(boringssl_commit)" "${MODULES_DIR}/boringssl" "${ec_commit_date}" + - repo_clone_at_data "src/third_party/boringssl" "m/main" "${MODULES_DIR}/boringssl" "${ec_commit_date}" # Add a symlink so the ec appears in modules directory (hack to make zmake work) - ln -s "${EC_DIR}" "${MODULES_DIR}/ec" # Install Python and packages -- cgit v1.2.1