1#!/bin/bash 2set -ex -o pipefail 3 4echo "" 5echo "DIR: $(pwd)" 6WORKSPACE=/Users/distiller/workspace 7PROJ_ROOT=/Users/distiller/project 8ARTIFACTS_DIR=${WORKSPACE}/ios 9ls ${ARTIFACTS_DIR} 10ZIP_DIR=${WORKSPACE}/zip 11mkdir -p ${ZIP_DIR}/install/lib 12mkdir -p ${ZIP_DIR}/src 13# copy header files 14cp -R ${ARTIFACTS_DIR}/arm64/include ${ZIP_DIR}/install/ 15# build a FAT bianry 16cd ${ZIP_DIR}/install/lib 17target_libs=(libc10.a libclog.a libcpuinfo.a libeigen_blas.a libpthreadpool.a libpytorch_qnnpack.a libtorch_cpu.a libtorch.a libXNNPACK.a) 18for lib in ${target_libs[*]} 19do 20 if [ -f "${ARTIFACTS_DIR}/x86_64/lib/${lib}" ] && [ -f "${ARTIFACTS_DIR}/arm64/lib/${lib}" ]; then 21 libs=("${ARTIFACTS_DIR}/x86_64/lib/${lib}" "${ARTIFACTS_DIR}/arm64/lib/${lib}") 22 lipo -create "${libs[@]}" -o ${ZIP_DIR}/install/lib/${lib} 23 fi 24done 25lipo -i ${ZIP_DIR}/install/lib/*.a 26echo "BUILD_LITE_INTERPRETER: ${BUILD_LITE_INTERPRETER}" 27# copy the umbrella header and license 28if [ "${BUILD_LITE_INTERPRETER}" == "1" ]; then 29 cp ${PROJ_ROOT}/ios/LibTorch-Lite.h ${ZIP_DIR}/src/ 30else 31 cp ${PROJ_ROOT}/ios/LibTorch.h ${ZIP_DIR}/src/ 32fi 33cp ${PROJ_ROOT}/LICENSE ${ZIP_DIR}/ 34# zip the library 35export DATE="$(date -u +%Y%m%d)" 36export IOS_NIGHTLY_BUILD_VERSION="2.2.0.${DATE}" 37if [ "${BUILD_LITE_INTERPRETER}" == "1" ]; then 38 # libtorch_lite_ios_nightly_1.11.0.20210810.zip 39 ZIPFILE="libtorch_lite_ios_nightly_${IOS_NIGHTLY_BUILD_VERSION}.zip" 40else 41 ZIPFILE="libtorch_ios_nightly_build.zip" 42fi 43cd ${ZIP_DIR} 44#for testing 45touch version.txt 46echo "${IOS_NIGHTLY_BUILD_VERSION}" > version.txt 47zip -r ${ZIPFILE} install src version.txt LICENSE 48# upload to aws 49# Install conda then 'conda install' awscli 50curl --retry 3 -o ~/conda.sh https://repo.anaconda.com/miniconda/Miniconda3-py39_4.12.0-MacOSX-x86_64.sh 51chmod +x ~/conda.sh 52/bin/bash ~/conda.sh -b -p ~/anaconda 53export PATH="~/anaconda/bin:${PATH}" 54source ~/anaconda/bin/activate 55conda install -c conda-forge awscli --yes 56set +x 57export AWS_ACCESS_KEY_ID=${AWS_S3_ACCESS_KEY_FOR_PYTORCH_BINARY_UPLOAD} 58export AWS_SECRET_ACCESS_KEY=${AWS_S3_ACCESS_SECRET_FOR_PYTORCH_BINARY_UPLOAD} 59set +x 60# echo "AWS KEY: ${AWS_ACCESS_KEY_ID}" 61# echo "AWS SECRET: ${AWS_SECRET_ACCESS_KEY}" 62aws s3 cp ${ZIPFILE} s3://ossci-ios-build/ --acl public-read 63 64if [ "${BUILD_LITE_INTERPRETER}" == "1" ]; then 65 # create a new LibTorch-Lite-Nightly.podspec from the template 66 echo "cp ${PROJ_ROOT}/ios/LibTorch-Lite-Nightly.podspec.template ${PROJ_ROOT}/ios/LibTorch-Lite-Nightly.podspec" 67 cp ${PROJ_ROOT}/ios/LibTorch-Lite-Nightly.podspec.template ${PROJ_ROOT}/ios/LibTorch-Lite-Nightly.podspec 68 69 # update pod version 70 sed -i '' -e "s/IOS_NIGHTLY_BUILD_VERSION/${IOS_NIGHTLY_BUILD_VERSION}/g" ${PROJ_ROOT}/ios/LibTorch-Lite-Nightly.podspec 71 cat ${PROJ_ROOT}/ios/LibTorch-Lite-Nightly.podspec 72 73 # push the new LibTorch-Lite-Nightly.podspec to CocoaPods 74 pod trunk push --verbose --allow-warnings --use-libraries --skip-import-validation ${PROJ_ROOT}/ios/LibTorch-Lite-Nightly.podspec 75fi 76