ansible / awx

AWX provides a web-based user interface, REST API, and task engine built on top of Ansible. It is one of the upstream projects for Red Hat Ansible Automation Platform.
Other
14.03k stars 3.42k forks source link

Check latest revision in remote before syncing project #13665

Open jangel97 opened 1 year ago

jangel97 commented 1 year ago

Please confirm the following

Feature type

Enhancement to Existing Feature

Feature Summary

Hi,

When I set following option on a project:

image

I have the impression that this is running whole project update right before spawning the job.

It would be cool that when this option is checked, instead of running whole project update, it just compares latest commit hash in remote and latest commit in local repo in controller and then goes ahead and runs project update playbook if both hashes are different. This way we would speed up job spawn. Of course, this only applies to git projects (not svn, manual or insights).

Actually this would be interesting, because for example, in my case we are using gitlab-ci to hold our playbooks, when something gets merged into the master branch a pipeline is triggered and a project update runs. If this option would be more efficient, I would not need to run a pipeline every time something is merged to master, instead I could just check this one and whole project update would only run once.

Select the relevant components

Steps to reproduce

Check "Update revision on launch" on a project and it probably runs whole project update playbook instead of just comparing hashes and skipping if latest revision is already in controller.

Current results

Check "Update revision on launch" on a project and it probably runs whole project update playbook instead of just comparing hashes and skipping if latest revision is already in controller.

Sugested feature result

If we compare hashes for git projects instead of just running project update playbook, we can bring some efficiency, and folks don't need to setup pipelines to make sure that everything is on latest revision

Additional information

No response

AlanCoding commented 1 year ago

This is significantly complicated by 2 factors not anticipated here: