I\'ve got a dictionary with different names like
vars:
images:
- foo
- bar
No I want to checkout repositories and afterwards build docker images only when the source has changed.
Since getting the source und building the image is the same for all items except the name I created the tasks with with_items: images
and try to register the result with:
register: \"{{ item }}\"
and also tried
register: \"src_{{ item }}\"
Then I tried the following conditon
when: \"{{ item }}|changed\"
and
when: \"{{ src_item }}|changed\"
This always results in fatal: [piggy] => |changed expects a dictionary
So how can I properly save the results of the operations in variable names based on the list I iterate over?
Update: I wold like to have something like that:
- hosts: all
vars:
images:
- foo
- bar
tasks:
- name: get src
git:
repo: git@foobar.com/repo.git
dest: /tmp/repo
register: \"{{ item }}_src\"
with_items: images
- name: build image
shell: \"docker build -t repo .\"
args:
chdir: /tmp/repo
when: \"{{ item }}_src\"|changed
register: \"{{ item }}_image\"
with_items: images
- name: push image
shell: \"docker push repo\"
when: \"{{ item }}_image\"|changed
with_items: images