Files
letro-ios/ci_scripts/ci_common.sh
Doug a3bb30bc3d Upgrade the project to use Xcode 26.4 (and the 26.4 simulator for tests). (#5375)
* Upgrade the project to use Xcode 26.4 (and iOS 26.4 when running tests).

* Update the test OS assertions.

* updated preview tests

# Conflicts:
#	PreviewTests/Sources/__Snapshots__/PreviewTests/homeScreenInviteCell.iPhone-en-GB-0.png
#	PreviewTests/Sources/__Snapshots__/PreviewTests/homeScreenInviteCell.iPhone-pseudo-0.png

* update compound preview tests

---------

Co-authored-by: Mauro Romito <mauro.romito@element.io>
2026-04-16 14:33:20 +02:00

71 lines
2.3 KiB
Bash
Executable File

#!/bin/sh
# Return on failures
# Fail when expanding unset variables
# Trace each command before executing it
set -eEu
install_xcode_cloud_brew_dependencies () {
brew update && brew install xcodegen pkl getsentry/tools/sentry-cli
}
setup_github_actions_environment() {
xcode_select_for_github_actions
unset HOMEBREW_NO_INSTALL_FROM_API
export HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK=1
brew update && brew install xcodegen swiftlint swiftformat git-lfs pkl a7ex/homebrew-formulae/xcresultparser
}
setup_github_actions_translations_environment() {
xcode_select_for_github_actions
unset HOMEBREW_NO_INSTALL_FROM_API
export HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK=1
brew update && brew install swiftgen mint localazy/tools/localazy
mint install Asana/locheck
}
xcode_select_for_github_actions() {
# We need to select it globally for other processes like xcresultparser and our custom tools to use the same Xcode version.
sudo xcode-select -s /Applications/Xcode_26.4.app
}
generate_what_to_test_notes() {
if [[ -d "$CI_APP_STORE_SIGNED_APP_PATH" ]]; then
TESTFLIGHT_DIR_PATH=TestFlight
TESTFLIGHT_NOTES_FILE_NAME=WhatToTest.en-US.txt
LATEST_TAG=""
if [ "$CI_WORKFLOW" = "Release" ]; then
# Use -v to invert grep, searching for non-nightlies
LATEST_TAG=$(git tag --sort=-creatordate | grep -v 'nightly' | head -n1)
elif [ "$CI_WORKFLOW" = "Nightly" ]; then
LATEST_TAG=$(git tag --sort=-creatordate | grep 'nightly' | head -n1)
fi
if [[ -z "$LATEST_TAG" ]]; then
echo "generate_what_to_test_notes: Failed fetching previous tag"
return 0 # Continue even though this failed
fi
echo "generate_what_to_test_notes: latest tag is $LATEST_TAG"
mkdir $TESTFLIGHT_DIR_PATH
NOTES="$(git log --pretty='- %an: %s' "$LATEST_TAG"..HEAD)"
echo "generate_what_to_test_notes: Generated notes:\n"$NOTES""
echo "$NOTES" > $TESTFLIGHT_DIR_PATH/$TESTFLIGHT_NOTES_FILE_NAME
fi
}
fetch_unshallow_repository() {
# Xcode Cloud shallow clones the repo. We need to deepen it to fetch tags, commit history and be able to rebase main on develop at the end of releases.
git fetch --unshallow --quiet
}