sip/playbooks/publish-images.yaml
Drew Walters 0b5f38d31a Add Docker image publish job
We rely on Quay.io to publish new images when commits are merged to the
SIP repository. While this has been a less error-prone approach to
publishing our Docker images, it removes control of image publishing
from the hands of SIP developers, as Airship working committee members
are the only ones who can access our Quay repositories. This change
creates a job to publish our images so that the means for doing so is
transparent to developers, reusable for operators downstream, and
introduces tags for repository commits like other Airship repositories
have.

Signed-off-by: Drew Walters <andrew.walters@att.com>
Change-Id: Idb1b405e6f71bd6a99b24b2f0cfb37d9df463ba3
2021-02-25 20:15:22 +00:00

92 lines
2.9 KiB
YAML

# 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: ubuntu-bionic
tasks:
- name: Setup Docker
include_role:
name: ensure-docker
- name: Install Dependent Packages
apt:
pkg:
- debconf
- make
- wget
- snapd
become: yes
- name: Install python3-docker and python3-requests Modules
package:
name:
- python3-docker
- python3-requests
state: present
- name: List Docker Images
shell: docker image ls
- name: Push Images
block:
- name: Login to Image Registry
docker_login:
username: "{{ airshipctl_image_repo_credentials.username }}"
password: "{{ airshipctl_image_repo_credentials.password }}"
registry_url: "{{ image_repo }}"
- name: Build Images with Latest Tag
make:
chdir: "{{ zuul.project.src_dir }}"
params:
DOCKER_IMAGE_TAG: latest
DOCKER_REGISTRY: "{{ image_repo }}"
target: images
- name: Build Images with Commit Tag
make:
chdir: "{{ zuul.project.src_dir }}"
params:
DOCKER_IMAGE_TAG: "{{ zuul.newrev }}"
DOCKER_REGISTRY: "{{ image_repo }}"
target: images
- name: Push SIP Image with Latest Tag
make:
chdir: "{{ zuul.project.src_dir }}"
params:
DOCKER_IMAGE_TAG: latest
DOCKER_REGISTRY: "{{ image_repo }}"
target: docker-publish-controller
- name: Push SIP Image with Commit Tag
make:
chdir: "{{ zuul.project.src_dir }}"
params:
DOCKER_IMAGE_TAG: "{{ zuul.newrev }}"
DOCKER_REGISTRY: "{{ image_repo }}"
target: docker-publish-controller
- name: Push Jump Host Image with Latest Tag
make:
chdir: "{{ zuul.project.src_dir }}"
params:
DOCKER_IMAGE_TAG: latest
DOCKER_REGISTRY: "{{ image_repo }}"
target: docker-publish-jump-host
- name: Push Jump Host Image with Commit Tag
make:
chdir: "{{ zuul.project.src_dir }}"
params:
DOCKER_IMAGE_TAG: "{{ zuul.newrev }}"
DOCKER_REGISTRY: "{{ image_repo }}"
target: docker-publish-jump-host