빌드, 테스트, 린트하기
빌드, 테스트, 린트하기
기여는 언제나 환영이에요. GitHub에서 이슈나 풀 리퀘스트를 열어주세요. 이 프로젝트는 Go로 작성되었습니다.
출처: 문서
본문
무엇을 할 수 있을까요
소스에서 서버를 실행하고, 테스트 스위트를 실행하며, 린터를 로컬에서 실행할 수 있어요.
시작하기 전에
- 플랫폼용 Go 설치
- 선택사항: 통합 테스트용 Docker
서버를 로컬에서 실행하기
STDIO(로컬 개발 기본값):
make run
SSE:
go run ./cmd/mcp-grafana --transport sse
Docker 이미지 빌드 및 실행하기
이미지 빌드:
make build-image
SSE 모드로 실행(이미지 기본값):
docker run -it --rm -p 8000:8000 mcp-grafana:latest
stdio 모드로 실행:
docker run -it --rm mcp-grafana:latest -t stdio
테스트 실행하기
단위 테스트, 통합 테스트, 클라우드 테스트의 세 가지 유형이 있어요.
단위 테스트(외부 의존성 불필요):
make test-unit
다음도 실행할 수 있어요:
make test
통합 테스트(Docker 컨테이너 필요):
make test-integration
클라우드 테스트(Grafana Cloud 인스턴스와 자격 증명 필요):
make test-cloud
참고: 클라우드 테스트는 CI에서 자동으로 구성됩니다. 로컬 개발에서는 자신의 Grafana Cloud 인스턴스와 자격 증명을 직접 설정해야 해요.
전체 통합 스위트를 위해 먼저 지원 서비스(Grafana와 그 의존성, 포트 3000)를 시작하세요:
make run-test-services
make test-integration
도구를 추가한다면 통합 테스트도 추가하세요. 기존 테스트가 좋은 템플릿이 됩니다.
린터 실행하기
make lint
이 저장소에는 jsonschema 구조 태그의 이스케이프되지 않은 쉼표를 검사하는 커스텀 린터가 포함돼 있어요 (description 필드는 잘림을 피하기 위해 \,로 이스케이프해야 합니다). 해당 린터만 실행하려면:
make lint-jsonschema
저장소의 JSONSchema linter README를 참고하세요.