- move more sharable code to CI static methods - merge `release_to_github` and `prepare_next_release` into one single command as they had dependencies on each other - remove all traces of ruby and fastlane
71 lines
2.3 KiB
Bash
Executable File
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.1.1.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
|
|
}
|