# Copyright 2019 AT&T Intellectual Property. All other rights reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. - hosts: all roles: - ensure-docker - ensure-python - ensure-pip tasks: - include_vars: vars.yaml - name: Debug inputs block: - debug: var: distro_suffix - debug: var: image_name - debug: var: publish - debug: var: tags - debug: var: zuul - debug: msg: "{{ tags | to_json }}" - name: Determine tags shell: echo '{{ tags | to_json }}' | python3 {{ zuul.project.src_dir }}/tools/image_tags.py environment: BRANCH: "{{ zuul.branch | default('') }}" CHANGE: "{{ zuul.change | default('') }}" COMMIT: "{{ zuul.newrev | default('') }}" PATCHSET: "{{ zuul.patchset | default('') }}" register: image_tags - name: Debug computed tags debug: var: image_tags - name: Install Docker python module for ansible docker login block: - pip: name: docker version: 4.4.4 executable: pip3 become: True - name: Make images - verbosive when: not publish shell: | make build args: chdir: "{{ zuul.project.src_dir }}" executable: /bin/bash environment: DISTRO_SUFFIX: "{{ distro_suffix }}" IMAGE_NAME: "{{ image_name }}" become: True - name: Make images when: not publish block: - make: chdir: "{{ zuul.project.src_dir }}/{{ args.chdir }}" target: "build" params: DISTRO_SUFFIX: "{{ distro_suffix }}" IMAGE_NAME: "{{ image_name }}" IMAGE_TAG: "{{ item }}" with_items: "{{ image_tags.stdout_lines }}" - shell: "docker images" register: docker_images - debug: var: docker_images become: True - name: Publish images when: publish block: - docker_login: username: "{{ quay_credentials.username }}" password: "{{ quay_credentials.password }}" registry_url: "https://quay.io/api/v1/" - make: chdir: "{{ zuul.project.src_dir }}/{{ args.chdir }}" target: "build" params: COMMIT: "{{ zuul.newrev | default('') }}" DISTRO_SUFFIX: "{{ distro_suffix }}" DOCKER_REGISTRY: "quay.io" IMAGE_NAME: "{{ image_name }}" IMAGE_PREFIX: "airshipit" IMAGE_TAG: "{{ item }}" PUSH_IMAGE: "true" with_items: "{{ image_tags.stdout_lines }}" - shell: "docker images" register: docker_images - debug: var: docker_images become: True