{ "version": "2.0.0", "tasks": [ // ── Docker: Build ────────────────────────────────────────────────────────── { "label": "Docker: Build (Windows)", "type": "shell", "windows": { "command": "docker build -t 192.168.0.19:5000/archivum:latest -f docker/Dockerfile ." }, "group": "build", "presentation": { "reveal": "always", "panel": "shared" }, "problemMatcher": [] }, { "label": "Docker: Build (Linux)", "type": "shell", "linux": { "command": "docker build -t 192.168.0.19:5000/archivum:latest -f docker/Dockerfile ." }, "group": "build", "presentation": { "reveal": "always", "panel": "shared" }, "problemMatcher": [] }, // ── Docker: Push ─────────────────────────────────────────────────────────── { "label": "Docker: Push (Windows)", "type": "shell", "windows": { "command": "docker push 192.168.0.19:5000/archivum:latest" }, "group": "build", "presentation": { "reveal": "always", "panel": "shared" }, "problemMatcher": [] }, { "label": "Docker: Push (Linux)", "type": "shell", "linux": { "command": "docker push 192.168.0.19:5000/archivum:latest" }, "group": "build", "presentation": { "reveal": "always", "panel": "shared" }, "problemMatcher": [] }, // ── Docker: Build & Push ─────────────────────────────────────────────────── { "label": "Docker: Build & Push (Windows)", "dependsOrder": "sequence", "dependsOn": ["Docker: Build (Windows)", "Docker: Push (Windows)"], "group": { "kind": "build", "isDefault": true }, "presentation": { "reveal": "always", "panel": "shared" }, "problemMatcher": [] }, { "label": "Docker: Build & Push (Linux)", "dependsOrder": "sequence", "dependsOn": ["Docker: Build (Linux)", "Docker: Push (Linux)"], "group": "build", "presentation": { "reveal": "always", "panel": "shared" }, "problemMatcher": [] }, // ── Docker: Multi-arch Build & Push (buildx) ─────────────────────────────── { "label": "Docker: Multi-arch Build & Push (Windows)", "type": "shell", "windows": { "command": "docker buildx build --platform linux/amd64,linux/arm64 -t 192.168.0.19:5000/archivum:latest -f docker/Dockerfile --push ." }, "group": "build", "presentation": { "reveal": "always", "panel": "shared" }, "problemMatcher": [] }, { "label": "Docker: Multi-arch Build & Push (Linux)", "type": "shell", "linux": { "command": "docker buildx build --platform linux/amd64,linux/arm64 -t 192.168.0.19:5000/archivum:latest -f docker/Dockerfile --push ." }, "group": "build", "presentation": { "reveal": "always", "panel": "shared" }, "problemMatcher": [] }, // ── Backend: Run ─────────────────────────────────────────────────────────── { "label": "Backend: Run", "type": "shell", "windows": { "command": "go run .\\cmd\\server", "options": { "cwd": "${workspaceFolder}\\backend" } }, "linux": { "command": "go run ./cmd/server", "options": { "cwd": "${workspaceFolder}/backend" } }, "group": "test", "isBackground": true, "presentation": { "reveal": "always", "panel": "dedicated" }, "problemMatcher": { "pattern": { "regexp": "^(.*):(\\d+):(\\d+):\\s+(.*)", "file": 1, "line": 2, "column": 3, "message": 4 }, "background": { "activeOnStart": true, "beginsPattern": "^Archivum listening", "endsPattern": "^Archivum listening" } } }, // ── Frontend: Dev ────────────────────────────────────────────────────────── { "label": "Frontend: Dev", "type": "shell", "windows": { "command": "npm run dev", "options": { "cwd": "${workspaceFolder}\\frontend" } }, "linux": { "command": "npm run dev", "options": { "cwd": "${workspaceFolder}/frontend" } }, "group": "test", "isBackground": true, "presentation": { "reveal": "always", "panel": "dedicated" }, "problemMatcher": { "pattern": { "regexp": "^(.*):(\\d+):(\\d+):\\s+(.*)", "file": 1, "line": 2, "column": 3, "message": 4 }, "background": { "activeOnStart": true, "beginsPattern": "VITE", "endsPattern": "Local:" } } }, // ── Frontend: Build ──────────────────────────────────────────────────────── { "label": "Frontend: Build", "type": "shell", "windows": { "command": "npm run build", "options": { "cwd": "${workspaceFolder}\\frontend" } }, "linux": { "command": "npm run build", "options": { "cwd": "${workspaceFolder}/frontend" } }, "group": "build", "presentation": { "reveal": "always", "panel": "shared" }, "problemMatcher": ["$tsc"] }, // ── Compose: Build (local test image) ────────────────────────────────────── { "label": "Compose: Build (Windows)", "type": "shell", "windows": { "command": "docker compose -f docker/docker-compose.yml build" }, "group": "build", "presentation": { "reveal": "always", "panel": "shared" }, "problemMatcher": [] }, { "label": "Compose: Build (Linux)", "type": "shell", "linux": { "command": "docker compose -f docker/docker-compose.yml build" }, "group": "build", "presentation": { "reveal": "always", "panel": "shared" }, "problemMatcher": [] }, // ── Compose: Up ──────────────────────────────────────────────────────────── { "label": "Compose: Up (Windows)", "type": "shell", "windows": { "command": "docker compose -f docker/docker-compose.yml up" }, "group": "test", "isBackground": true, "presentation": { "reveal": "always", "panel": "dedicated" }, "problemMatcher": { "pattern": { "regexp": ".", "file": 1, "line": 2, "message": 3 }, "background": { "activeOnStart": true, "beginsPattern": "Starting", "endsPattern": "Archivum listening" } } }, { "label": "Compose: Up (Linux)", "type": "shell", "linux": { "command": "docker compose -f docker/docker-compose.yml up" }, "group": "test", "isBackground": true, "presentation": { "reveal": "always", "panel": "dedicated" }, "problemMatcher": { "pattern": { "regexp": ".", "file": 1, "line": 2, "message": 3 }, "background": { "activeOnStart": true, "beginsPattern": "Starting", "endsPattern": "Archivum listening" } } }, // ── Compose: Down ────────────────────────────────────────────────────────── { "label": "Compose: Down (Windows)", "type": "shell", "windows": { "command": "docker compose -f docker/docker-compose.yml down" }, "group": "test", "presentation": { "reveal": "always", "panel": "shared" }, "problemMatcher": [] }, { "label": "Compose: Down (Linux)", "type": "shell", "linux": { "command": "docker compose -f docker/docker-compose.yml down" }, "group": "test", "presentation": { "reveal": "always", "panel": "shared" }, "problemMatcher": [] }, // ── Compose: Build & Up (one-shot local test) ────────────────────────────── { "label": "Compose: Build & Up (Windows)", "type": "shell", "windows": { "command": "docker compose -f docker/docker-compose.yml up --build" }, "group": "test", "isBackground": true, "presentation": { "reveal": "always", "panel": "dedicated" }, "problemMatcher": { "pattern": { "regexp": ".", "file": 1, "line": 2, "message": 3 }, "background": { "activeOnStart": true, "beginsPattern": "Building", "endsPattern": "Archivum listening" } } }, { "label": "Compose: Build & Up (Linux)", "type": "shell", "linux": { "command": "docker compose -f docker/docker-compose.yml up --build" }, "group": "test", "isBackground": true, "presentation": { "reveal": "always", "panel": "dedicated" }, "problemMatcher": { "pattern": { "regexp": ".", "file": 1, "line": 2, "message": 3 }, "background": { "activeOnStart": true, "beginsPattern": "Building", "endsPattern": "Archivum listening" } } }, // ── Compose: Logs ────────────────────────────────────────────────────────── { "label": "Compose: Logs (Windows)", "type": "shell", "windows": { "command": "docker compose -f docker/docker-compose.yml logs -f" }, "group": "test", "isBackground": true, "presentation": { "reveal": "always", "panel": "dedicated" }, "problemMatcher": [] }, { "label": "Compose: Logs (Linux)", "type": "shell", "linux": { "command": "docker compose -f docker/docker-compose.yml logs -f" }, "group": "test", "isBackground": true, "presentation": { "reveal": "always", "panel": "dedicated" }, "problemMatcher": [] } ] }