- name: Verify repository names when: | docker_credentials.repository is defined and not zj_image.repository | regex_search(docker_credentials.repository) loop: "{{ docker_images }}" loop_control: loop_var: zj_image fail: msg: "{{ zj_image.repository }} not permitted by {{ docker_credentials.repository }}" - name: Log in to registry command: "docker login -u {{ docker_credentials.username }} -p {{ docker_credentials.password }} {{ docker_registry }}" no_log: true - name: Publish docker images block: - name: Determine if we need to use buildx set_fact: use_buildx: "{{ docker_images | selectattr('arch', 'defined') | list }}" - name: Upload image to dockerhub normally loop: "{{ docker_images }}" loop_control: loop_var: zj_image include_tasks: push.yaml when: not use_buildx - name: Upload image to dockerhub using buildx loop: "{{ docker_images }}" loop_control: loop_var: zj_image include_tasks: buildx.yaml when: use_buildx always: - name: Log out of registry command: "docker logout {{ docker_registry }}"