{ "version": "2.0.0", "tasks": [ { "type": "go", "label": "go: build workspace", "command": "build", "options": { "env": { "CGO_ENABLED": "0" }, "cwd": "${workspaceFolder}/bin" }, "args": [ "../..." ], "problemMatcher": [ "$go" ], "group": "build" }, { "type": "shell", "label": "test: unit tests (all)", "command": "go test ./pkg/resolvespec ./pkg/restheadspec -v -cover", "options": { "cwd": "${workspaceFolder}" }, "problemMatcher": [ "$go" ], "group": { "kind": "test", "isDefault": true }, "presentation": { "reveal": "always", "panel": "shared", "focus": true } }, { "type": "shell", "label": "test: unit tests (resolvespec)", "command": "go test ./pkg/resolvespec -v -cover", "options": { "cwd": "${workspaceFolder}" }, "problemMatcher": [ "$go" ], "group": "test", "presentation": { "reveal": "always", "panel": "shared" } }, { "type": "shell", "label": "test: unit tests (restheadspec)", "command": "go test ./pkg/restheadspec -v -cover", "options": { "cwd": "${workspaceFolder}" }, "problemMatcher": [ "$go" ], "group": "test", "presentation": { "reveal": "always", "panel": "shared" } }, { "type": "shell", "label": "test: integration tests (automated)", "command": "./scripts/run-integration-tests.sh", "options": { "cwd": "${workspaceFolder}" }, "problemMatcher": [ "$go" ], "group": "test", "presentation": { "reveal": "always", "panel": "dedicated", "focus": true } }, { "type": "shell", "label": "test: integration tests (resolvespec only)", "command": "./scripts/run-integration-tests.sh resolvespec", "options": { "cwd": "${workspaceFolder}" }, "problemMatcher": [ "$go" ], "group": "test", "presentation": { "reveal": "always", "panel": "dedicated" } }, { "type": "shell", "label": "test: integration tests (restheadspec only)", "command": "./scripts/run-integration-tests.sh restheadspec", "options": { "cwd": "${workspaceFolder}" }, "problemMatcher": [ "$go" ], "group": "test", "presentation": { "reveal": "always", "panel": "dedicated" } }, { "type": "shell", "label": "test: coverage report", "command": "make coverage", "options": { "cwd": "${workspaceFolder}" }, "problemMatcher": [], "group": "test", "presentation": { "reveal": "always", "panel": "shared" } }, { "type": "shell", "label": "test: integration coverage report", "command": "make coverage-integration", "options": { "cwd": "${workspaceFolder}" }, "problemMatcher": [], "group": "test", "presentation": { "reveal": "always", "panel": "shared" } }, { "type": "shell", "label": "docker: start postgres", "command": "make docker-up", "options": { "cwd": "${workspaceFolder}" }, "problemMatcher": [], "presentation": { "reveal": "always", "panel": "shared" } }, { "type": "shell", "label": "docker: stop postgres", "command": "make docker-down", "options": { "cwd": "${workspaceFolder}" }, "problemMatcher": [], "presentation": { "reveal": "always", "panel": "shared" } }, { "type": "shell", "label": "docker: clean postgres data", "command": "make clean", "options": { "cwd": "${workspaceFolder}" }, "problemMatcher": [], "presentation": { "reveal": "always", "panel": "shared" } }, { "type": "go", "label": "go: test workspace (with race)", "command": "test", "options": { "cwd": "${workspaceFolder}" }, "args": [ "-v", "-race", "-coverprofile=coverage.out", "-covermode=atomic", "./..." ], "problemMatcher": [ "$go" ], "group": "test", "presentation": { "reveal": "always", "panel": "shared" } }, { "type": "shell", "label": "go: vet workspace", "command": "go vet ./...", "options": { "cwd": "${workspaceFolder}" }, "problemMatcher": [ "$go" ], "group": "test" }, { "type": "shell", "label": "go: lint workspace", "command": "golangci-lint run --timeout=5m", "options": { "cwd": "${workspaceFolder}" }, "problemMatcher": [], "group": "build" }, { "type": "shell", "label": "go: lint workspace (fix)", "command": "golangci-lint run --timeout=5m --fix", "options": { "cwd": "${workspaceFolder}" }, "problemMatcher": [], "group": "build" }, { "type": "shell", "label": "test: all tests (unit + integration)", "command": "make test", "options": { "cwd": "${workspaceFolder}" }, "dependsOn": [ "docker: start postgres" ], "problemMatcher": [ "$go" ], "group": "test", "presentation": { "reveal": "always", "panel": "dedicated", "focus": true } }, { "type": "shell", "label": "test: full suite with checks", "dependsOrder": "sequence", "dependsOn": [ "go: vet workspace", "test: unit tests (all)", "test: integration tests (automated)" ], "problemMatcher": [], "group": "test", "presentation": { "reveal": "always", "panel": "dedicated" } }, { "type": "shell", "label": "Make Release", "problemMatcher": [], "command": "sh ${workspaceFolder}/make_release.sh" } ] }