mirror of
https://github.com/outbackdingo/firezone.git
synced 2026-01-27 18:18:55 +00:00
This PR optimises our CI pipeline to only run workflows when certain files change. To achieve this, we introduce a top-level `planner` job that all other jobs primarily depend on. The `planner` job then computes which other jobs to run and creates an output with a list of those. Running only certain jobs is only the first half of the problem. The second half is creating a dedicated job that we can mark as "required" in GitHub. Without such a "required" check, the merge queue wouldn't know, when a PR is good to be merged. Jobs cannot have dynamic dependencies on other jobs. We therefore need to emulate this by creating a polling loop that hits the GitHub API every 10s and evaluates, whether all "required" jobs, i.e. the ones we planned to run, have finished successfully. --------- Co-authored-by: Jamil Bou Kheir <jamilbk@users.noreply.github.com>