에피소드 14: MTV의 Zhaoyang Li, TOK의 Eric Aleshire 제공 (2020년 10월)
이전 에피소드
Chrome의 새 기능에 대한 회귀를 감지하고 싶으신가요? 폭포식 구조 (Chrome의 지속적 빌드 및 테스트 인프라)에 테스트를 추가하세요.
Chrome의 폭포식 구조에는 다양한 플랫폼에서 테스트를 실행하는 많은 빌더가 있습니다. 이 문서에서는 기존 빌더에 테스트 모음을 추가하는 방법을 설명합니다. 계속하기 전에 다음 사항을 고려하세요.
새 테스트는 새로운 도구 모음에 있어야 하나요, 아니면 기존 모음에 추가되어야 하나요?
- 테스트는 소스 위치 및 테마의 근접성에 따라 테스트 모음으로 구성됩니다. 새 테스트가 기존 도구 모음에 논리적으로 맞지 않으면 새 도구 모음이 필요할 수 있습니다.
테스트는 공개 빌더와 내부 빌더에서 실행해야 하나요?
- 코드가 내부 저장소에 있거나 테스트에 기밀 데이터가 포함된 경우 내부 빌더를 사용합니다.
FYI CI, 기본 CI 또는 커밋 큐(CQ)에서 테스트를 실행해야 하나요?
- FYI CI에는 자체 모니터링이 필요하며 테스트 개선 또는 실험에 사용됩니다.
- 보안관이 주요 CI 테스트를 정기적으로 모니터링합니다.
- 실패 시 CQ가 CL 제출을 차단하지만 인프라 리소스가 더 많이 소모됩니다. 새 도구 모음은 항상 CQ로 승급되기 전에 CI에서 시작해야 합니다.
- 확실하지 않다면 플랫폼의 EngProd팀에서 도움을 받을 수 있습니다.
이미 CI에서 실행 중인 테스트 모음을 CQ에 추가하려면 어떻게 해야 하나요? / 새 빌더가 필요하면 어떻게 해야 하나요?
chrome-browser-infra@
팀에서 평가를 시작하고 설정을 도울 수 있도록 Infra>Client>Chrome 구성요소에서 버그를 신고합니다.
테스트 모음을 기존 빌더에 추가하는 방법
테스트 모음을 기존 빌더에 추가하려면 //src/testing/buildbot/
에서 일부 파일을 구성해야 합니다.
gn_isolate_map.pyl
에서 테스트 타겟 라벨 및 유형 정보로 새 테스트 모음의 키를 만듭니다.test_suites.pyl
의 테스트 그룹에 키를 추가합니다.waterfalls.pyl
의 빌더에서 빌더 이름에서 테스트 그룹으로의 매핑을 확인할 수 있습니다.'all_simulator_tests': { 'previously_existing_test_suite': {}, 'exciting_new_feature_test_suite': {}, },
추가 미세 조정
mixins.pyl
에는 다양한 그룹 수준의 테스트 그룹에 적용할 수 있는 인수가 포함되어 있습니다.variants.pyl
는 서로 다른 인수를 사용하여 여러 인스턴스에서 도구 모음을 실행하는 데 도움이 됩니다.
generate_buildbot_json.py
를 실행하여 구성 파일을 재생성합니다.
그 이후에는 간단하게 구성 변경사항을 체크인하면 됩니다. 이 도구 모음을 실행하는 빌더가 자동으로 새 테스트를 선택하고 폭포식 구조에서 빌더의 결과가 웹 인터페이스에 전달되기 시작하며, 장애가 발생할 경우 다양한 디버그 정보와 함께 완료됩니다.