mirror of
https://github.com/shivammathur/setup-php.git
synced 2026-08-29 18:22:01 +07:00
Use php-darwin caches on macOS
This commit is contained in:
+30
-3
@@ -174,6 +174,30 @@ get_brewed_php() {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Function to setup PHP from the cached builds.
|
||||||
|
setup_cached_versions() {
|
||||||
|
local cache_log
|
||||||
|
local cache_status
|
||||||
|
|
||||||
|
cache_log=$(mktemp "${RUNNER_TEMP:-/tmp}/setup-php-php-darwin.XXXXXX") || return 1
|
||||||
|
if run_script_source="https://raw.githubusercontent.com/shivammathur/php-darwin/main/scripts/install.sh" \
|
||||||
|
run_script_errexit=true run_script "php-darwin" "$version" "${debug:?}" "${ts:?}" \
|
||||||
|
>"$cache_log" 2>&1; then
|
||||||
|
if [ "${PHP_DARWIN_SHOW_LOG:-false}" = true ]; then
|
||||||
|
cat "$cache_log" >&4
|
||||||
|
fi
|
||||||
|
rm -f "$cache_log"
|
||||||
|
return 0
|
||||||
|
else
|
||||||
|
cache_status=$?
|
||||||
|
fi
|
||||||
|
printf 'setup-php: php-darwin cache installation failed (exit %s); falling back to Homebrew\n' \
|
||||||
|
"$cache_status" >&4
|
||||||
|
cat "$cache_log" >&4
|
||||||
|
rm -f "$cache_log"
|
||||||
|
return "$cache_status"
|
||||||
|
}
|
||||||
|
|
||||||
# Function to setup PHP 5.6 and newer using Homebrew.
|
# Function to setup PHP 5.6 and newer using Homebrew.
|
||||||
add_php() {
|
add_php() {
|
||||||
action=$1
|
action=$1
|
||||||
@@ -182,6 +206,9 @@ add_php() {
|
|||||||
php_keg="php@$version$suffix"
|
php_keg="php@$version$suffix"
|
||||||
php_formula="shivammathur/php/$php_keg"
|
php_formula="shivammathur/php/$php_keg"
|
||||||
if [[ "$existing_version" = "false" || -n "$suffix" || "$action" = "upgrade" ]]; then
|
if [[ "$existing_version" = "false" || -n "$suffix" || "$action" = "upgrade" ]]; then
|
||||||
|
if [ "${runner:?}" != "self-hosted" ] && [ "${use_package_cache:-true}" != "false" ] && setup_cached_versions; then
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
update_dependencies
|
update_dependencies
|
||||||
add_brew_tap "$php_tap"
|
add_brew_tap "$php_tap"
|
||||||
fi
|
fi
|
||||||
@@ -252,13 +279,13 @@ setup_php() {
|
|||||||
if [[ "$version" =~ ${old_versions:?} ]]; then
|
if [[ "$version" =~ ${old_versions:?} ]]; then
|
||||||
run_script "php5-darwin" "${version/./}" >/dev/null 2>&1
|
run_script "php5-darwin" "${version/./}" >/dev/null 2>&1
|
||||||
status="Installed"
|
status="Installed"
|
||||||
elif [ "${existing_version:0:3}" != "$version" ]; then
|
elif [[ "${existing_version:0:3}" != "$version" || -n "$(get_php_formula_suffix)" ]]; then
|
||||||
add_php "install" "$existing_version" >/dev/null 2>&1
|
add_php "install" "$existing_version" 4>&2 >/dev/null 2>&1
|
||||||
status="Installed"
|
status="Installed"
|
||||||
elif [[ "${existing_version:0:3}" = "$version" && "${update:?}" = "true" ]]; then
|
elif [[ "${existing_version:0:3}" = "$version" && "${update:?}" = "true" ]]; then
|
||||||
brew_php_version="$(brew info --json "php@$version" 2>/dev/null | jq -r '.[].versions.stable')"
|
brew_php_version="$(brew info --json "php@$version" 2>/dev/null | jq -r '.[].versions.stable')"
|
||||||
if [ "$brew_php_version" != "$existing_version" ]; then
|
if [ "$brew_php_version" != "$existing_version" ]; then
|
||||||
add_php "upgrade" "$existing_version" >/dev/null 2>&1
|
add_php "upgrade" "$existing_version" 4>&2 >/dev/null 2>&1
|
||||||
status="Upgraded"
|
status="Upgraded"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|||||||
+9
-2
@@ -232,8 +232,15 @@ run_script() {
|
|||||||
repo=$1
|
repo=$1
|
||||||
shift
|
shift
|
||||||
args=("$@")
|
args=("$@")
|
||||||
get -q -e /tmp/install.sh "$github/$repo/$latest/install.sh" "$jsdeliver/$repo@main/scripts/install.sh" "$setup_php/$repo/install.sh"
|
script_sources=()
|
||||||
bash /tmp/install.sh "${args[@]}"
|
[ -z "${run_script_source:-}" ] || script_sources+=("$run_script_source")
|
||||||
|
script_sources+=("$github/$repo/$latest/install.sh" "$jsdeliver/$repo@main/scripts/install.sh" "$setup_php/$repo/install.sh")
|
||||||
|
get -q -e /tmp/install.sh "${script_sources[@]}"
|
||||||
|
if [ "${run_script_errexit:-false}" = true ]; then
|
||||||
|
bash -e /tmp/install.sh "${args[@]}"
|
||||||
|
else
|
||||||
|
bash /tmp/install.sh "${args[@]}"
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
# Function to install required packages on self-hosted runners.
|
# Function to install required packages on self-hosted runners.
|
||||||
|
|||||||
Reference in New Issue
Block a user