The default time-out for a github ci job is 360m (6h) and unfortunately setting a default time-out at the entire workflow scope is not yet supported so to prevent a job from hanging for so long, it is useful to set a sensible (but not too strict) time-out per job explicitly (specific limits are flexible)
A nice optimization: when triggered due to a PR and new commits are pushed while jobs are still in-progress they will be cancelled in favor of the newly triggered jobs (stopping stale jobs running on invalidated PR)
(optional) Also added 'workflow_dispatch' as a trigger so that workflow can be started manually via web (Actions tab) to anyone who has permissions to do so (will only appear there after PR is merged). Useful for troubleshooting and nicer than empty commits.
A few suggestions for the ci workflows: