Refactor, parametrize linux+mac CI, and fan-out back-compat jobs
This PR refactors the GitHub Actions setup in the following major ways:
-
.github/workflows/full-ci.yml: introduces common entrypoint to triggering all expensive CI jobs, and parametrizing most Linux and macOS jobs.Note in particular: this change leads to a single page to see the statuses of all runs for a given CI trigger (push/PR), and to cancel all jobs at once if necessary.
-
.github/workflows/ci-linux_mac.yml: the bulk of the Linux and macOS CI jobs are consolidated into a single parametrized file, reusable workflow file (viaworkflow_call) with all previously duplicated code moved into common scripts. -
the backward compatibility workflow now uses a single job to build
tiledb_unit. The built binary is stored as a job artifact, and passed to the compatibility version-specific test jobs. Buildingtiledb_unitonly once reduces the job runtime from ~25 min to ~10 for the 15 backward compat job runs.
TYPE: NO_HISTORY
this change leads to a single page to see the statuses of all runs for a given CI trigger
Example: https://github.com/ihnorton/TileDB/actions/runs/2796922943