astonishing-london-2419
09/15/2021, 8:52 AMbuild-dags
command in our custom tool
2. For each of the libraries inside the app
folder, the tool loads library.dag
and executes a generate_tasks
function, which returns a list of airflow tasks and their dependencies.
3. Once all tasks have been collected, the tool figures out the DAGs (you can have cross-app DAGs) and writes an output YAML file that is deployed from the CI in airflow.
How to achieve that with pants
? My idea is to break this into two steps:
1. On ./pants package
, not only the pex
are generated but also YAML files with the tasks for each app/library. This would mean creating a new target airflow_tasks
that would load the library.dag
, run the generate_tasks
function and dump the result in a per-app YAML.
2. Create a new goal ./pants build-dags
(or maybe it could be done with package
if pants
supports “ordered” builds) that has the airflow_tasks
as inputs and then puts together all the YAMLs and builds the DAGs.
I guess this is how I would do it, but looking at the plugins docs it all seems a bit daunting. Any example plugins I can look at to understand how to do this myself?