images/playbooks/airship-images-publish.yaml
Sean Eagan ec7e6f3fc9 Optimize image build/publish jobs
Zuul jobs are running out of space and failing. This attempts to
resolve by cleaning up between the build/publish of each image.

Switched to the ansible command module, since the make module doesn't
support multiple make targets.

Added a clean target to any image which didn't already have one, which
was just the ipa-downloader-image.

Signed-off-by: Sean Eagan <seaneagan1@gmail.com>
Change-Id: I36747a7cd858eef612f654f50a5c65f596e4a59d
2021-04-02 16:07:56 -05:00

68 lines
2.4 KiB
YAML

# 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: primary
tasks:
- name: Install python-docker module
apt:
pkg:
- python-docker
- python3-docker
- pass
- python-requests
- python3-requests
- python3-pip
- python3-setuptools
state: present
become: true
when: ansible_distribution == 'Debian' or ansible_distribution == 'Ubuntu'
- name: Install docker pip module
pip:
name: docker
executable: pip3
- name: Execute custom role
include_role:
name: "{{ pre_build_role }}"
when: pre_build_role is defined
- name: Push Images
block:
- name: Login to Image Registry
docker_login:
username: "{{ airship_images_quay_creds.username }}"
password: "{{ airship_images_quay_creds.password }}"
registry_url: "{{ docker_registry }}"
- name: Push Images with Latest and Commit Tags
command: make images clean
args:
chdir: "{{ makefile_chdir }}"
environment:
AZ_SDK: "{{ az_sdk }}"
COMMIT: "{{ zuul.newrev | default('') }}"
DOCKER_REGISTRY: "{{ docker_registry }}"
GCP_SDK: "{{ gcp_sdk }}"
IMAGE_PREFIX: "{{ image_prefix | default('airshipit') }}"
IMAGE_TAG: "{{ item }}"
LABEL: "{{ image_label | default('org.airshipit.build=community') }}"
NO_PROXY: "{{ proxy.noproxy }}"
PUSH_IMAGE: "true"
PROXY: "{{ proxy.http }}"
QCOW_CONF_DIRS: "{{ qcow_conf_dirs | default('') }}"
USE_PROXY: "{{ proxy.enabled | lower }}"
WORKDIR: "{{ image_config_dir | default('config') }}"
with_items:
- "{{ image_tag | default('latest') }}"
- "{{ zuul.newrev }}"
become: True