From be046e38ac2696e0b0b1918e04be0083e196c8e7 Mon Sep 17 00:00:00 2001 From: Ali <> Date: Thu, 29 Oct 2020 01:15:17 +0400 Subject: [PATCH] Build with bazel on CI --- Makefile | 9 ++++++++- Utils.makefile | 3 --- buildbox/build-telegram.sh | 4 ++-- buildbox/guest-build-telegram.sh | 20 ++++++++++++++------ 4 files changed, 24 insertions(+), 12 deletions(-) diff --git a/Makefile b/Makefile index d83c72aebd..1fc0dc1ba8 100644 --- a/Makefile +++ b/Makefile @@ -48,7 +48,7 @@ BAZEL=$(shell which bazel) ifneq ($(BAZEL_HTTP_CACHE_URL),) export BAZEL_CACHE_FLAGS=\ - --remote_cache="$(BAZEL_HTTP_CACHE_URL)" + --remote_cache="$(BAZEL_HTTP_CACHE_URL)" --experimental_remote_downloader="$(BAZEL_HTTP_CACHE_URL)" else ifneq ($(BAZEL_CACHE_DIR),) export BAZEL_CACHE_FLAGS=\ --disk_cache="${BAZEL_CACHE_DIR}" @@ -405,6 +405,7 @@ bazel_app_debug_arm64: bazel_app_arm64: APP_VERSION="${APP_VERSION}" \ BAZEL_CACHE_DIR="${BAZEL_CACHE_DIR}" \ + BAZEL_HTTP_CACHE_URL="${BAZEL_HTTP_CACHE_URL}" \ build-system/prepare-build.sh Telegram distribution "${BAZEL}" build Telegram/Telegram ${BAZEL_CACHE_FLAGS} ${BAZEL_COMMON_FLAGS} ${BAZEL_OPT_FLAGS} \ -c opt \ @@ -419,6 +420,7 @@ bazel_app_arm64: bazel_app_armv7: APP_VERSION="${APP_VERSION}" \ BAZEL_CACHE_DIR="${BAZEL_CACHE_DIR}" \ + BAZEL_HTTP_CACHE_URL="${BAZEL_HTTP_CACHE_URL}" \ build-system/prepare-build.sh Telegram distribution "${BAZEL}" build Telegram/Telegram ${BAZEL_CACHE_FLAGS} ${BAZEL_COMMON_FLAGS} ${BAZEL_OPT_FLAGS} \ -c opt \ @@ -433,6 +435,7 @@ bazel_app_armv7: bazel_app: APP_VERSION="${APP_VERSION}" \ BAZEL_CACHE_DIR="${BAZEL_CACHE_DIR}" \ + BAZEL_HTTP_CACHE_URL="${BAZEL_HTTP_CACHE_URL}" \ build-system/prepare-build.sh Telegram distribution "${BAZEL}" build Telegram/Telegram ${BAZEL_CACHE_FLAGS} ${BAZEL_COMMON_FLAGS} ${BAZEL_OPT_FLAGS} \ -c opt \ @@ -447,21 +450,25 @@ bazel_app: bazel_prepare_development_build: APP_VERSION="${APP_VERSION}" \ BAZEL_CACHE_DIR="${BAZEL_CACHE_DIR}" \ + BAZEL_HTTP_CACHE_URL="${BAZEL_HTTP_CACHE_URL}" \ build-system/prepare-build.sh Telegram development bazel_project: kill_xcode bazel_prepare_development_build APP_VERSION="${APP_VERSION}" \ BAZEL_CACHE_DIR="${BAZEL_CACHE_DIR}" \ + BAZEL_HTTP_CACHE_URL="${BAZEL_HTTP_CACHE_URL}" \ build-system/generate-xcode-project.sh Telegram bazel_soft_project: bazel_prepare_development_build APP_VERSION="${APP_VERSION}" \ BAZEL_CACHE_DIR="${BAZEL_CACHE_DIR}" \ + BAZEL_HTTP_CACHE_URL="${BAZEL_HTTP_CACHE_URL}" \ build-system/generate-xcode-project.sh Telegram bazel_opt_project: bazel_prepare_development_build APP_VERSION="${APP_VERSION}" \ BAZEL_CACHE_DIR="${BAZEL_CACHE_DIR}" \ + BAZEL_HTTP_CACHE_URL="${BAZEL_HTTP_CACHE_URL}" \ GENERATE_OPT_PROJECT=1 \ build-system/generate-xcode-project.sh Telegram diff --git a/Utils.makefile b/Utils.makefile index 2613b135f6..5abd94a690 100644 --- a/Utils.makefile +++ b/Utils.makefile @@ -31,9 +31,6 @@ ifneq ($(BUCK_DIR_CACHE),) endif check_env: -ifndef BUCK - $(error BUCK is not set) -endif sh check_env.sh kill_xcode: diff --git a/buildbox/build-telegram.sh b/buildbox/build-telegram.sh index ca08ea6eaa..b36fc0c19f 100644 --- a/buildbox/build-telegram.sh +++ b/buildbox/build-telegram.sh @@ -73,7 +73,7 @@ fi COMMIT_COMMENT="$(git log -1 --pretty=%B)" case "$COMMIT_COMMENT" in *"[nocache]"*) - export BAZEL_HTTP_CACHE="" + export BAZEL_HTTP_CACHE_URL="" ;; esac @@ -195,7 +195,7 @@ else fi scp -o LogLevel=ERROR -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -pr "$BUILDBOX_DIR/guest-build-telegram.sh" "$BUILDBOX_DIR/transient-data/source.tar" telegram@"$VM_IP": -ssh -o LogLevel=ERROR -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null telegram@"$VM_IP" -o ServerAliveInterval=60 -t "export TELEGRAM_BUILD_APPSTORE_PASSWORD=\"$TELEGRAM_BUILD_APPSTORE_PASSWORD\"; export TELEGRAM_BUILD_APPSTORE_TEAM_NAME=\"$TELEGRAM_BUILD_APPSTORE_TEAM_NAME\"; export TELEGRAM_BUILD_APPSTORE_USERNAME=\"$TELEGRAM_BUILD_APPSTORE_USERNAME\"; export BUILD_NUMBER=\"$BUILD_NUMBER\"; export COMMIT_ID=\"$COMMIT_ID\"; export COMMIT_AUTHOR=\"$COMMIT_AUTHOR\"; export BAZEL_HTTP_CACHE=\"$BAZEL_HTTP_CACHE\"; $GUEST_SHELL -l guest-build-telegram.sh $BUILD_CONFIGURATION" || true +ssh -o LogLevel=ERROR -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null telegram@"$VM_IP" -o ServerAliveInterval=60 -t "export TELEGRAM_BUILD_APPSTORE_PASSWORD=\"$TELEGRAM_BUILD_APPSTORE_PASSWORD\"; export TELEGRAM_BUILD_APPSTORE_TEAM_NAME=\"$TELEGRAM_BUILD_APPSTORE_TEAM_NAME\"; export TELEGRAM_BUILD_APPSTORE_USERNAME=\"$TELEGRAM_BUILD_APPSTORE_USERNAME\"; export BUILD_NUMBER=\"$BUILD_NUMBER\"; export COMMIT_ID=\"$COMMIT_ID\"; export COMMIT_AUTHOR=\"$COMMIT_AUTHOR\"; export BAZEL_HTTP_CACHE_URL=\"$BAZEL_HTTP_CACHE_URL\"; $GUEST_SHELL -l guest-build-telegram.sh $BUILD_CONFIGURATION" || true OUTPUT_PATH="build/artifacts" rm -rf "$OUTPUT_PATH" diff --git a/buildbox/guest-build-telegram.sh b/buildbox/guest-build-telegram.sh index c66d0c29bb..4d404f6591 100644 --- a/buildbox/guest-build-telegram.sh +++ b/buildbox/guest-build-telegram.sh @@ -101,13 +101,13 @@ done if [ "$1" == "hockeyapp" ] || [ "$1" == "appcenter-experimental" ] || [ "$1" == "appcenter-experimental-2" ]; then BUILD_ENV_SCRIPT="../telegram-ios-shared/buildbox/bin/internal.sh" - APP_TARGET="app_arm64" + APP_TARGET="bazel_app_arm64" elif [ "$1" == "appstore" ]; then BUILD_ENV_SCRIPT="../telegram-ios-shared/buildbox/bin/appstore.sh" - APP_TARGET="app" + APP_TARGET="bazel_app" elif [ "$1" == "verify" ]; then BUILD_ENV_SCRIPT="build-system/verify.sh" - APP_TARGET="app" + APP_TARGET="bazel_app" export CODESIGNING_DATA_PATH="build-system/fake-codesigning" export CODESIGNING_CERTS_VARIANT="distribution" export CODESIGNING_PROFILES_VARIANT="appstore" @@ -122,13 +122,21 @@ elif [ "$1" == "appcenter-experimental-2" ]; then export APP_CENTER_ID="$APP_CENTER_EXPERIMENTAL_2_ID" fi -PATH="$PATH:$(pwd)/tools" BAZEL_HTTP_CACHE="$BAZEL_HTTP_CACHE" LOCAL_CODESIGNING=1 sh "$BUILD_ENV_SCRIPT" make "$APP_TARGET" +PATH="$PATH:$(pwd)/tools" BAZEL_HTTP_CACHE_URL="$BAZEL_HTTP_CACHE_URL" LOCAL_CODESIGNING=1 sh "$BUILD_ENV_SCRIPT" make "$APP_TARGET" OUTPUT_PATH="build/artifacts" rm -rf "$OUTPUT_PATH" mkdir -p "$OUTPUT_PATH" -cp "build/Telegram_signed.ipa" "./$OUTPUT_PATH/Telegram.ipa" -cp "build/DSYMs.zip" "./$OUTPUT_PATH/Telegram.DSYMs.zip" +for f in bazel-out/applebin_ios-ios_arm*-opt-ST-*/bin/Telegram/Telegram.ipa; do + cp "$f" $OUTPUT_PATH/ +done + +mkdir -p build/DSYMs +for f in bazel-out/applebin_ios-ios_arm*-opt-ST-*/bin/Telegram/*.dSYM; do + cp -R "$f" build/DSYMs/ +done + +zip -r "./$OUTPUT_PATH/Telegram.DSYMs.zip" build/DSYMs 1>/dev/null cd "$BASE_DIR"