A정책정책은 명명되고 버전이 지정된 품질 게이트 집합입니다. 정책은 프로젝트에 연결되는 것이며, 실제로 실행되는 것은 게이트입니다.
차단형과 권고형의 개념, 그리고 게이트가 실행되는 위치에 대해서는 다음을 참조하세요.품질 게이트먼저 확인하세요. 이 페이지에서는 이를 관리하는 방법을 다룹니다.
이를 관리하려면품질 관리여기서 조직 기본값과 모든 프로젝트 목록이 표시됩니다. 하나를 선택하여 새 작업이 어떻게 검사되는지, 각 변경 사항에서 어떤 항목을 확인하는지, QA 수준과 검사 실행 위치, 그리고 전환하면 즉시 적용되는 스위치를 확인할 수 있습니다. 확인 과정을 통해 변경 사항을 취소할 수 있으며, 행의 설정값에 따라 해당 검사의 동작 방식이 달라집니다.
- 조직 기본 설정3개 프로젝트에서 이를 따릅니다.2개 중 5개
- 스토어프론트사용자 정의 설정4개 중 5개
- 문서 사이트기본 설정을 따름2개 중 5개
- 결제 API기본 설정을 따름2개 중 5개
- 모바일 앱기본 설정을 따름2개 중 5개
- 안티-슬롭테스트가 약화되거나 오류가 숨겨지고, 임시 코드가 배포되거나 구조적 부채가 추가되는 경우 해당 변경 사항을 다시 반려합니다.
- 단위 테스트모든 변경 사항에 대해 저장소 내의 단위 테스트를 자동으로 찾아서 실행합니다.
- 브라우저 테스트2개 중 3개기본 설정과 다름변경된 내용을 기반으로 브라우저 상에서 사용자 흐름을 실행하여 검증합니다.
- 번역기본 설정과 다름변경된 문자열이 올바르게 번역되었는지, 그리고 플레이스홀더와 복수형 표현이 일치하는지를 확인합니다.
- 저장소 검사서식 지정, 파일 크기 검사, 마이그레이션, 통합 테스트 및 보안 스캔 등 사용자가 지정한 커맨드를 직접 실행합니다.
- 철저한 QA철저함QA 단계에서는 명세서에 따라 실제 증거와 스크린샷을 수집합니다. 이 기능이 비활성화되면 표준 QA 절차가 적용됩니다.
품질 관리: 적용 중인 정책과 최신 게이트 실행 결과. 예시용 데이터입니다.
정책 생성하기
정책은 검사 집합과, 각 검사가 실패 시 차단할지 아니면 권고만 할지를 정의한 규칙으로 구성됩니다.
대부분의 조직에서는 프로젝트별로 하나씩 만드는 대신 두세 가지 정책만 필요합니다.
- a엄격한운영 서비스용 정책
- a표준적인일반 작업용 정책
- 간혹 a간편한내부 도구 및 프로토타입용 정책
그보다 더 많은 정책을 만들면 어떤 프로젝트에 어떤 정책이 적용되는지 아무도 기억할 수 없습니다.
조직 기본값과 프로젝트 자체 설정
프로젝트는 조직 기본값을 따르다가 스위치를 변경하면 자체 설정을 갖게 됩니다. 이 설정은 기본값에서 복사된 것이며, 이후 기본값이 변경되어도 프로젝트에는 영향을 주지 않습니다. 행 단위로 기본값의 검사를 다시 복사할 수도 있고, 프로젝트 메뉴에서 전체 프로젝트를 조직 기본값으로 초기화할 수도 있습니다. 스위치 뒤에 숨겨진 전체 정책(기대치, 검사 간 종속 관계, 수정 예산 및 버전 포함)은 고급 편집기와 동일한 메뉴에서 열립니다. 기본값을 따르는 프로젝트의 경우 편집기는 기본값의 복사본에서 시작하며, 이 복사본을 게시하기 전까지는 프로젝트에 아무런 변화도 적용되지 않습니다.
기본값을 귀사의표준적인검사로 설정하세요. 이 검사는 대부분의 프로젝트에서 실행해야 하는 것이며, 가장 엄격한 검사는 의도적으로 프로젝트별로 별도로 적용해야 합니다.
Pull request
사람과 다른 도구가 생성한 Pull request는 Coroid의 Coroid GitHub 앱을 통해 Coroid에 도달합니다.Pull request품질 관리 그룹에서는 조직 기본값과 각 프로젝트별로 Pull request를 어떻게 처리할지 결정합니다.
- Coroid 품질 관리Coroid 품질 관리는 모든 pull request에서 위에 언급된 검사를 실행하고 그 결과를 GitHub의 Coroid 품질 관리 검사로 보고합니다.
- Coroid 리뷰Coroid의 리뷰어가 각 pull request를 읽고 문제가 있는 줄에 코멘트를 남깁니다. 이 리뷰어는 Coroid 품질 관리가 검사한 Pull request를 대상으로 작업합니다.
Coroid 리뷰의 설정:
- 게시되는 내용기본값인 권고형 모드에서는 코멘트만 남기고 검사를 실패시키지 않습니다. 문제가 발견되면 차단형으로 전환되어 검사가 실패합니다. 차단형 리뷰가 병합을 중단시키도록 하려면 GitHub에서 Coroid 리뷰를 필수 검사로 설정하세요.
- 적용되는 Pull request기본적으로 초안 상태가 완료로 표시될 때까지 기다리며, Coroid가 생성한 Pull request는 건너뛰는데 이는 __COROID_TER0__의 리뷰어가 이미 작업 내에서 검토했기 때문입니다. 봇이 생성한 Pull request도 건너뛸 수 있습니다.
- 리뷰 실행 시점마지막 푸시 이후 일정 시간(기본값 5분) 동안 조용한 상태를 기다립니다. 새로 푸시된 내용이 있으면 시작되지 않은 리뷰는 취소됩니다. GitHub에서 재실행하면 즉시 리뷰가 시작됩니다.
- 리뷰 깊이리뷰어가 한 번의 리뷰에서 읽고 작성할 수 있는 범위입니다.
이 설정은 Coroid의 리뷰 규칙과 저장소의review-rules폴더에 있는 규칙을 따릅니다. 조직 기본값을 따르는 프로젝트는 다른 모든 제어 항목과 마찬가지로 기본값의 설정을 상속받습니다.
문제가 발생했을 때
조직 기본값 아래에 있는 세 개의 스위치를 사용하면 모든 프로젝트에서 발생한 오류를 후속 작업으로 전환할 수 있습니다. 각 스위치는 Factory의 자동화 항목에 등록된 자동화 작업을 실행하며, 에이전트가 코드를 읽고 작업을 생성한 뒤 다른 작업과 동일한 사양, 빌드, 검증 및 리뷰 과정을 거칩니다.
| 스위치 | 실행 시점 | 에이전트의 수행 작업 |
|---|---|---|
| 작업이 실패하면 수정 작업을 생성합니다 | 작업이 실패함 | 원인을 파악한 뒤, 원인이 코드에 있을 경우 이를 수정하는 작업을 생성합니다 |
| 배포가 실패하면 원인을 조사합니다 | 배포가 실패함 | 해당 버전에서 변경된 내용을 확인한 뒤, 무엇이 잘못되었고 어떻게 수정해야 하는지를 명시한 작업을 생성합니다 |
| 릴리스가 롤백되면 수정 계획을 세웁니다 | 릴리스가 롤백됨 | 롤백된 내용, 그 이유, 그리고 다시 배포하기 전에 반드시 수정해야 할 사항을 기록하는 작업을 생성합니다 |
자동화 기능을 끄면 해당 프로세스의 자동화가 일시 중단되며, 다시 켜면 재개됩니다. 모든 변경 사항에는 실행 취소 기능이 제공됩니다. Factory 내 자동화 페이지에서는 해당 프로세스가 품질 관리에 의해 관리된다고 표시됩니다. 거기서 일시 중단하는 것도 자동화를 끄는 것과 동일하며, 지침을 변경하면 확인 후에 해당 프로세스가 사용자 전용으로 설정되고, 더 이상 스위치를 이용해 켜거나 끌 수 없게 됩니다.
이것들은 새 작업에 있는 템플릿입니다. 이전에 템플릿을 기반으로 생성한 자동화는 계속 실행됩니다. 변경하지 않았다면 해당 스위치를 켜면 기존 자동화가 대신 작동하며 새로운 인스턴스가 생성되지 않습니다. 변경했다면 해당 자동화는 사용자 소유로 유지되며, 스위치의 행에 그 이름이 표시되고 스위치가 이를 관리하도록 설정할 수 있습니다.
안전하게 배포하기
게이트의 문제점은 성능이 약하다는 것이 아니라, 선의에서 비롯된 차단형 게이트가 조직 내 모든 작업을 한꺼번에 중단시킨다는 점입니다.
안전한 절차는 다음과 같습니다:
- 게이트를 다음과 같이 추가하세요:권고 사항.
- 실제 업무에서 1~2주간 작동시키고, 어떤 경고를 발생시키는지 확인하세요.
- 확인한 내용을 바탕으로 게이트를 조정하세요.
- 다음으로 승격하세요:차단형하나의 프로젝트에서 적용하기.
- 제대로 작동하는 것이 확인되면 더 널리 배포하세요.
- 1게이트를 추가하기권고형
- 21~2주간 모니터링하기권고형
- 3감지된 내용에 맞게 조정하기권고형
- 4하나의 프로젝트에서 차단형으로 적용하기차단형하나의 프로젝트
- 5더 넓게 배포하기차단형더 많은 프로젝트
버전 관리 및 롤백
정책은 버전별로 관리됩니다. 각 스위치 조작 시 새 버전이 생성되며, 이전 버전으로 되돌려서 변경 사항을 실행 취소할 수 있습니다. 이전 버전은 고급 편집기의 버전 기록에서 복원할 수 있습니다.
롤백 기능 덕분에 배포 결정을 내릴 때 안심할 수 있습니다. 새 게이트가 잘 조정되지 않았다면 이전 상태로 되돌리는 것이 단 한 번의 작업으로 가능하며, 복잡한 복구 과정을 거칠 필요가 없습니다.
재정의
권한이 있는 사용자는 차단형 게이트를 재정의할 수 있습니다. 재정의 내역은 누가, 언제, 무엇에 대해 적용했는지 기록됩니다.
재정의 발생 빈도를 주의 깊게 모니터링하세요. 게이트가 발동될 때마다 대부분 재정의된다면 해당 게이트는 아무런 제약 기능을 발휘하지 못하며, 오히려 불필요한 마찰과 문서 작업만 발생시킵니다. 게이트를 수정하거나 삭제하는 것이 좋습니다.