fix: Resolve CSS bundling in production and lint errors
- Fix golangci-lint errcheck errors by using t.Setenv() instead of os.Setenv() - Add CSS bundle build step to deploy workflow for production - Add graceful fallback to modular CSS if bundle doesn't exist - Remove unused os import from preferences_test.go
This commit is contained in:
@@ -46,6 +46,18 @@ jobs:
|
||||
|
||||
git pull origin main
|
||||
|
||||
# Build CSS bundle for production
|
||||
echo "🎨 Building CSS bundle..."
|
||||
if command -v lightningcss &> /dev/null; then
|
||||
mkdir -p static/dist
|
||||
lightningcss --bundle --minify static/css/main.css -o static/dist/bundle.min.css
|
||||
echo "✅ CSS bundle created ($(du -h static/dist/bundle.min.css | cut -f1))"
|
||||
else
|
||||
echo "⚠️ lightningcss not found, falling back to modular CSS"
|
||||
# Ensure dist directory doesn't exist so template falls back to main.css
|
||||
rm -rf static/dist
|
||||
fi
|
||||
|
||||
# Reapply stashed changes if any (optional - comment out if not needed)
|
||||
# if git stash list | grep -q "Auto-stash"; then
|
||||
# echo "♻️ Reapplying stashed changes..."
|
||||
|
||||
@@ -330,8 +330,16 @@ func (h *CVHandler) prepareTemplateData(lang string) (map[string]interface{}, er
|
||||
// Get current year
|
||||
currentYear := time.Now().Year()
|
||||
|
||||
// Check if production mode
|
||||
// Check if production mode AND CSS bundle exists
|
||||
// This ensures graceful fallback to modular CSS if bundle not built
|
||||
isProduction := os.Getenv("GO_ENV") == "production"
|
||||
if isProduction {
|
||||
bundlePath := filepath.Join("static", "dist", "bundle.min.css")
|
||||
if _, err := os.Stat(bundlePath); os.IsNotExist(err) {
|
||||
// Bundle doesn't exist, fall back to modular CSS
|
||||
isProduction = false
|
||||
}
|
||||
}
|
||||
|
||||
// Prepare template data
|
||||
data := map[string]interface{}{
|
||||
|
||||
@@ -3,7 +3,6 @@ package middleware
|
||||
import (
|
||||
"net/http"
|
||||
"net/http/httptest"
|
||||
"os"
|
||||
"testing"
|
||||
)
|
||||
|
||||
@@ -385,12 +384,8 @@ func TestIsProductionMode(t *testing.T) {
|
||||
|
||||
for _, tt := range tests {
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
// Save original environment
|
||||
originalEnv := os.Getenv("GO_ENV")
|
||||
defer os.Setenv("GO_ENV", originalEnv)
|
||||
|
||||
// Set test environment
|
||||
os.Setenv("GO_ENV", tt.envValue)
|
||||
// t.Setenv automatically restores the original value after the test
|
||||
t.Setenv("GO_ENV", tt.envValue)
|
||||
|
||||
result := isProductionMode()
|
||||
|
||||
@@ -428,12 +423,8 @@ func TestSetPreferenceCookieSecureFlag(t *testing.T) {
|
||||
|
||||
for _, tt := range tests {
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
// Save original environment
|
||||
originalEnv := os.Getenv("GO_ENV")
|
||||
defer os.Setenv("GO_ENV", originalEnv)
|
||||
|
||||
// Set test environment
|
||||
os.Setenv("GO_ENV", tt.envValue)
|
||||
// t.Setenv automatically restores the original value after the test
|
||||
t.Setenv("GO_ENV", tt.envValue)
|
||||
|
||||
w := httptest.NewRecorder()
|
||||
SetPreferenceCookie(w, "test-cookie", "test-value")
|
||||
|
||||
Reference in New Issue
Block a user