# Copyright (c) 2025 PaddlePaddle Authors. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. set -e PREDOWNLOAD_DIR=${CACHE_DIR}/cmake-predownload compute_checksum() { local CHECKSUM_ALGORITHM="$1" local FILE_PATH="$2" case "${CHECKSUM_ALGORITHM}" in md5) md5sum "${FILE_PATH}" | awk '{print $1}' ;; sha256) sha256sum "${FILE_PATH}" | awk '{print $1}' ;; *) echo "Unsupported checksum algorithm: ${CHECKSUM_ALGORITHM}" >&2 return 1 ;; esac } download_and_verify() { local URL="$1" local EXPECTED_CHECKSUM="$2" local TARGET_DIR=${PREDOWNLOAD_DIR} local TARGET_FILENAME="${3:-$(basename "${URL}")}" local MAX_RETRIES="${4:-3}" local CHECKSUM_ALGORITHM="${5:-md5}" local FILE_PATH="${TARGET_DIR}/${TARGET_FILENAME}" local retries=0 mkdir -p "${TARGET_DIR}" || { echo "Error: Failed to create directory ${TARGET_DIR}." return 1 } while [ $retries -lt $MAX_RETRIES ]; do echo "Downloading ${URL} (Attempt $((retries + 1))/${MAX_RETRIES})..." local TEMP_FILE_PATH="${FILE_PATH}.tmp" if [[ "$URL" == *"github"* ]]; then wget -q --no-check-certificate "${URL}" -O "${TEMP_FILE_PATH}" else wget -q --no-proxy --no-check-certificate "${URL}" -O "${TEMP_FILE_PATH}" fi if [ $? -ne 0 ]; then echo "Download failed. Retrying..." rm -f "${TEMP_FILE_PATH}" retries=$((retries + 1)) sleep 1 continue fi echo "Verifying ${CHECKSUM_ALGORITHM} checksum..." local COMPUTED_CHECKSUM COMPUTED_CHECKSUM=$(compute_checksum "${CHECKSUM_ALGORITHM}" "${TEMP_FILE_PATH}") if [ "${COMPUTED_CHECKSUM}" = "${EXPECTED_CHECKSUM}" ]; then mv "${TEMP_FILE_PATH}" "${FILE_PATH}" echo "${CHECKSUM_ALGORITHM} verification succeeded. File saved to: ${FILE_PATH}" return 0 else echo "${CHECKSUM_ALGORITHM} verification failed. Expected: ${EXPECTED_CHECKSUM}, Got: ${COMPUTED_CHECKSUM}" rm -f "${TEMP_FILE_PATH}" retries=$((retries + 1)) sleep 1 fi done echo "Failed to download and verify after ${MAX_RETRIES} attempts." exit 1 } check_file_with_checksum() { local FILE_PATH="$1" local EXPECTED_CHECKSUM="$2" local CHECKSUM_ALGORITHM="${3:-md5}" if [ ! -f "${FILE_PATH}" ]; then echo "File not found: ${FILE_PATH}" return 1 fi echo "Verifying ${CHECKSUM_ALGORITHM} checksum for existing file..." local COMPUTED_CHECKSUM COMPUTED_CHECKSUM=$(compute_checksum "${CHECKSUM_ALGORITHM}" "${FILE_PATH}") if [ "${COMPUTED_CHECKSUM}" = "${EXPECTED_CHECKSUM}" ]; then echo "${CHECKSUM_ALGORITHM} verification succeeded for existing file: ${FILE_PATH}" return 0 else echo "${CHECKSUM_ALGORITHM} verification failed. Expected: ${EXPECTED_CHECKSUM}, Got: ${COMPUTED_CHECKSUM}" rm -f "${FILE_PATH}" return 1 fi } check_file_with_md5() { check_file_with_checksum "$1" "$2" md5 } mkdir -p ${PREDOWNLOAD_DIR} TARGET_DIR=/paddle/third_party echo "::group::Check cmake predownload files" # llvm.cmake # Keep this in sync with cmake/cinn/external/llvm.cmake. if [[ "$(uname -m)" == "aarch64" || "$(uname -m)" == "arm64" ]]; then filename=llvm13-aarch64-glibc2.27.tar.gz EXPECTED_SHA256=6de076472823efa9266d669373b0de620e988a9dd241df94a319da06e7069958 else filename=llvm13-glibc2.27.tar.gz EXPECTED_SHA256=8e6afb8f51baed5530b1757aff5761a65963a3bd2c76bdb7431967634277086e fi filepath="${PREDOWNLOAD_DIR}/${filename}" URL=https://xly-devops.bj.bcebos.com/gouzil/${filename} echo "check ${filename}" if check_file_with_checksum "${filepath}" "${EXPECTED_SHA256}" sha256; then echo "use cfs cache" else echo "NO valid ${filename} in cache, try to download" download_and_verify ${URL} ${EXPECTED_SHA256} ${filename} 3 sha256 || exit 1 fi mkdir -p /paddle/build/third_party/llvm/src cp ${PREDOWNLOAD_DIR}/${filename} /paddle/build/third_party/llvm/src/${filename} # isl.cmake filename=isl-6a1760fe.tar.gz filepath="${PREDOWNLOAD_DIR}/${filename}" URL=https://paddle-inference-dist.bj.bcebos.com/CINN/isl-6a1760fe.tar.gz EXPECTED_MD5=fff10083fb79d394b8a7b7b2089f6183 echo "check ${filename}" if check_file_with_md5 "${filepath}" "${EXPECTED_MD5}"; then echo "use cfs cache" else echo "NO valid ${filename} in cache, try to download" download_and_verify ${URL} ${EXPECTED_MD5} ${filename} || exit 1 fi mkdir -p ${TARGET_DIR}/isl/ cp ${PREDOWNLOAD_DIR}/${filename} ${TARGET_DIR}/isl/${filename} # ginac.cmake filename=ginac-1.8.1_cln-1.3.6_gmp-6.2.1.tar.gz filepath="${PREDOWNLOAD_DIR}/${filename}" URL=https://paddle-inference-dist.bj.bcebos.com/CINN/ginac-1.8.1_cln-1.3.6_gmp-6.2.1.tar.gz EXPECTED_MD5=ebc3e4b7770dd604777ac3f01bfc8b06 echo "check ${filename}" if check_file_with_md5 "${filepath}" "${EXPECTED_MD5}"; then echo "use cfs cache" else echo "NO valid ${filename} in cache, try to download" download_and_verify ${URL} ${EXPECTED_MD5} ${filename} || exit 1 fi mkdir -p ${TARGET_DIR}/ginac/ cp ${PREDOWNLOAD_DIR}/${filename} ${TARGET_DIR}/ginac/${filename} # lapack.cmake filename=lapack_lnx_v3.10.0.20210628.tar.gz filepath="${PREDOWNLOAD_DIR}/${filename}" URL=https://paddlepaddledeps.bj.bcebos.com/lapack_lnx_v3.10.0.20210628.tar.gz EXPECTED_MD5=71f8cc8237a8571692f3e07f9a4f25f6 echo "check ${filename}" if check_file_with_md5 "${filepath}" "${EXPECTED_MD5}"; then echo "use cfs cache" else echo "NO valid ${filename} in cache, try to download" download_and_verify ${URL} ${EXPECTED_MD5} ${filename} || exit 1 fi mkdir -p ${TARGET_DIR}/lapack/Linux/ cp ${PREDOWNLOAD_DIR}/${filename} ${TARGET_DIR}/lapack/Linux/${filename} # magma.cmake if command -v nvidia-smi &>/dev/null; then echo "[magma] Detected NVIDIA CUDA environment." # Default to sm_70 # Try to detect sm_80 if possible MAGMA_ARCH="sm_70" EXPECTED_MD5="md5_for_sm_70_here" GPU_NAME=$(nvidia-smi --query-gpu=name --format=csv,noheader | head -n 1) echo "Detected GPU: ${GPU_NAME}" # Simple mapping, extend if needed if [[ "${GPU_NAME}" == *A100* ]]; then MAGMA_ARCH="sm_80" EXPECTED_MD5="c16079b2eaf48f5af741d979c5090667" elif [[ "${GPU_NAME}" == *V100* ]]; then MAGMA_ARCH="sm_70" EXPECTED_MD5="649b886f9df75face6aa98015ccb1885" fi echo "Selected MAGMA architecture: ${MAGMA_ARCH}" echo "Selected expected MD5: ${EXPECTED_MD5}" # Prepare filenames and URLs FILENAME="magma_lnx_${MAGMA_ARCH}_v2.9.0.20250728.tar.gz" FILEPATH="${PREDOWNLOAD_DIR}/${FILENAME}" URL="https://paddlepaddledeps.bj.bcebos.com/${FILENAME}" echo "Checking ${FILENAME}..." if check_file_with_md5 "${FILEPATH}" "${EXPECTED_MD5}"; then echo "Use cached file" else echo "No valid ${FILENAME} in cache, try to download" download_and_verify "${URL}" "${EXPECTED_MD5}" "${FILENAME}" || exit 1 fi mkdir -p "${TARGET_DIR}/magma/Linux/" cp "${PREDOWNLOAD_DIR}/${FILENAME}" "${TARGET_DIR}/magma/Linux/${FILENAME}" elif command -v rocm-smi &>/dev/null; then echo "[magma] Detected DCU environment." vendor=$(lscpu | grep 'Vendor ID' | awk '{print $3}') if [ "$vendor" == "HygonGenuine" ]; then MAGMA_ARCH=hip EXPECTED_MD5=f4fbe46c665819f6ae86d1aa447d07b5 fi echo "Selected MAGMA architecture: ${MAGMA_ARCH}" echo "Selected expected MD5: ${EXPECTED_MD5}" # Prepare filenames and URLs FILENAME="magma_lnx_${MAGMA_ARCH}_v2.9.0.20250728.tar.gz" FILEPATH="${PREDOWNLOAD_DIR}/${FILENAME}" URL="https://paddlepaddledeps.bj.bcebos.com/${FILENAME}" echo "Checking ${FILENAME}..." if check_file_with_md5 "${FILEPATH}" "${EXPECTED_MD5}"; then echo "Use cached file" else echo "No valid ${FILENAME} in cache, try to download" download_and_verify "${URL}" "${EXPECTED_MD5}" "${FILENAME}" || exit 1 fi mkdir -p "${TARGET_DIR}/magma/Linux/" cp "${PREDOWNLOAD_DIR}/${FILENAME}" "${TARGET_DIR}/magma/Linux/${FILENAME}" elif command -v xpu-smi &>/dev/null; then echo "[magma] Detected XPU environment." MAGMA_ARCH=xpu EXPECTED_MD5=889f990bfd4a24c98831cfda0243674a echo "Selected MAGMA architecture: ${MAGMA_ARCH}" echo "Selected expected MD5: ${EXPECTED_MD5}" # Prepare filenames and URLs FILENAME="magma_lnx_${MAGMA_ARCH}_v2.9.0.20250728.tar.gz" FILEPATH="${PREDOWNLOAD_DIR}/${FILENAME}" URL="https://paddlepaddledeps.bj.bcebos.com/${FILENAME}" echo "Checking ${FILENAME}..." if check_file_with_md5 "${FILEPATH}" "${EXPECTED_MD5}"; then echo "Use cached file" else echo "No valid ${FILENAME} in cache, try to download" download_and_verify "${URL}" "${EXPECTED_MD5}" "${FILENAME}" || exit 1 fi mkdir -p "${TARGET_DIR}/magma/Linux/" cp "${PREDOWNLOAD_DIR}/${FILENAME}" "${TARGET_DIR}/magma/Linux/${FILENAME}" else echo "nvidia-smi not found, skip downloading magma lib..." fi # mklml.cmake filename=csrmm_mklml_lnx_2019.0.5.tgz filepath="${PREDOWNLOAD_DIR}/${filename}" URL=http://paddlepaddledeps.bj.bcebos.com/csrmm_mklml_lnx_2019.0.5.tgz EXPECTED_MD5=bc6a7faea6a2a9ad31752386f3ae87da echo "check ${filename}" if check_file_with_md5 "${filepath}" "${EXPECTED_MD5}"; then echo "use cfs cache" else echo "NO valid ${filename} in cache, try to download" download_and_verify ${URL} ${EXPECTED_MD5} ${filename} || exit 1 fi mkdir -p ${TARGET_DIR}/mklml/Linux cp ${PREDOWNLOAD_DIR}/${filename} ${TARGET_DIR}/mklml/Linux/${filename} # third_party.cmake filename=externalErrorMsg_20210928.tar.gz filepath="${PREDOWNLOAD_DIR}/${filename}" URL=https://paddlepaddledeps.bj.bcebos.com/externalErrorMsg_20210928.tar.gz EXPECTED_MD5=a712a49384e77ca216ad866712f7cafa echo "check ${filename}" if check_file_with_md5 "${filepath}" "${EXPECTED_MD5}"; then echo "use cfs cache" else echo "NO valid ${filename} in cache, try to download" download_and_verify ${URL} ${EXPECTED_MD5} ${filename} || exit 1 fi mkdir -p /paddle/build/third_party/externalError/data cp ${PREDOWNLOAD_DIR}/${filename} /paddle/build/third_party/externalError/data/${filename} # libmct.cmake filename=libmct.tar.gz filepath="${PREDOWNLOAD_DIR}/${filename}" URL=https://pslib.bj.bcebos.com/libmct/libmct.tar.gz EXPECTED_MD5=7e6b6c91b45b7490186f7120ef7e08fe echo "check ${filename}" if check_file_with_md5 "${filepath}" "${EXPECTED_MD5}"; then echo "use cfs cache" else echo "NO valid ${filename} in cache, try to download" download_and_verify ${URL} ${EXPECTED_MD5} ${filename} || exit 1 fi mkdir -p ${TARGET_DIR}/libmct/Linux cp ${PREDOWNLOAD_DIR}/${filename} ${TARGET_DIR}/libmct/Linux/${filename} # jamalloc.cmake filename=jemalloc-5.1.0.tar.bz2 filepath="${PREDOWNLOAD_DIR}/${filename}" URL=https://paddle-ci.gz.bcebos.com/jemalloc-5.1.0.tar.bz2 EXPECTED_MD5=1f47a5aff2d323c317dfa4cf23be1ce4 echo "check ${filename}" if check_file_with_md5 "${filepath}" "${EXPECTED_MD5}"; then echo "use cfs cache" else echo "NO valid ${filename} in cache, try to download" download_and_verify ${URL} ${EXPECTED_MD5} ${filename} || exit 1 fi mkdir -p ${TARGET_DIR}/jemalloc/Linux cp ${PREDOWNLOAD_DIR}/${filename} ${TARGET_DIR}/jemalloc/Linux/${filename} # afs_api.cmake filename=afs_api.tar.gz filepath="${PREDOWNLOAD_DIR}/${filename}" URL=https://fleet.bj.bcebos.com/heterps/afs_api.tar.gz EXPECTED_MD5=1fc56f4a2891f122ddb9c16ff8ca232a echo "check ${filename}" if check_file_with_md5 "${filepath}" "${EXPECTED_MD5}"; then echo "use cfs cache" else echo "NO valid ${filename} in cache, try to download" download_and_verify ${URL} ${EXPECTED_MD5} ${filename} || exit 1 fi mkdir -p /paddle/build/third_party/afs_api/src/extern_afs_api cp ${PREDOWNLOAD_DIR}/${filename} /paddle/build/third_party/afs_api/src/extern_afs_api/${filename} # dgc.cmake filename=collective_7369ff.tgz filepath="${PREDOWNLOAD_DIR}/${filename}" URL=https://fleet.bj.bcebos.com/dgc/collective_7369ff.tgz EXPECTED_MD5=ede459281a0f979da8d84f81287369ff echo "check ${filename}" if check_file_with_md5 "${filepath}" "${EXPECTED_MD5}"; then echo "use cfs cache" else echo "NO valid ${filename} in cache, try to download" download_and_verify ${URL} ${EXPECTED_MD5} ${filename} || exit 1 fi mkdir -p ${TARGET_DIR}/dgc/Linux cp ${PREDOWNLOAD_DIR}/${filename} ${TARGET_DIR}/dgc/Linux/${filename} # cinn filename=lite_naive_model.tar.gz filepath="${PREDOWNLOAD_DIR}/${filename}" URL=http://paddle-inference-dist.bj.bcebos.com/lite_naive_model.tar.gz EXPECTED_MD5=e32ffbe183d99ff505dfecbbeef4e441 echo "check ${filename}" if check_file_with_md5 "${filepath}" "${EXPECTED_MD5}"; then echo "use cfs cache" else echo "NO valid ${filename} in cache, try to download" download_and_verify ${URL} ${EXPECTED_MD5} ${filename} || exit 1 fi mkdir -p /paddle/build/third_party/model cp ${PREDOWNLOAD_DIR}/${filename} /paddle/build/third_party/model/${filename} # onnxruntime.cmake # inference ONNXRUNTIME_VERSION=1.11.1 SYSTEM=$(uname -s) if [ "$SYSTEM" == "Linux" ]; then filename=linux-${ONNXRUNTIME_VERSION}.tgz filepath="${PREDOWNLOAD_DIR}/${filename}" URL=https://github.com/microsoft/onnxruntime/releases/download/v${ONNXRUNTIME_VERSION}/onnxruntime-linux-x64-${ONNXRUNTIME_VERSION}.tgz EXPECTED_MD5=ce3f2376854b3da4b483d6989666995a echo "check ${filename}" if check_file_with_md5 "${filepath}" "${EXPECTED_MD5}"; then echo "use cfs cache" else echo "NO valid ${filename} in cache, try to download" download_and_verify ${URL} ${EXPECTED_MD5} ${filename} || exit 1 fi mkdir -p ${TARGET_DIR}/onnxruntime/Linux cp ${PREDOWNLOAD_DIR}/${filename} ${TARGET_DIR}/onnxruntime/Linux/${ONNXRUNTIME_VERSION}.tgz else filename=osx-${ONNXRUNTIME_VERSION}.tgz filepath="${PREDOWNLOAD_DIR}/${filename}" URL=https://github.com/microsoft/onnxruntime/releases/download/v${ONNXRUNTIME_VERSION}/onnxruntime-osx-x86_64-${ONNXRUNTIME_VERSION}.tgz EXPECTED_MD5=6a6f6b7df97587da59976042f475d3f4 echo "check ${filename}" if check_file_with_md5 "${filepath}" "${EXPECTED_MD5}"; then echo "use cfs cache" else echo "NO valid ${filename} in cache, try to download" download_and_verify ${URL} ${EXPECTED_MD5} ${filename} || exit 1 fi mkdir -p ${TARGET_DIR}/onnxruntime/Darwin cp ${PREDOWNLOAD_DIR}/${filename} ${TARGET_DIR}/onnxruntime/Darwin/${ONNXRUNTIME_VERSION}.tgz fi # paddle2onnx.cmake # inference PADDLE2ONNX_VERSION=1.0.0rc2 SYSTEM=$(uname -s) if [ "$SYSTEM" == "Linux" ]; then filename=linux-${PADDLE2ONNX_VERSION}.tgz filepath="${PREDOWNLOAD_DIR}/${filename}" URL=https://github.com//PaddlePaddle/Paddle2ONNX/releases/download/v${PADDLE2ONNX_VERSION}/paddle2onnx-linux-x64-${PADDLE2ONNX_VERSION}.tgz EXPECTED_MD5=3fbb074987ba241327797f76514e937f echo "check ${filename}" if check_file_with_md5 "${filepath}" "${EXPECTED_MD5}"; then echo "use cfs cache" else echo "NO valid ${filename} in cache, try to download" download_and_verify ${URL} ${EXPECTED_MD5} ${filename} || exit 1 fi mkdir -p ${TARGET_DIR}/paddle2onnx/Linux cp ${PREDOWNLOAD_DIR}/${filename} ${TARGET_DIR}/paddle2onnx/Linux/${PADDLE2ONNX_VERSION}.tgz else filename=osx-${PADDLE2ONNX_VERSION}.tgz filepath="${PREDOWNLOAD_DIR}/${filename}" URL=https://github.com/PaddlePaddle/Paddle2ONNX/releases/download/v${PADDLE2ONNX_VERSION}/paddle2onnx-osx-x86_64-${PADDLE2ONNX_VERSION}.tgz EXPECTED_MD5=32a4381ff8441b69d58ef0fd6fd919eb echo "check ${filename}" if check_file_with_md5 "${filepath}" "${EXPECTED_MD5}"; then echo "use cfs cache" else echo "NO valid ${filename} in cache, try to download" download_and_verify ${URL} ${EXPECTED_MD5} ${filename} || exit 1 fi mkdir -p ${TARGET_DIR}/paddle2onnx/Darwin cp ${PREDOWNLOAD_DIR}/${filename} ${TARGET_DIR}/paddle2onnx/Darwin/${PADDLE2ONNX_VERSION}.tgz fi # flashattn.cmake # cudnn-frontend.cmake # distribute CUDNN_FRONTEND_VER=v1.5.2 filename=${CUDNN_FRONTEND_VER}.tar.gz filepath="${PREDOWNLOAD_DIR}/${filename}" URL=https://github.com/NVIDIA/cudnn-frontend/archive/refs/tags/v1.5.2.tar.gz EXPECTED_MD5=5ccb6e50a534670b2af7b30de50e7641 echo "check ${filename}" if check_file_with_md5 "${filepath}" "${EXPECTED_MD5}"; then echo "use cfs cache" else echo "NO valid ${filename} in cache, try to download" download_and_verify ${URL} ${EXPECTED_MD5} ${filename} || exit 1 fi mkdir -p ${TARGET_DIR}/cudnn-frontend cp ${PREDOWNLOAD_DIR}/${filename} ${TARGET_DIR}/cudnn-frontend/${filename} # test/cpp/pir/core filename=resnet50_main.prog filepath="${PREDOWNLOAD_DIR}/${filename}" URL=https://paddle-ci.gz.bcebos.com/ir_translator_test/resnet50_main.prog EXPECTED_MD5=b64c0ad3c96d99fc37d12094623ce1ad echo "check ${filename}" if check_file_with_md5 "${filepath}" "${EXPECTED_MD5}"; then echo "use cfs cache" else echo "NO valid ${filename} in cache, try to download" download_and_verify ${URL} ${EXPECTED_MD5} ${filename} || exit 1 fi mkdir -p /paddle/build/test/cpp/pir/core/ cp ${PREDOWNLOAD_DIR}/${filename} /paddle/build/test/cpp/pir/core/${filename} filename=resnet50_startup.prog filepath="${PREDOWNLOAD_DIR}/${filename}" URL=https://paddle-ci.gz.bcebos.com/ir_translator_test/resnet50_startup.prog EXPECTED_MD5=6affc5f40f0f0bb84d956919b95eaf50 echo "check ${filename}" if check_file_with_md5 "${filepath}" "${EXPECTED_MD5}"; then echo "use cfs cache" else echo "NO valid ${filename} in cache, try to download" download_and_verify ${URL} ${EXPECTED_MD5} ${filename} || exit 1 fi mkdir -p /paddle/build/test/cpp/pir/core/ cp ${PREDOWNLOAD_DIR}/${filename} /paddle/build/test/cpp/pir/core/${filename} filename=conditional_block_test.prog filepath="${PREDOWNLOAD_DIR}/${filename}" URL=https://paddle-ci.gz.bcebos.com/ir_translator_test/conditional_block_test.prog EXPECTED_MD5=cf9dc869ca7f69e2d57b38dbf8427134 echo "check ${filename}" if check_file_with_md5 "${filepath}" "${EXPECTED_MD5}"; then echo "use cfs cache" else echo "NO valid ${filename} in cache, try to download" download_and_verify ${URL} ${EXPECTED_MD5} ${filename} || exit 1 fi mkdir -p /paddle/build/test/cpp/pir/core/ cp ${PREDOWNLOAD_DIR}/${filename} /paddle/build/test/cpp/pir/core/${filename} filename=while_op_test.prog filepath="${PREDOWNLOAD_DIR}/${filename}" URL=https://paddle-ci.gz.bcebos.com/ir_translator_test/while_op_test.prog EXPECTED_MD5=290164ae52a496332b0be5829fc93bcd echo "check ${filename}" if check_file_with_md5 "${filepath}" "${EXPECTED_MD5}"; then echo "use cfs cache" else echo "NO valid ${filename} in cache, try to download" download_and_verify ${URL} ${EXPECTED_MD5} ${filename} || exit 1 fi mkdir -p /paddle/build/test/cpp/pir/core/ cp ${PREDOWNLOAD_DIR}/${filename} /paddle/build/test/cpp/pir/core/${filename} # test/cpp/pir/pass filename=sd15_unet.pdmodel filepath="${PREDOWNLOAD_DIR}/${filename}" URL=https://paddle-ci.gz.bcebos.com/test/sd15_unet.pdmodel EXPECTED_MD5=4b5a3b8ea5b49bfd12172847cfe5a92a echo "check ${filename}" if check_file_with_md5 "${filepath}" "${EXPECTED_MD5}"; then echo "use cfs cache" else echo "NO valid ${filename} in cache, try to download" download_and_verify ${URL} ${EXPECTED_MD5} ${filename} || exit 1 fi mkdir -p /paddle/build/test/cpp/pir/pass/ cp ${PREDOWNLOAD_DIR}/${filename} /paddle/build/test/cpp/pir/pass/${filename} echo "::endgroup::"