pegleg/tools/gate/playbooks/docker-image-build.yaml
Sergiy Markin 457b10ad13 Treasuremap references update
Also fixed readthedocs publishing and pumped up
docker Pypi module version and updated docs
generation code caused by deprecated properties in
recent version of Sphinx.

Change-Id: Idc69d0e6a06ba6d931acacbd22df076d01901ed0
2024-10-08 22:24:40 +00:00

143 lines
4.0 KiB
YAML

# Copyright 2018 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
#
# http://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: primary
roles:
- clear-firewall
- bindep
- ensure-docker
- ensure-python
- ensure-pip
tasks:
- include_vars: vars.yaml
- name: Debug tag generation inputs
block:
- debug:
var: publish
- debug:
var: tags
- debug:
var: distro
- debug:
var: zuul
- debug:
msg: "{{ tags | to_json }}"
- name: Set ubuntu jammy base image
set_fact:
base_image: "{{ base_image_jammy }}"
when: distro == 'ubuntu_jammy'
- name: Set ubuntu focal base image
set_fact:
base_image: "{{ base_image_focal }}"
when: distro == 'ubuntu_focal'
- name: Set ubuntu bionic base image
set_fact:
base_image: "{{ base_image_bionic }}"
when: distro == 'ubuntu_bionic'
- 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: Remove default mirror config
shell: rm /etc/pip.conf
become: True
- name: Install Docker python module for ansible docker login
block:
- pip:
name: docker
executable: pip3
become: True
- name: Make images - verbosive
when: not publish
shell: |
make images
args:
chdir: "{{ zuul.project.src_dir }}"
executable: /bin/bash
become: True
- name: Make images
when: not publish
block:
- make:
chdir: "{{ zuul.project.src_dir }}"
target: images
params:
BASE_IMAGE: "{{ base_image }}"
DISTRO: "{{ distro }}"
IMAGE_TAG: "{{ item }}"
PROXY: "{{ proxy }}"
NO_PROXY: "{{ no_proxy }}"
USE_PROXY: "{{ use_proxy | lower }}"
with_items: "{{ image_tags.stdout_lines }}"
- shell: "docker images"
register: docker_images
- debug:
var: docker_images
become: True
- name: Publish images
block:
- docker_login:
username: "{{ airship_pegleg_quay_creds.username }}"
password: "{{ airship_pegleg_quay_creds.password }}"
registry_url: "{{ docker_registry_login_url }}"
api_version: "1.43"
- make:
chdir: "{{ zuul.project.src_dir }}"
target: images
params:
BASE_IMAGE: "{{ base_image }}"
DOCKER_REGISTRY: "{{ docker_registry }}"
IMAGE_PREFIX: "{{ image_prefix }}"
DISTRO: "{{ distro }}"
IMAGE_TAG: "{{ item }}"
COMMIT: "{{ zuul.newrev | default('') }}"
PUSH_IMAGE: "true"
PROXY: "{{ proxy }}"
NO_PROXY: "{{ no_proxy }}"
USE_PROXY: "{{ use_proxy | lower }}"
with_items: "{{ image_tags.stdout_lines }}"
- shell: "docker images"
register: docker_images
- debug:
var: docker_images
when: publish
become: True