mirror of
https://github.com/actions/runner-images.git
synced 2025-12-20 06:35:47 +00:00
49 lines
1.7 KiB
Bash
49 lines
1.7 KiB
Bash
#!/bin/bash -e
|
|
################################################################################
|
|
## File: homebrew.sh
|
|
## Desc: Installs the Homebrew on Linux
|
|
## Caveat: Brew MUST NOT be used to install any tool during the image build to avoid dependencies, which may come along with the tool
|
|
################################################################################
|
|
|
|
# Source the helpers
|
|
source $HELPER_SCRIPTS/etc-environment.sh
|
|
source $HELPER_SCRIPTS/install.sh
|
|
|
|
# Install the Homebrew on Linux
|
|
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
|
|
|
|
# Invoke shellenv to make brew available during runnig session
|
|
eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"
|
|
|
|
setEtcEnvironmentVariable HOMEBREW_NO_AUTO_UPDATE 1
|
|
setEtcEnvironmentVariable HOMEBREW_CLEANUP_PERIODIC_FULL_DAYS 3650
|
|
|
|
# Validate the installation ad hoc
|
|
echo "Validate the installation reloading /etc/environment"
|
|
reloadEtcEnvironment
|
|
|
|
# Install additional brew packages
|
|
|
|
# brew GCC installation needed because the default Ubuntu components
|
|
# are too old for current brew software
|
|
# See:
|
|
# https://github.com/Homebrew/homebrew-core/issues/110877
|
|
|
|
brew_packages=$(get_toolset_value .brew[].name)
|
|
for package in $brew_packages; do
|
|
echo "Install $package"
|
|
brew install $package
|
|
# create symlinks for zstd in /usr/local/bin
|
|
if [[ $package == "zstd" ]]; then
|
|
find $(brew --prefix)/bin -name *zstd* -exec sudo sh -c 'ln -s {} /usr/local/bin/$(basename {})' ';'
|
|
fi
|
|
done
|
|
|
|
gfortran=$(brew --prefix)/bin/gfortran
|
|
# Remove gfortran symlink, not to conflict with system gfortran
|
|
if [[ -e $gfortran ]]; then
|
|
rm $gfortran
|
|
fi
|
|
|
|
invoke_tests "Tools" "Homebrew"
|