diff --git a/.github/workflows/test-build-supernova-image.yaml b/.github/workflows/test-build-supernova-image.yaml new file mode 100644 index 0000000000..6c1b0984f3 --- /dev/null +++ b/.github/workflows/test-build-supernova-image.yaml @@ -0,0 +1,54 @@ +# 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 + 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" 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 diff --git a/apps/supernova/docker/Dockerfile b/apps/supernova/docker/Dockerfile index f47d9ea433..5e927e87c2 100644 --- a/apps/supernova/docker/Dockerfile +++ b/apps/supernova/docker/Dockerfile @@ -1,7 +1,7 @@ # 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 +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"