deploy
Some checks failed
Build & Deploy MB Grid Solutions / build-and-deploy (push) Failing after 27s

This commit is contained in:
2026-01-29 15:18:38 +01:00
parent 5a5f96f15c
commit c3a2114064
5 changed files with 78 additions and 20 deletions

View File

@@ -80,6 +80,9 @@ jobs:
docker buildx build \
--pull \
--platform linux/arm64 \
--build-arg NEXT_PUBLIC_BASE_URL="${{ secrets.NEXT_PUBLIC_BASE_URL }}" \
--build-arg NEXT_PUBLIC_UMAMI_WEBSITE_ID="${{ secrets.NEXT_PUBLIC_UMAMI_WEBSITE_ID }}" \
--build-arg NEXT_PUBLIC_UMAMI_SCRIPT_URL="${{ secrets.NEXT_PUBLIC_UMAMI_SCRIPT_URL }}" \
-t registry.infra.mintel.me/mintel/mb-grid-solutions:latest \
--push .
@@ -166,6 +169,10 @@ jobs:
SMTP_PORT='${{ secrets.SMTP_PORT }}' \
SMTP_SECURE='${{ secrets.SMTP_SECURE }}' \
SMTP_USER='${{ secrets.SMTP_USER }}' \
NEXT_PUBLIC_BASE_URL='${{ secrets.NEXT_PUBLIC_BASE_URL }}' \
NEXT_PUBLIC_UMAMI_WEBSITE_ID='${{ secrets.NEXT_PUBLIC_UMAMI_WEBSITE_ID }}' \
NEXT_PUBLIC_UMAMI_SCRIPT_URL='${{ secrets.NEXT_PUBLIC_UMAMI_SCRIPT_URL }}' \
SENTRY_DSN='${{ secrets.SENTRY_DSN }}' \
SITE_NAME='mb-grid-solutions.com' \
sudo -u deploy -E HOME=/home/deploy /home/deploy/deploy.sh --zero-downtime"
@@ -218,3 +225,56 @@ jobs:
echo "║ ❌ DEPLOYMENT FAILED ║"
fi
echo "╚══════════════════════════════════════════════════════════════════════════════╝"
# ═══════════════════════════════════════════════════════════════════════════════
# NOTIFICATION: Gotify
# ═══════════════════════════════════════════════════════════════════════════════
- name: 🔔 Gotify Notification (Success)
if: success()
run: |
echo "Sending success notification to Gotify..."
RESPONSE=$(curl -k -s -w "\n%{http_code}" -X POST "${{ secrets.GOTIFY_URL }}/message?token=${{ secrets.GOTIFY_TOKEN }}" \
-F "title=✅ Deployment Success: ${{ github.repository }}" \
-F "message=The deployment of ${{ github.repository }} (branch: ${{ github.ref }}) was successful.
Commit: ${{ github.sha }}
Actor: ${{ github.actor }}
Run ID: ${{ github.run_id }}" \
-F "priority=5")
HTTP_CODE=$(echo "$RESPONSE" | tail -n1)
BODY=$(echo "$RESPONSE" | sed '$d')
echo "HTTP Status: $HTTP_CODE"
echo "Response Body: $BODY"
if [ "$HTTP_CODE" -lt 200 ] || [ "$HTTP_CODE" -ge 300 ]; then
echo "Failed to send Gotify notification"
exit 0 # Don't fail the workflow because of notification failure
fi
- name: 🔔 Gotify Notification (Failure)
if: failure()
run: |
echo "Sending failure notification to Gotify..."
RESPONSE=$(curl -k -s -w "\n%{http_code}" -X POST "${{ secrets.GOTIFY_URL }}/message?token=${{ secrets.GOTIFY_TOKEN }}" \
-F "title=❌ Deployment Failed: ${{ github.repository }}" \
-F "message=The deployment of ${{ github.repository }} (branch: ${{ github.ref }}) failed!
Commit: ${{ github.sha }}
Actor: ${{ github.actor }}
Run ID: ${{ github.run_id }}
Please check the logs for details." \
-F "priority=8")
HTTP_CODE=$(echo "$RESPONSE" | tail -n1)
BODY=$(echo "$RESPONSE" | sed '$d')
echo "HTTP Status: $HTTP_CODE"
echo "Response Body: $BODY"
if [ "$HTTP_CODE" -lt 200 ] || [ "$HTTP_CODE" -ge 300 ]; then
echo "Failed to send Gotify notification"
exit 0 # Don't fail the workflow because of notification failure
fi

View File

@@ -1,7 +1,7 @@
import Layout from "@/components/Layout";
import type { Metadata } from "next";
import { Inter } from "next/font/google";
import "./globals.css";
import Layout from "@/components/Layout";
const inter = Inter({
subsets: ["latin"],
@@ -16,9 +16,9 @@ export const metadata: Metadata = {
},
description: "Ihr spezialisierter Partner für herstellerneutrale technische Beratung und Projektbegleitung bei Energiekabelprojekten bis 110 kV. Expertise in Mittel- und Hochspannungsnetzen.",
keywords: ["Energiekabel", "Hochspannung", "Mittelspannung", "Kabelprojekte", "Technische Beratung", "Engineering", "Energiewende", "110 kV"],
authors: [{ name: "MB Grid Solutions GmbH" }],
creator: "MB Grid Solutions GmbH",
publisher: "MB Grid Solutions GmbH",
authors: [{ name: "MB Grid Solutions & Services GmbH" }],
creator: "MB Grid Solutions & Services GmbH",
publisher: "MB Grid Solutions & Services GmbH",
formatDetection: {
email: false,
address: false,
@@ -67,7 +67,7 @@ export default function RootLayout({
const jsonLd = {
"@context": "https://schema.org",
"@type": "Organization",
"name": "MB Grid Solutions GmbH",
"name": "MB Grid Solutions & Services GmbH",
"url": "https://www.mb-grid-solutions.com",
"logo": "https://www.mb-grid-solutions.com/assets/logo.png",
"description": "Ihr spezialisierter Partner für herstellerneutrale technische Beratung und Projektbegleitung bei Energiekabelprojekten bis 110 kV.",

View File

@@ -1,11 +1,10 @@
'use client';
import { CheckCircle, Mail, MapPin, Send } from 'lucide-react';
import React, { useState } from 'react';
import { Button } from './Button';
import { Counter } from './Counter';
import { Reveal } from './Reveal';
import { TechBackground } from './TechBackground';
import { Counter } from './Counter';
import { Button } from './Button';
export default function Contact() {
const [submitted, setSubmitted] = useState(false);
@@ -97,7 +96,7 @@ export default function Contact() {
<div className="relative z-10">
<h4 className="text-slate-400 font-bold text-xs uppercase tracking-widest mb-2">Anschrift</h4>
<p className="text-white text-xl font-bold leading-relaxed">
MB Grid Solutions GmbH<br />
MB Grid Solutions & Services GmbH<br />
Raiffeisenstraße 22<br />
73630 Remshalden
</p>

View File

@@ -1,12 +1,11 @@
'use client';
import Link from 'next/link';
import { Shield, Zap, BarChart3, CheckCircle2, ChevronRight } from 'lucide-react';
import { motion } from 'framer-motion';
import { Reveal, Stagger } from './Reveal';
import { TechBackground } from './TechBackground';
import { BarChart3, CheckCircle2, ChevronRight, Shield, Zap } from 'lucide-react';
import Link from 'next/link';
import { Counter } from './Counter';
import { Button } from './Button';
import { Reveal } from './Reveal';
import { TechBackground } from './TechBackground';
import { TileGrid } from './TileGrid';
export default function Home() {
@@ -16,7 +15,7 @@ export default function Home() {
"name": "Technische Beratung für Energiekabelprojekte",
"provider": {
"@type": "Organization",
"name": "MB Grid Solutions GmbH"
"name": "MB Grid Solutions & Services GmbH"
},
"description": "Herstellerneutrale technische Beratung für Ihre Projekte in Mittel- und Hochspannungsnetzen bis zu 110 kV.",
"areaServed": "Europe",

View File

@@ -1,12 +1,12 @@
'use client';
import { ArrowUp, Home, Info, Mail, Menu, X } from 'lucide-react';
import React, { useEffect, useState } from 'react';
import { AnimatePresence } from 'framer-motion';
import { ArrowUp, Home, Info, Menu, X } from 'lucide-react';
import Link from 'next/link';
import { usePathname } from 'next/navigation';
import { motion, AnimatePresence } from 'framer-motion';
import { Reveal } from './Reveal';
import React, { useEffect, useState } from 'react';
import { Button } from './Button';
import { Reveal } from './Reveal';
const Layout = ({ children }: { children: React.ReactNode }) => {
const pathname = usePathname();
@@ -211,7 +211,7 @@ const Layout = ({ children }: { children: React.ReactNode }) => {
<div className="pt-8 border-t border-slate-800 flex flex-col md:flex-row justify-between items-center gap-4 text-sm text-slate-500 relative">
<div className="absolute -top-px left-0 w-12 h-px bg-accent/50" />
<p>&copy; {new Date().getFullYear()} MB Grid Solutions GmbH. Alle Rechte vorbehalten.</p>
<p>&copy; {new Date().getFullYear()} MB Grid Solutions & Services GmbH. Alle Rechte vorbehalten.</p>
<p className="flex items-center gap-2">
<span className="relative flex h-2 w-2">
<span className="animate-ping absolute inline-flex h-full w-full rounded-full bg-accent opacity-75"></span>