- For each OS, builds of the default compiler plus the latest-supported compilers are run. When multiple operating systems are supported (such as Ubuntu 16.04 and latest), a build on the oldest OS using its default compiler is also performed. - Debug builds are used because they often are more thorough at detecting coding issues (debug warning counts are higher). - Runtime dynamic sanitizers are added and serialized per-compiler. Their build and runtime log-files are xz-compressed, and then GitHub's asset upload Zips the log directory. - Each workflow now holds the maximum allowed compiler warnings per-build, so we can have tighter control of when new warnings are introduced (that would otherwise pass if still below the maximum) - Use of github's new 'cache' feature has been leveraged to restore the brew, macports, and msys2 environments to eliminate the lenghthy setup times for those environments. If a new cache is needed, then we simply increment the cache `key:` value and the next CI run will archive new caches. (Note that GitHub has a 400MB limit on cache size however they have already said they are raising it - so we might be able to cache out longest running job which is MSYS+Clang) - Where it makes sense, multi-line workflow statements have been broken out into .github/scripts as files to make the workflow YAML leaner and more readable, while giving us a richer environment in the scripts.
34 lines
794 B
Bash
Executable file
34 lines
794 B
Bash
Executable file
#!/bin/bash
|
|
|
|
# Copyright (c) 2019 Kevin R Croft <krcroft@gmail.com>
|
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
|
|
|
# This script removes all existing brew packages, and then
|
|
# re-installs some important basic packages (listed below).
|
|
#
|
|
# Usage: ./reset-brew.sh
|
|
#
|
|
set -xuo pipefail
|
|
set +e
|
|
|
|
# Pre-cleanup size
|
|
sudo du -sch /usr/local 2> /dev/null
|
|
|
|
# Uninstall all packages
|
|
# shellcheck disable=SC2046
|
|
brew remove --force $(brew list) --ignore-dependencies
|
|
# shellcheck disable=SC2046
|
|
brew cask remove --force $(brew cask list)
|
|
|
|
# Reinstall important packages
|
|
brew install git git-lfs python curl wget jq binutils zstd gnu-tar
|
|
|
|
# Clean the brew cache
|
|
rm -rf "$(brew --cache)"
|
|
|
|
# Post-clean up size
|
|
sudo du -sch /usr/local 2> /dev/null
|
|
|
|
# This script is best-effort, so always return success
|
|
exit 0
|
|
|