Lines Matching full:needs
26 needs: set[str]
208 final_needs: set[str] = deepcopy(metadata["needs"])
209 # Pre-process jobs that are not based on needs field
218 for job_name, needs in pre_processed_dag.items():
219 jobs_metadata[job_name]["needs"] = needs
227 final_needs: set = deepcopy(metadata["needs"]) & created_jobs
228 # Post process jobs that are based on needs field
232 …th: set[str] = {n for dn in final_needs if dn in jobs_metadata for n in jobs_metadata[dn]["needs"]}
236 jobs_metadata[job]["needs"] = final_needs
243 # Record the stage sequence to post process deps that are not based on needs
254 "needs": set([j["node"]["name"] for j in job["needs"]["edges"]]),
264 job has a set of jobs that it depends on (its "needs") and belongs to a certain "stage".
272 - The job needs for job3 are: job1, job2
273 - The job needs for job4 are: job2
274 - The job2 needs to wait all jobs from build stage to finish.
279 "job1": {"needs": set(), "stage": "build", "name": "job1"},
280 "job2": {"needs": {"job1", "job2", job3"}, "stage": "test", "name": "job2"},
281 "job3": {"needs": {"job1", "job2"}, "stage": "build", "name": "job3"},
282 "job4": {"needs": {"job2"}, "stage": "test", "name": "job4"},
285 To access the job needs, one can do:
287 dag["job3"]["needs"]
289 This will return the set of jobs that job3 needs: {"job1", "job2"}
296 job needs DAG is being created.
302 The final DAG (Directed Acyclic Graph) representing the job dependencies sourced from needs
318 # Fill the DAG with the job needs from stages that don't have any needs but still need to wait
321 # Now that each job has its direct needs filled correctly, update the "needs" field for each job
345 print(f"{job}:\n\t{' '.join(data['needs'])}\n")
451 # TODO: Recurse into needs to get full script
506 help="Print job needs DAG",