diff --git a/tasks/act.yaml b/tasks/act.yaml new file mode 100644 index 0000000..fc7064d --- /dev/null +++ b/tasks/act.yaml @@ -0,0 +1,24 @@ +--- + +- name: Execute pre-commands + command: '{{ item.pre_command.command }}' + args: + chdir: '{{ item.pre_command.chdir | default(item.dest) }}' + when: '{{ item.pre_command is defined }}' + +- name: Checkout git repo + git: + repo: '{{ item.repo }}' + dest: '{{ item.dest }}' + force: 'yes' + key_file: '{{ item.key_file | default(omit) }}' + version: '{{ item.version | default("HEAD") }}' + register: git_checkout + +- name: Execute post-commands + command: '{{ item.post_command.command }}' + args: + chdir: '{{ item.post_command.chdir | default(item.dest) }}' + when: '{{ item.post_command is defined and git_checkout.changed }}' + +... diff --git a/tasks/main.yml b/tasks/main.yml index e5fc705..a66256c 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -1,26 +1,6 @@ --- -- name: Execute pre-commands - command: '{{ item.pre_command.command }}' - args: - chdir: '{{ item.pre_command.chdir | default(item.dest) }}' - with_items: '{{ git_checkouts }}' - when: '{{ item.pre_command is defined }}' - -- name: Checkout git repo - git: - repo: '{{ item.repo }}' - dest: '{{ item.dest }}' - force: 'yes' - key_file: '{{ item.key_file | default(omit) }}' - version: '{{ item.version | default("HEAD") }}' - with_items: '{{ git_checkouts }}' - -- name: Execute post-commands - command: '{{ item.post_command.command }}' - args: - chdir: '{{ item.post_command.chdir | default(item.dest) }}' - with_items: '{{ git_checkouts }}' - when: '{{ item.post_command is defined }}' +- include_tasks: act.yaml + with_items: {{ git_checkouts }} ...