Skip to content

Commit

Permalink
Implement CI for UI, Logical Backup Images to GHCR (#2527)
Browse files Browse the repository at this point in the history
* Implement CI for UI, Logical Backup Images to GHCR

---------

Co-authored-by: Felix Kunde <felix-kunde@gmx.de>
  • Loading branch information
dgiebert and FxKu committed Feb 14, 2024
1 parent 886cb86 commit 569fc57
Show file tree
Hide file tree
Showing 3 changed files with 41 additions and 15 deletions.
38 changes: 26 additions & 12 deletions .github/workflows/publish_ghcr_image.yaml
@@ -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
Expand All @@ -9,6 +9,7 @@ on:
push:
tags:
- '*'

jobs:
publish:
name: Build, test and push image
Expand All @@ -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
Expand All @@ -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
3 changes: 2 additions & 1 deletion docker/logical-backup/Dockerfile
@@ -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"]
Expand Down
15 changes: 13 additions & 2 deletions ui/Dockerfile
@@ -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
Expand Down Expand Up @@ -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

Expand Down

0 comments on commit 569fc57

Please sign in to comment.