fix game
Some checks failed
Dynamic Branch Deploy / build-and-deploy (push) Failing after 8m27s
Some checks failed
Dynamic Branch Deploy / build-and-deploy (push) Failing after 8m27s
This commit is contained in:
2
.github/workflows/deploy.yaml
vendored
2
.github/workflows/deploy.yaml
vendored
@@ -162,10 +162,12 @@ jobs:
|
||||
|
||||
# Ingress und App-Manifest anpassen
|
||||
sed -i "s|\${APP_URL}|${{ env.APP_URL }}|g" k8s/ingress.yaml
|
||||
sed -i "s|\${TARGET_NS}|${{ env.TARGET_NS }}|g" k8s/ingress.yaml
|
||||
sed -i "s|\${IMAGE_NAME}|${{ env.DEPLOY_IMAGE }}|g" k8s/app.yaml
|
||||
|
||||
# Anwenden
|
||||
echo "Deploying to Namespace: ${{ env.TARGET_NS }} (Image: ${{ env.DEPLOY_IMAGE }})"
|
||||
kubectl apply -f k8s/compress-middleware.yaml -n ${{ env.TARGET_NS }}
|
||||
kubectl apply -f k8s/pvc.yaml -n ${{ env.TARGET_NS }}
|
||||
kubectl apply -f k8s/nats.yaml -n ${{ env.TARGET_NS }}
|
||||
kubectl apply -f k8s/redis.yaml -n ${{ env.TARGET_NS }}
|
||||
|
||||
@@ -34,8 +34,11 @@ RUN echo "🗜️ Komprimiere Bilder..." && \
|
||||
# Server binary bauen
|
||||
RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -a -installsuffix cgo -ldflags="-w -s" -o server ./cmd/server
|
||||
|
||||
# WASM Client bauen
|
||||
RUN GOOS=js GOARCH=wasm go build -o cmd/client/web/main.wasm ./cmd/client
|
||||
# WASM Client bauen (mit Strip-Flags: -w entfernt Debug-Info, -s entfernt Symbol-Tabelle)
|
||||
RUN GOOS=js GOARCH=wasm go build -ldflags="-w -s" -o cmd/client/web/main.wasm ./cmd/client
|
||||
|
||||
# Unnötige Audio-Dateien entfernen (game.wav = 40MB, nur game.mp3 wird verwendet)
|
||||
RUN rm -f cmd/client/web/assets/game.wav
|
||||
|
||||
# Stage 2: Production Image
|
||||
FROM alpine:latest
|
||||
|
||||
@@ -32,7 +32,7 @@ func SetupGinServer(ec *nats.EncodedConn, port string) *gin.Engine {
|
||||
// Cache Control Middleware für statische Assets
|
||||
r.Use(func(c *gin.Context) {
|
||||
path := c.Request.URL.Path
|
||||
// Assets (Bilder, Fonts, etc.) - 1 Jahr cachen
|
||||
// Assets (Bilder, Audio, etc.) - 1 Jahr cachen
|
||||
if len(path) > 7 && path[:8] == "/assets/" {
|
||||
c.Header("Cache-Control", "public, max-age=31536000, immutable")
|
||||
}
|
||||
@@ -40,6 +40,14 @@ func SetupGinServer(ec *nats.EncodedConn, port string) *gin.Engine {
|
||||
if (path == "/main.wasm" || path == "/game.js" || path == "/wasm_exec.js") && c.Query("v") != "" {
|
||||
c.Header("Cache-Control", "public, max-age=31536000, immutable")
|
||||
}
|
||||
// CSS und Hintergrundbild - 1 Tag cachen
|
||||
if path == "/style.css" || path == "/background.jpg" {
|
||||
c.Header("Cache-Control", "public, max-age=86400")
|
||||
}
|
||||
// HTML - immer neu laden (enthält BUILD_VERSION für Cache-Busting der JS/WASM)
|
||||
if path == "/" || path == "/index.html" {
|
||||
c.Header("Cache-Control", "no-cache")
|
||||
}
|
||||
c.Next()
|
||||
})
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@ metadata:
|
||||
annotations:
|
||||
cert-manager.io/cluster-issuer: letsencrypt-prod
|
||||
traefik.ingress.kubernetes.io/router.entrypoints: web, websecure
|
||||
traefik.ingress.kubernetes.io/router.middlewares: gitea-redirect-https@kubernetescrd
|
||||
traefik.ingress.kubernetes.io/router.middlewares: gitea-redirect-https@kubernetescrd,${TARGET_NS}-compress@kubernetescrd
|
||||
spec:
|
||||
ingressClassName: traefik
|
||||
tls:
|
||||
|
||||
Reference in New Issue
Block a user