kiegroup / github-action-build-chain

86 stars 24 forks source link

Add `plan` subcommand #416

Closed shubhbapna closed 1 year ago

shubhbapna commented 1 year ago

Add a utility tool called plan that prints the execution plan for a given build.

Expected behavior:

build-chain tools plan cross_pr -f definition_file -u url

This will print the execution plan and the checkout summary for running cross pr build on the given definition file and url (Note: it won't actually checkout the repositories but instead of printing checkout was skipped it will print what would have been checked out and merged if we had actually ran this build)

Ginxo commented 1 year ago

can you please clarify what's the difference vs --skipCheckout --skipExecution ? Thanks for opening this

shubhbapna commented 1 year ago

When using --skipCheckout or --skipExecution it just prints skipping checkout for project or skipping execution for project and we don't get any useful info such which branch was it going to checkout etc.

With plan we will be able to get all this useful information without actually executing time consuming tasks such actually cloning the repo. It should be useful in cases where we want to verify the mapping was correct or the order of execution was right or the right command is being executed depending on the execution level of the project etc

Ginxo commented 1 year ago

When use --skipCheckout or --skipExecution it just prints skipping checkout for project or skipping execution for project and we don't get any useful info such which branch was it going to checkout etc.

With plan we will be able to get all this useful information without actually executing time consuming tasks such actually cloning the repo. It should be useful in cases where we want to verify the mapping was correct or the order of execution was right or the right command is being executed depending on the execution level of the project etc

so I agree with the new functionality, I'm wondering whether we can achive the same thing by using the already existing --skipCheckout and/or --skipExecution :thinking:

shubhbapna commented 1 year ago

We could I think but imo --skipCheckout and/or --skipExecution can have other purposes (like for eg when I already have my repositories cloned but I still want to run the commands, I will just use --skipCheckout).

Moreover, having a separate command specifically just to plan and check how the build will work without actually building is something that a lot of tools do such as check mode in ansible or dry run in nektos/act.

@Ginxo