mirror of
https://github.com/Homebrew/brew.git
synced 2025-07-14 16:09:03 +08:00
More Homebrew .pkg
improvements
- test on more macOS versions and improve the test names - add a more resilient and less disruptive version of changing `git`'s `safe.directory` configuration
This commit is contained in:
parent
bb39727de6
commit
5c5ac49a39
19
.github/workflows/pkg-installer.yml
vendored
19
.github/workflows/pkg-installer.yml
vendored
@ -126,14 +126,25 @@ jobs:
|
|||||||
path: Homebrew-${{ steps.homebrew-version.outputs.version }}.pkg
|
path: Homebrew-${{ steps.homebrew-version.outputs.version }}.pkg
|
||||||
test:
|
test:
|
||||||
needs: build
|
needs: build
|
||||||
|
name: "test (${{matrix.name}})"
|
||||||
runs-on: ${{ matrix.runner }}
|
runs-on: ${{ matrix.runner }}
|
||||||
strategy:
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
include:
|
include:
|
||||||
# Intel (free)
|
# Intel
|
||||||
- runner: macos-latest
|
- runner: macos-12
|
||||||
# Apple Silicon (paid)
|
name: macos-12-x86_64
|
||||||
- runner: macos-latest-xlarge
|
- runner: macos-13
|
||||||
|
name: macos-13-x86_64
|
||||||
|
# Apple Silicon
|
||||||
|
- runner: macos-13-xlarge
|
||||||
|
name: macos-13-arm64
|
||||||
|
# TODO: add when available
|
||||||
|
# - runner: macos-14
|
||||||
|
# name: macos-14-x86_64
|
||||||
|
# - runner: macos-14-xlarge
|
||||||
|
# name: macos-14-arm64
|
||||||
steps:
|
steps:
|
||||||
- name: Download installer from GitHub Actions
|
- name: Download installer from GitHub Actions
|
||||||
uses: actions/download-artifact@v3
|
uses: actions/download-artifact@v3
|
||||||
|
@ -21,13 +21,35 @@ fi
|
|||||||
# add Git to path
|
# add Git to path
|
||||||
export PATH="/Library/Developer/CommandLineTools/usr/bin:/Applications/Xcode.app/Contents/Developer/usr/bin:${PATH}"
|
export PATH="/Library/Developer/CommandLineTools/usr/bin:/Applications/Xcode.app/Contents/Developer/usr/bin:${PATH}"
|
||||||
|
|
||||||
|
# helpers for setting/unsetting Git's safe directory setting
|
||||||
|
set_git_safe_directory() {
|
||||||
|
if git config --global --get-all safe.directory | grep -q "${1}"
|
||||||
|
then
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
SET_GIT_SAFE_DIRECTORY="${1}"
|
||||||
|
git config --global --add safe.directory "${1}"
|
||||||
|
}
|
||||||
|
unset_git_safe_directory() {
|
||||||
|
if [[ -z "${SET_GIT_SAFE_DIRECTORY-}" ]]
|
||||||
|
then
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
|
git config --global --unset safe.directory "${1}" || git config --global --unset-all safe.directory
|
||||||
|
if [[ ${SET_GIT_SAFE_DIRECTORY-} == "${1}" ]]
|
||||||
|
then
|
||||||
|
unset SET_GIT_SAFE_DIRECTORY
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
# reset Git repository
|
# reset Git repository
|
||||||
cd "${homebrew_directory}"
|
cd "${homebrew_directory}"
|
||||||
git config --global --add safe.directory "${homebrew_directory}"
|
set_git_safe_directory "${homebrew_directory}"
|
||||||
git reset --hard
|
git reset --hard
|
||||||
git checkout --force master
|
git checkout --force master
|
||||||
git branch | grep -v '\*' | xargs -n 1 git branch --delete --force || true
|
git branch | grep -v '\*' | xargs -n 1 git branch --delete --force || true
|
||||||
git config --global --unset safe.directory "${homebrew_directory}"
|
unset_git_safe_directory "${homebrew_directory}"
|
||||||
|
|
||||||
# move to /usr/local if on x86_64
|
# move to /usr/local if on x86_64
|
||||||
if [[ $(uname -m) == "x86_64" ]]
|
if [[ $(uname -m) == "x86_64" ]]
|
||||||
@ -36,8 +58,11 @@ then
|
|||||||
then
|
then
|
||||||
cp -pRL "${homebrew_directory}/.git" "/usr/local/Homebrew/"
|
cp -pRL "${homebrew_directory}/.git" "/usr/local/Homebrew/"
|
||||||
mv "${homebrew_directory}/cache_api" "/usr/local/Homebrew/"
|
mv "${homebrew_directory}/cache_api" "/usr/local/Homebrew/"
|
||||||
|
|
||||||
|
set_git_safe_directory /usr/local/Homebrew
|
||||||
git -C /usr/local/Homebrew reset --hard
|
git -C /usr/local/Homebrew reset --hard
|
||||||
git -C /usr/local/Homebrew checkout --force master
|
git -C /usr/local/Homebrew checkout --force master
|
||||||
|
unset_git_safe_directory /usr/local/Homebrew
|
||||||
else
|
else
|
||||||
mkdir -vp /usr/local/bin
|
mkdir -vp /usr/local/bin
|
||||||
mv "${homebrew_directory}" "/usr/local/Homebrew/"
|
mv "${homebrew_directory}" "/usr/local/Homebrew/"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user