Files
Archivum/.vscode/tasks.json
brasse b 8138abad4e feat: add VS Code Compose tasks for local full-stack testing
Adds Compose: Build & Up, Up, Down, Logs tasks for both Windows and Linux,
allowing the complete app to be tested locally via docker-compose on port 8080.
Updates README task table to reflect all available tasks.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-10 13:14:22 +02:00

302 lines
11 KiB
JSON

{
"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": []
}
]
}