Better support for custom logic on job workflow triggers

Since I’ve migrated to running a mono repo recently I wanted to suggest these abilities with job logic workflow

  • Ability to have either a dependency OR a manual hold run a job. currently we just get AND. thats problematic for destroying infrastructure with terraform because it means the deploy must have run successfully. I’m aware of running a “waiter” job - thats an awful hack though for something that could be cleaner we less issues.
  • Abillity to use custom logic to force approve jobs on hold:
    eg we might run custom logic to produce an md5 on a folder and its dependencies and force run an AMI build. Normally a manual approve is there for convenience. Either the manual approve or custom logic should be able to run the job.
  • Ability to add a dynamic dependency (eg if the above logic triggered a job, we might want another job to depend on it and run after):
    if an AMi build does get run, we would want to add that build as a dependency before we run the deploy job. Normally the deploy job might run with a manual approve, or just run straight away.

I’m aware that we can do things like skip jobs in their logic to get some poor aproximation of this, but we still have to pay for the docker spinup time in those cases, and this solution would be faster. Currently if we have 2-3 jobs that skip in a chain, it is not very efficient.