Implement CI for UI, Logical Backup Images to GHCR (#2527)

* Implement CI for UI, Logical Backup Images to GHCR

---------

Co-authored-by: Felix Kunde <felix-kunde@gmx.de>
This commit is contained in:
Dominic Giebert 2024-02-14 17:59:40 +01:00 committed by GitHub
parent 886cb86797
commit 569fc57fc8
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 41 additions and 15 deletions

View File

@ -1,4 +1,4 @@
name: Publish multiarch postgres-operator image on ghcr.io
name: Publish multiarch postgres-operator images on ghcr.io
env:
REGISTRY: ghcr.io
@ -9,6 +9,7 @@ on:
push:
tags:
- '*'
jobs:
publish:
name: Build, test and push image
@ -30,14 +31,20 @@ jobs:
- name: Define image name
id: image
run: |
IMAGE="${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${GITHUB_REF/refs\/tags\//}"
echo "NAME=${IMAGE,,}" >> $GITHUB_OUTPUT
OPERATOR_IMAGE="${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${GITHUB_REF/refs\/tags\//}"
echo "OPERATOR_IMAGE=$OPERATOR_IMAGE" >> $GITHUB_OUTPUT
- name: Define image name
- name: Define UI image name
id: image_ui
run: |
IMAGE="${{ env.REGISTRY }}/${{ env.IMAGE_NAME_UI }}:${GITHUB_REF/refs\/tags\//}"
echo "NAME=${IMAGE,,}" >> $GITHUB_OUTPUT
UI_IMAGE="${{ env.REGISTRY }}/${{ env.IMAGE_NAME_UI }}:${GITHUB_REF/refs\/tags\//}"
echo "UI_IMAGE=$UI_IMAGE" >> $GITHUB_OUTPUT
- name: Define logical backup image name
id: image_lb
run: |
BACKUP_IMAGE="${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}/logical-backup:${GITHUB_REF_NAME}"
echo "BACKUP_IMAGE=$BACKUP_IMAGE" >> $GITHUB_OUTPUT
- name: Set up QEMU
uses: docker/setup-qemu-action@v2
@ -52,23 +59,30 @@ jobs:
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build and push multiarch image to ghcr
- name: Build and push multiarch operator image to ghcr
uses: docker/build-push-action@v3
with:
context: .
file: docker/Dockerfile
push: true
build-args: BASE_IMAGE=alpine:3.15
tags: "${{ steps.image.outputs.NAME }}"
tags: "${{ steps.image.outputs.OPERATOR_IMAGE }}"
platforms: linux/amd64,linux/arm64
- name: Build and push multiarch image to ghcr for UI
- name: Build and push multiarch ui image to ghcr
uses: docker/build-push-action@v3
with:
context: ${{ github.workspace }}/ui
file: ${{ github.workspace }}/ui/Dockerfile
context: ui
push: true
build-args: BASE_IMAGE=alpine:3.15
tags: "${{ steps.image_ui.outputs.NAME }}"
tags: "${{ steps.image_ui.outputs.UI_IMAGE }}"
platforms: linux/amd64,linux/arm64
- name: Build and push multiarch logical-backup image to ghcr
uses: docker/build-push-action@v3
with:
context: docker/logical-backup
push: true
build-args: BASE_IMAGE=ubuntu:22.04
tags: "${{ steps.image_lb.outputs.BACKUP_IMAGE }}"
platforms: linux/amd64,linux/arm64

View File

@ -1,4 +1,5 @@
FROM registry.opensource.zalan.do/library/ubuntu-22.04:latest
ARG BASE_IMAGE=registry.opensource.zalan.do/library/ubuntu-22.04:latest
FROM ${BASE_IMAGE}
LABEL maintainer="Team ACID @ Zalando <team-acid@zalando.de>"
SHELL ["/bin/bash", "-o", "pipefail", "-c"]

View File

@ -1,5 +1,16 @@
ARG BASE_IMAGE=registry.opensource.zalan.do/library/alpine-3.15:latest
FROM ${BASE_IMAGE}
ARG NODE_IMAGE=node:14.21.2-alpine
FROM $NODE_IMAGE AS build
COPY . /workdir
WORKDIR /workdir/app
RUN npm install &&\
npm run build
FROM $BASE_IMAGE
LABEL maintainer="Team ACID @ Zalando <team-acid@zalando.de>"
EXPOSE 8081
@ -34,7 +45,7 @@ COPY start_server.sh /
RUN pip3 install -r /requirements.txt
COPY operator_ui /operator_ui
COPY --from=build /workdir/operator_ui/static/build /operator_ui/static/build
ARG VERSION=dev
RUN sed -i "s/__version__ = .*/__version__ = '${VERSION}'/" /operator_ui/__init__.py