Refactor and expand the CI workflows
- 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.
This commit is contained in:
parent
0f11ab8ecb
commit
30b5246f9f
16 changed files with 720 additions and 202 deletions
19
.github/scripts/tar
vendored
Executable file
19
.github/scripts/tar
vendored
Executable file
|
@ -0,0 +1,19 @@
|
|||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
rcode=0
|
||||
# If we're running outside of GitHub then run tar normally
|
||||
if [[ -z "${GITHUB_WORKFLOW:-}" ]]; then
|
||||
"/usr/local/bin/gtar" "$@"
|
||||
rcode="$?"
|
||||
# Otherwise use zstd and ignore tar's return-code
|
||||
else
|
||||
first_arg="${1/z/}"
|
||||
shift
|
||||
[[ "${first_arg}" == "-x" ]] && decomp="-d" || decomp=""
|
||||
set +e -x
|
||||
"/usr/local/bin/gtar" \
|
||||
--warning=none \
|
||||
--use-compress-program="zstd -T0 -19 --long=31 --no-progress -v ${decomp}" \
|
||||
"${first_arg}" "$@"
|
||||
fi
|
||||
exit "${rcode}"
|
Loading…
Add table
Add a link
Reference in a new issue