deploy
Some checks failed
Build & Deploy MB Grid Solutions / build-and-deploy (push) Failing after 27s
Some checks failed
Build & Deploy MB Grid Solutions / build-and-deploy (push) Failing after 27s
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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.",
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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>© {new Date().getFullYear()} MB Grid Solutions GmbH. Alle Rechte vorbehalten.</p>
|
||||
<p>© {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>
|
||||
|
||||
Reference in New Issue
Block a user