diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 082b2e7be7..76443f4bed 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,5 +1,6 @@ stages: - build + - deploy variables: LANG: "en_US.UTF-8" @@ -18,6 +19,10 @@ internal: - bash buildbox/build-telegram.sh hockeyapp environment: name: internal + artifacts: + paths: + - build/artifacts + expire_in: 1 week beta_testflight: tags: @@ -31,3 +36,33 @@ beta_testflight: - bash buildbox/build-telegram.sh appstore environment: name: testflight_llc + artifacts: + paths: + - build/artifacts + expire_in: 1 week + +deploy_internal: + tags: + - ios_internal + stage: deploy + only: + - master + except: + - tags + script: + - bash buildbox/deploy-telegram.sh hockeyapp + environment: + name: internal + +deploy_beta_testflight: + tags: + - ios_beta + stage: deploy + only: + - beta + except: + - tags + script: + - bash buildbox/deploy-telegram.sh appstore + environment: + name: testflight_llc diff --git a/buildbox/build-telegram.sh b/buildbox/build-telegram.sh index a30b45ce5b..fd73889fcb 100644 --- a/buildbox/build-telegram.sh +++ b/buildbox/build-telegram.sh @@ -5,7 +5,7 @@ set -e BUILD_TELEGRAM_VERSION="1" MACOS_VERSION="10.15" -XCODE_VERSION="11.1" +XCODE_VERSION="11.2" GUEST_SHELL="bash" VM_BASE_NAME="macos$(echo $MACOS_VERSION | sed -e 's/\.'/_/g)_Xcode$(echo $XCODE_VERSION | sed -e 's/\.'/_/g)" @@ -173,24 +173,11 @@ scp -o LogLevel=ERROR -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/nul 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 BUCK_HTTP_CACHE=\"$BUCK_HTTP_CACHE\"; $GUEST_SHELL -l guest-build-telegram.sh $BUILD_CONFIGURATION" || true -if [ "$BUILD_CONFIGURATION" == "appstore" ]; then - ARCHIVE_PATH="$HOME/telegram-builds-archive" - DATE_PATH=$(date +%Y-%m-%d_%H-%M-%S) - ARCHIVE_BUILD_PATH="$ARCHIVE_PATH/$DATE_PATH" - mkdir -p "$ARCHIVE_PATH" - mkdir -p "$ARCHIVE_BUILD_PATH" - APPSTORE_IPA="Telegram-iOS-AppStoreLLC.ipa" - APPSTORE_DSYM_ZIP="Telegram-iOS-AppStoreLLC.app.dSYM.zip" - APPSTORE_TARGET_IPA="$ARCHIVE_BUILD_PATH/Telegram-iOS-AppStoreLLC.ipa" - APPSTORE_TARGET_DSYM_ZIP="$ARCHIVE_BUILD_PATH/Telegram-iOS-AppStoreLLC.app.dSYM.zip" +OUTPUT_PATH="build/artifacts" +rm -rf "$OUTPUT_PATH" +mkdir -p "$OUTPUT_PATH" - scp -o LogLevel=ERROR -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -pr telegram@"$VM_IP":"telegram-ios/*.ipa" "$ARCHIVE_BUILD_PATH/" - scp -o LogLevel=ERROR -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -pr telegram@"$VM_IP":"telegram-ios/*.zip" "$ARCHIVE_BUILD_PATH/" -elif [ "$BUILD_CONFIGURATION" == "verify" ]; then - VERIFY_IPA="Telegram-Verify-Build.ipa" - rm -f "$VERIFY_IPA" - scp -o LogLevel=ERROR -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -pr telegram@"$VM_IP":telegram-ios/Telegram-iOS-AppStoreLLC.ipa "./$VERIFY_IPA" -fi +scp -o LogLevel=ERROR -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -pr telegram@"$VM_IP":"telegram-ios/build/artifacts/*" "$OUTPUT_PATH/" if [ -z "$RUNNING_VM" ]; then if [ "$BUILD_MACHINE" == "linux" ]; then @@ -200,4 +187,8 @@ if [ -z "$RUNNING_VM" ]; then prlctl stop "$VM_NAME" --kill prlctl delete "$VM_NAME" fi -fi \ No newline at end of file +fi + +if [ ! -f "$OUTPUT_PATH/Telegram.ipa" ]; then + exit 1 +fi diff --git a/buildbox/deploy-telegram.sh b/buildbox/deploy-telegram.sh new file mode 100644 index 0000000000..4a5eb5afdd --- /dev/null +++ b/buildbox/deploy-telegram.sh @@ -0,0 +1,33 @@ +#!/bin/bash + +set -e + +CONFIGURATION="$1" + +if [ -z "$CONFIGURATION" ]; then + echo "Usage: sh deploy-telegram.sh CONFIGURATION" + exit 1 +fi + +if [ "$CONFIGURATION" == "hockeyapp" ]; then + echo "$CONFIGURATION" +elif [ "$CONFIGURATION" == "appstore" ]; then + echo "$CONFIGURATION" +else + echo "Unknown configuration $CONFIGURATION" + exit 1 +fi + +OUTPUT_PATH="build/artifacts" +IPA_PATH="$OUTPUT_PATH/Telegram.ipa" +DSYM_PATH="$OUTPUT_PATH/Telegram.DSYMs.zip" + +if [ ! -f "$IPA_PATH" ]; then + echo "$IPA_PATH not found" + exit 1 +fi + +if [ ! -f "$DSYM_PATH" ]; then + echo "$DSYM_PATH not found" + exit 1 +fi diff --git a/buildbox/guest-build-telegram.sh b/buildbox/guest-build-telegram.sh index b094f67104..a82cdbef3b 100644 --- a/buildbox/guest-build-telegram.sh +++ b/buildbox/guest-build-telegram.sh @@ -108,14 +108,10 @@ else if [ "$1" == "hockeyapp" ]; then BUILD_ENV_SCRIPT="internal" - RESULT_IPA_NAME="Telegram-iOS-Hockeyapp-Internal.ipa" - RESULT_DSYM_NAME="Telegram-iOS-Hockeyapp-Internal.app.dSYM.zip" FASTLANE_BUILD_CONFIGURATION="internalhockeyapp" APP_TARGET="app_arm64" elif [ "$1" == "appstore" ]; then BUILD_ENV_SCRIPT="appstore" - RESULT_IPA_NAME="Telegram-iOS-AppStoreLLC.ipa" - RESULT_DSYM_NAME="Telegram-iOS-AppStoreLLC.app.dSYM.zip" FASTLANE_BUILD_CONFIGURATION="testflight_llc" APP_TARGET="app" else @@ -124,8 +120,13 @@ else fi BUCK="$(pwd)/tools/buck" BUCK_HTTP_CACHE="$BUCK_HTTP_CACHE" LOCAL_CODESIGNING=1 sh "../telegram-ios-shared/buildbox/bin/$BUILD_ENV_SCRIPT.sh" make "$APP_TARGET" - cp "build/Telegram_signed.ipa" "./$RESULT_IPA_NAME" - cp "build/DSYMs.zip" "./$RESULT_DSYM_NAME" + + 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" export DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS="-t DAV" if [ "$1" == "appstore" ]; then