mirror of
https://github.com/element-hq/element-x-ios.git
synced 2025-03-10 13:37:11 +00:00

* Set up GitHub generated release notes. * Remove Towncrier from the release script. * Add changelog failures for Labels with Danger and stop requesting a changelog file. * Update changelog documentation.
99 lines
3.4 KiB
Bash
Executable File
99 lines
3.4 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
setup_xcode_cloud_environment () {
|
|
# Return on failures
|
|
# Fail when expanding unset variables
|
|
# Trace each command before executing it
|
|
set -eEu
|
|
|
|
# Move to the project root
|
|
cd ..
|
|
|
|
# Prevent installing dependencies in system directories
|
|
echo 'export GEM_HOME=$HOME/.gem' >>~/.zshrc
|
|
echo 'export PATH=$GEM_HOME/bin:$PATH' >>~/.zshrc
|
|
echo 'export PATH="/usr/local/opt/ruby/bin:$PATH"' >> ~/.zshrc
|
|
echo 'export PATH="/Users/local/Library/Python/3.9/bin:$PATH"' >> ~/.zshrc
|
|
|
|
export GEM_HOME=$HOME/.gem
|
|
export PATH=$GEM_HOME/bin:$PATH
|
|
export PATH="/usr/local/opt/ruby/bin:$PATH"
|
|
export PATH="/Users/local/Library/Python/3.9/bin:$PATH"
|
|
|
|
# Things don't work well on the default ruby version
|
|
brew install ruby
|
|
|
|
gem install bundler
|
|
|
|
bundle config path vendor/bundle
|
|
bundle install --jobs 4 --retry 3
|
|
}
|
|
|
|
install_xcode_cloud_brew_dependencies () {
|
|
brew update && brew install xcodegen
|
|
|
|
if [ "$CI_WORKFLOW" = "Nightly" ]; then
|
|
brew install imagemagick@6
|
|
brew link imagemagick@6 # imagemagick@6 is keg-only, which means it was not symlinked into /usr/local,
|
|
fi
|
|
}
|
|
|
|
setup_github_actions_environment() {
|
|
unset HOMEBREW_NO_INSTALL_FROM_API
|
|
export HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK=1
|
|
|
|
brew update && brew install xcodegen swiftformat git-lfs a7ex/homebrew-formulae/xcresultparser
|
|
|
|
if [ "$CI_WORKFLOW" = "PR_BUILD" ]; then
|
|
brew install imagemagick@6
|
|
brew link imagemagick@6 # imagemagick@6 is keg-only, which means it was not symlinked into /usr/local,
|
|
fi
|
|
|
|
# brew "swiftlint" # Fails on the CI: `Target /usr/local/bin/swiftlint Target /usr/local/bin/swiftlint already exists`. Installed through https://github.com/actions/virtual-environments/blob/main/images/macos/macos-12-Readme.md#linters
|
|
|
|
bundle config path vendor/bundle
|
|
bundle install --jobs 4 --retry 3
|
|
}
|
|
|
|
setup_github_actions_translations_environment() {
|
|
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
|
|
}
|
|
|
|
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
|
|
|
|
# Xcode Cloud shallow clones the repo, we need to deepen it to fetch tags and commit history
|
|
# Instead of trying `--deepen=<depth>` just do a full unshallow to avoid future surprises
|
|
git fetch --unshallow --quiet
|
|
|
|
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
|
|
} |