호드는 JSON 환경설정 파일을 통해 거의 단독으로 환경설정됩니다. 비록 초반에는 이와 관련된 일부 규칙 및 개념에 대해 배울 것이 많지만, UI 기반 환경설정 기능이라는 점은 분명합니다. 텍스트 파일에 환경설정을 저장하여 보다 손쉽게 변경사항을 비교 및 버전 관리하고, 문제를 유발하는 변경사항을 추적하고, 기능 세트의 명확한 사양을 제공할 수 있습니다.
호드 환경설정과 관련하여 다음과 같은 두 가지 영역이 있습니다.
- 서버 환경설정을 통해 다른 서버와 통신할 서버를 환경설정하고, 스태틱 파라미터를 정의하는 등의 작업을 수행합니다. 서버 환경설정은 서버와 함께 디플로이되는
Server.json파일로 구동됩니다. - 글로벌 환경설정은 디플로이되면 시스템의 모든 사용자 대상 요소를 제어하며,
Globals.json으로 명명된 파일에 있습니다. 디플로이 파라미터를 구성한 후 대부분의 환경설정이 여기에서 이루어집니다.
Server.json 파일은 ConfigPath 프로퍼티를 통해 Globals.json 을 읽을 위치를 참조하며, 디스크상 경로이거나 버전 관리 시스템 내 파일에 대한 경로일 수 있습니다(아래 내용 참고).
호드는 참조된 파일에 대한 변경사항을 탐지하여 다운타임 없이 자동으로 업데이트합니다. 런타임 시 환경설정 업데이트를 시도하는 동안 발생한 오류는 Slack 알림을 통해 보고할 수 있으며, 서버는 오류가 수정될 때까지 이전 환경설정의 캐시된 버전으로 계속 실행됩니다.
호드 환경설정 파일에는 경로별로 다른 환경설정 파일이 포함될 수 있습니다. 예를 들어 CI 사용 사례의 경우 스트림 내부에서 자체적으로 각 스트림을 환경설정하는 것이 편리할 수 있습니다.
프로젝트 및 스트림
호드 대시보드의 대부분은 프로젝트와 스트림으로 분할되어 있습니다. 프로젝트는 공유된 호드 인스턴스에서 작업하는 다양한 팀을 위한 최고 수준의 파티셔닝 기능으로 설계되었으며, 스트림은 특정 Perforce 스트림에 관련된 기능을 환경설정합니다.
각 프로젝트 및 스트림에는 일반적으로 자체 환경설정 파일이 있습니다. 관례에 따라, 그리고 스키마 서버가 올바르게 작동하도록 하기 위해 프로젝트 환경설정 파일의 확장자는 .project.json 이고, 스트림 환경설정 파일의 확장자는 .stream.json 입니다.
프로젝트와 스트림은 호드의 CI, PerfMem 허브, 테스트 허브를 사용하도록 구성되어야 합니다. 원격 실행 및 DDC 사용 사례 환경설정의 경우, 글로벌 환경설정 파일로 충분합니다.
리비전 컨트롤
호드는 Perforce에서 환경설정 파일 읽기를 지원합니다.
환경설정 데이터를 읽기 위해 사용할 Perforce 서버 및 계정은 Server.json 파일의 Perforce 섹션에 나열되어 있습니다. 환경설정 후 다음 형식 중 하나를 사용하여 소스 컨트롤에서 파일을 포함할 수 있습니다.
Perforce 구문('기본' ID로 환경설정된 Perforce 서버 사용):
//Foo/Bar/globals.json
명시적 URI 구문('some-name' ID로 환경설정된 Perforce 서버 사용):
perforce://some-name//Foo/Bar/globals.json
상대 경로는 파싱 중인 현재 파일과 관련하여, 파일을 제공하는 현재 스토리지 백엔드에 관계없이 환경설정 파일의 위치를 지정하는 데 사용할 수 있습니다.
스키마 서버
호드 환경설정 파일에는 많은 세팅이 있으며, 세팅에 익숙해지는 데 시간이 걸릴 수 있습니다. 보다 손쉬운 편집을 위해 호드는 IDE가 컨텍스트 하이라이트, 자동 완성, 유효성 검사 기능을 수행하도록 하는 JSON 스키마 서버를 구현합니다.
Microsoft Visual Studio에서 호드를 스키마 서버로 구성하려면 Tools > Options... 에서 Text Editor > JSON > Schema 로 이동합니다.
호드 서버로의 경로를 {{ SERVER-URL }}/api/v1/schema/catalog.json 으로 추가하되, {{ SERVER-URL }} 은 적절히 대체합니다.
포함된 파일에 주어진 확장자는 스키마에서 예상되어야 하는 루트 요소를 나타냅니다. 예를 들어 확장자가 .project.json 인 파일은 프로젝트 요소로 시작되고, 확장자가 .stream.json 인 파일은 스트림 요소로 시작됩니다.