From 0248d0c8bb5cdb8e06c07954a90b7466ba608a94 Mon Sep 17 00:00:00 2001 From: Arturo Reuschenbach Puncernau Date: Mon, 24 Aug 2026 14:21:03 +0200 Subject: [PATCH 1/6] fix(supernova): use native platform for Docker build to avoid QEMU issues Signed-off-by: Arturo Reuschenbach Puncernau --- apps/supernova/docker/Dockerfile | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/apps/supernova/docker/Dockerfile b/apps/supernova/docker/Dockerfile index f47d9ea433..22794f0371 100644 --- a/apps/supernova/docker/Dockerfile +++ b/apps/supernova/docker/Dockerfile @@ -1,7 +1,9 @@ # SPDX-FileCopyrightText: 2024 SAP SE or an SAP affiliate company and Juno contributors # SPDX-License-Identifier: Apache-2.0 -FROM node:22-alpine as build +# Build on host platform to avoid QEMU emulation issues with native modules +# Output is platform-independent JavaScript that works in any nginx container +FROM --platform=$BUILDPLATFORM node:22-alpine as build LABEL org.opencontainers.image.source=https://github.com/cloudoperators/juno/tree/main/apps/supernova LABEL org.opencontainers.image.description="This image contains a standalone runnable version of the Supernova alternative Alertmanager UI. For configuration options see the README here: https://github.com/cloudoperators/juno/tree/main/apps/supernova/docker" From f48551da8727cbf60edca7ebae4fefdef81e3448 Mon Sep 17 00:00:00 2001 From: Arturo Reuschenbach Puncernau Date: Mon, 24 Aug 2026 14:31:35 +0200 Subject: [PATCH 2/6] fix(supernova): declares BUILDPLATFORM as a build argument Signed-off-by: Arturo Reuschenbach Puncernau --- apps/supernova/docker/Dockerfile | 1 + 1 file changed, 1 insertion(+) diff --git a/apps/supernova/docker/Dockerfile b/apps/supernova/docker/Dockerfile index 22794f0371..e315bc16ff 100644 --- a/apps/supernova/docker/Dockerfile +++ b/apps/supernova/docker/Dockerfile @@ -3,6 +3,7 @@ # Build on host platform to avoid QEMU emulation issues with native modules # Output is platform-independent JavaScript that works in any nginx container +ARG BUILDPLATFORM FROM --platform=$BUILDPLATFORM node:22-alpine as build LABEL org.opencontainers.image.source=https://github.com/cloudoperators/juno/tree/main/apps/supernova From 54130a73cd79ef1243a0ea9c968b60120cc4236d Mon Sep 17 00:00:00 2001 From: Arturo Reuschenbach Puncernau Date: Mon, 24 Aug 2026 14:39:08 +0200 Subject: [PATCH 3/6] fix(core): ensure pre-push hook uses correct Node.js version Signed-off-by: Arturo Reuschenbach Puncernau --- .husky/pre-push | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/.husky/pre-push b/.husky/pre-push index 27996313de..a673a6d1ed 100755 --- a/.husky/pre-push +++ b/.husky/pre-push @@ -1,5 +1,23 @@ +#!/usr/bin/env bash # SPDX-FileCopyrightText: 2024 SAP SE or an SAP affiliate company and Juno contributors + # SPDX-License-Identifier: Apache-2.0 + # .husky/pre-push +# Load nvm to get node/pnpm in PATH +export NVM_DIR="${NVM_DIR:-$HOME/.nvm}" +if [ -s "$NVM_DIR/nvm.sh" ]; then + . "$NVM_DIR/nvm.sh" + # Use the node version from .nvmrc if it exists + if [ -f ".nvmrc" ]; then + nvm use + fi +fi + +# Fallback: add common installation paths +export PATH="$PATH:/usr/local/bin:$HOME/.local/share/pnpm" + +# Now you can use pnpm or any Node.js commands + pnpm pre:push From ae7d2aa7edcf6748766fd1f6634f6fafac24c972 Mon Sep 17 00:00:00 2001 From: Arturo Reuschenbach Puncernau Date: Mon, 24 Aug 2026 14:59:37 +0200 Subject: [PATCH 4/6] chore(core): test workflow Signed-off-by: Arturo Reuschenbach Puncernau --- .../workflows/test-build-supernova-image.yaml | 55 +++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 .github/workflows/test-build-supernova-image.yaml diff --git a/.github/workflows/test-build-supernova-image.yaml b/.github/workflows/test-build-supernova-image.yaml new file mode 100644 index 0000000000..7d79b4e2c4 --- /dev/null +++ b/.github/workflows/test-build-supernova-image.yaml @@ -0,0 +1,55 @@ +# Test workflow to verify Supernova Docker build without pushing +name: Test Build Supernova ☀️ + +on: + pull_request: + paths: + - apps/supernova/docker/Dockerfile + - .github/workflows/test-build-supernova-image.yaml + +env: + REGISTRY: ghcr.io + IMAGE_NAME: "juno-app-supernova" + PACKAGE_PATH: "apps/supernova" + +jobs: + test-build: + name: Test build Supernova image (no push) + runs-on: [ubuntu-latest] + permissions: + contents: read + + steps: + - name: Checkout repository + uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6.1.0 + + # Add support for more platforms with QEMU (optional) + - name: Set up QEMU + uses: docker/setup-qemu-action@96fe6ef7f33517b61c61be40b68a1882f3264fb8 # v4.2.0 + + # Set up BuildKit Docker container builder + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@bb05f3f5519dd87d3ba754cc423b652a5edd6d2c # v4.2.0 + with: + driver-opts: | + image=moby/buildkit:latest + + # Build Docker image for testing (no push) + - name: Build Docker image (test only) + id: build + uses: docker/build-push-action@53b7df96c91f9c12dcc8a07bcb9ccacbed38856a # v7.3.0 + with: + context: . + file: ${{ env.PACKAGE_PATH }}/docker/Dockerfile + push: false + load: true + tags: ${{ env.IMAGE_NAME }}:test + platforms: | + linux/amd64 + linux/arm64 + + - name: Test build summary + run: | + echo "✅ Multi-platform Docker build completed successfully" + echo "Image: ${{ env.IMAGE_NAME }}:test" + echo "Platforms: linux/amd64, linux/arm64" From 5b70589301abcb24207fcc6568795f6182b257ac Mon Sep 17 00:00:00 2001 From: Arturo Reuschenbach Puncernau Date: Mon, 24 Aug 2026 15:05:09 +0200 Subject: [PATCH 5/6] chore(core): test again Signed-off-by: Arturo Reuschenbach Puncernau --- .github/workflows/test-build-supernova-image.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/test-build-supernova-image.yaml b/.github/workflows/test-build-supernova-image.yaml index 7d79b4e2c4..6c1b0984f3 100644 --- a/.github/workflows/test-build-supernova-image.yaml +++ b/.github/workflows/test-build-supernova-image.yaml @@ -42,7 +42,6 @@ jobs: context: . file: ${{ env.PACKAGE_PATH }}/docker/Dockerfile push: false - load: true tags: ${{ env.IMAGE_NAME }}:test platforms: | linux/amd64 From 661f3d58afa7d8f0ca7a23fa86442cdf4ab071c2 Mon Sep 17 00:00:00 2001 From: Arturo Reuschenbach Puncernau Date: Mon, 24 Aug 2026 15:12:18 +0200 Subject: [PATCH 6/6] chore(core): test again Signed-off-by: Arturo Reuschenbach Puncernau --- apps/supernova/docker/Dockerfile | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/apps/supernova/docker/Dockerfile b/apps/supernova/docker/Dockerfile index e315bc16ff..5e927e87c2 100644 --- a/apps/supernova/docker/Dockerfile +++ b/apps/supernova/docker/Dockerfile @@ -1,10 +1,7 @@ # SPDX-FileCopyrightText: 2024 SAP SE or an SAP affiliate company and Juno contributors # SPDX-License-Identifier: Apache-2.0 -# Build on host platform to avoid QEMU emulation issues with native modules -# Output is platform-independent JavaScript that works in any nginx container -ARG BUILDPLATFORM -FROM --platform=$BUILDPLATFORM node:22-alpine as build +FROM node:22-alpine AS build LABEL org.opencontainers.image.source=https://github.com/cloudoperators/juno/tree/main/apps/supernova LABEL org.opencontainers.image.description="This image contains a standalone runnable version of the Supernova alternative Alertmanager UI. For configuration options see the README here: https://github.com/cloudoperators/juno/tree/main/apps/supernova/docker"