Skip to content

Update macOS versions. #396

Update macOS versions.

Update macOS versions. #396

Workflow file for this run

name: CI
on: push
concurrency:
group: ${{ github.ref }}
jobs:
shellcheck:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: lumaxis/shellcheck-problem-matchers@v1
with:
format: gcc
- name: Run ShellCheck
uses: ludeeus/action-shellcheck@master
env:
SHELLCHECK_OPTS: --format=gcc
rubocop:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: ruby/setup-ruby@v1
with:
ruby-version: 2.7
- run: gem install rubocop --no-doc
- run: rubocop --display-cop-names --format progress --format json --out rubocop.json
- uses: duderman/rubocop-annotate-action@v0.1.0
with:
path: rubocop.json
if: ${{ failure() }}
macos:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [macos-13, macos-14]
fail-fast: false
steps:
- name: Uninstall gems
run: |
set -e
set -u
set -o pipefail
for gem in $(/usr/bin/gem list --no-versions | grep -v \
-e 'bigdecimal' \
-e 'CFPropertyList' \
-e 'cmath' \
-e 'csv' \
-e 'date' \
-e 'dbm' \
-e 'did_you_mean' \
-e 'e2mmap' \
-e 'etc' \
-e 'fcntl' \
-e 'fiddle' \
-e 'fileutils' \
-e 'forwardable' \
-e 'io-console' \
-e 'ipaddr' \
-e 'irb' \
-e 'json' \
-e 'libxml-ruby' \
-e 'logger' \
-e 'matrix' \
-e 'minitest' \
-e 'mutex_m' \
-e 'net-telnet' \
-e 'nokogiri' \
-e 'openssl' \
-e 'ostruct' \
-e 'power_assert' \
-e 'prime' \
-e 'psych' \
-e 'rake' \
-e 'rexml' \
-e 'rdoc' \
-e 'rss' \
-e 'scanf' \
-e 'shell' \
-e 'sqlite3' \
-e 'stringio' \
-e 'strscan' \
-e 'sync' \
-e 'test-unit' \
-e 'thwait' \
-e 'tracer' \
-e 'webrick' \
-e 'xmlrpc' \
-e 'zlib' \
); do
sudo /usr/bin/gem uninstall --force --all --ignore-dependencies --executables "$gem"
done
- name: Uninstall Homebrew
run: |
set -e
set -u
set -o pipefail
brew update
sudo rm -rf /usr/local/miniconda &
rm -rf /usr/local/lib/node_modules &
rm -f /usr/local/bin/terminal-notifier
rm -f /usr/local/bin/change_hostname.sh
rm -f /usr/local/bin/azcopy
if which brew &>/dev/null; then
eval "$(brew list --formula | xargs -I% echo 'brew uninstall --formula --force --ignore-dependencies "%" &')"
eval "$(brew list --cask | xargs -I% echo '{ brew uninstall --cask --force "%"; brew uninstall --cask --zap --force "%"; } &')"
brew uninstall --cask --zap --force adoptopenjdk/openjdk/adoptopenjdk8 &
brew uninstall --cask --zap --force dotnet &
brew uninstall --cask --zap --force firefox &
brew uninstall --cask --zap --force julia &
brew uninstall --cask --zap --force mono-mdk &
brew uninstall --cask --zap --force xamarin-android &
brew uninstall --cask --zap --force xamarin-ios &
brew uninstall --cask --zap --force xamarin-mac &
brew uninstall --cask --zap --force visual-studio &
wait
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/uninstall.sh)" -- --force
fi
- name: Uninstall Xcode and Command-Line Tools
run: |
set -e
set -u
set -o pipefail
mkdir -p /tmp/trash
for trash in /Applications/Xcode*.app /Library/Developer/CommandLineTools; do
sudo mv "$trash" /tmp/trash/
done
sudo pkgutil --forget com.apple.pkg.CLTools_Executables
sudo xcode-select --reset
- name: Uninstall leftover packages
run: |
set -e
set -u
set -o pipefail
mkdir -p /tmp/trash
for pkg in /var/db/receipts/*.plist; do
pkg_id="$(basename "${pkg}" .plist)"
volume="$(pkgutil --pkg-info "${pkg_id}" | sed -n -e 's/^volume: //p')"
location="$(pkgutil --pkg-info "${pkg_id}" | sed -n -e 's/^location: //p')"
pkgutil --only-files --files "${pkg_id}" | xargs -I% sudo mv -f "${volume}${location}/%" /tmp/trash/ || true
pkgutil --only-dirs --files "${pkg_id}" | xargs -I% sudo rmdir -p "${volume}${location}/%" || true
pkgutil --forget "${pkg_id}"
done
- name: Delete broken symlinks
run: |
set -e
set -u
set -o pipefail
for exe in /usr/local/bin/*; do
if [[ -L "$exe" ]] && ! [[ -e "$exe" ]]; then
rm "$exe"
fi
done
- name: Delete leftover applications
run: |
set -e
set -u
set -o pipefail
sudo rm -rf '/Applications/Google Chrome for Testing.app' &
sudo rm -rf '/Applications/Python 2.7' &
sudo rm -rf '/Applications/Python 3.11' &
sudo rm -rf '/Applications/Visual Studio 2019.app' &
wait
ls -al /Applications /Applications/Utilities
- name: Clean user directory
run: |
set -e
set -u
set -o pipefail
for trash in ~/.DS_Store \
~/.Trash/* \
~/.aliyun \
~/.android \
~/.azcopy \
~/.azure \
~/.bash_history \
~/.bash_profile \
~/.bash_sessions \
~/.bashrc \
~/.cabal \
~/.cache \
~/.cargo \
~/.cocoapods \
~/.composer \
~/.conda \
~/.config \
~/.dotnet \
~/.fastlane \
~/.gem \
~/.ghcup \
~/.gitconfig \
~/.gradle \
~/.local \
~/.m2 \
~/.mono \
~/.npm \
~/.npmrc \
~/.nvm \
~/.oracle_jre_usage \
~/.packer.d \
~/.rustup \
~/.sh_history \
~/.ssh \
~/.subversion \
~/.sqlite_history \
~/.vcpkg \
~/.viminfo \
~/.wget-hsts \
~/.yarn \
~/Library/Caches/Homebrew \
~/Microsoft \
~/hostedtoolcache \
~/*.txt; do
if [[ -e "$trash" ]]; then
mv "$trash" /tmp/trash/
fi
done
- name: Check installed apps
run: |
ls -al /Applications
ls -al /Applications/Utilities
ls -al ~/
- name: Install dotfiles via `curl`
run: |
curl -sL git.io/.sh | sh
linux:
runs-on: ubuntu-latest
steps:
- name: Check out dotfiles
uses: actions/checkout@v3
- name: Install dotfiles
run: |
./setup.sh