1
0
Fork 0

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:
krcroft 2019-11-23 19:54:58 -08:00 committed by Patryk Obara
parent 0f11ab8ecb
commit 30b5246f9f
16 changed files with 720 additions and 202 deletions

19
.github/scripts/tar vendored Executable file
View 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}"