code scanning 분석의 빌드 시간을 단축하기 위해 시도할 수 있는 몇 가지 방법이 있습니다.
메모리 또는 코어 늘리기
행렬 빌드를 사용하여 분석 병렬 처리
여러 작업이 포함된 워크플로의 분석 속도를 높이기 위해 행렬을 사용하도록 워크플로를 수정할 수 있습니다. 자세한 내용은 워크플로에서 작업 변형 실행을(를) 참조하세요.
기본 CodeQL 분석 워크플로는 언어 행렬을 사용하므로 각 언어의 분석이 병렬로 실행됩니다. 그러나 고급 설정으로 CodeQL을 사용하고 "CodeQL 초기화" 단계에서 직접 분석할 언어를 지정한 경우 각 언어에 대한 분석이 순차적으로 수행됩니다. 이 구성에서는 행렬을 사용하도록 고급 설정 워크플로를 수정하여 분석 속도를 높일 수 있습니다. 예제는 일부 언어는 CodeQL 고급 설정으로 분석되지 않았습니다.의 워크플로 추출을 참조하세요.
단일 워크플로에서 분석되는 코드의 양을 줄입니다.
분석 시간은 일반적으로 분석되는 코드의 양에 비례합니다. 고급 설정으로 CodeQL을 사용하는 경우 한 번에 분석되는 코드의 양을 줄여 분석 시간을 줄일 수 있습니다. 예를 들어 테스트 코드를 제외하거나 한 번에 코드의 하위 집합만 분석하는 여러 워크플로로 분석을 분리합니다.
생성된 코드에서 발견된 경고
CodeQL 분석을 여러 워크플로로 분할하는 경우, 리포지토리의 모든 코드를 분석하는 schedule에서 실행되는 워크플로를 하나 이상 보유하는 것이 좋습니다. CodeQL은(는) 구성 요소 간의 데이터 흐름을 분석하므로 일부 복잡한 보안 동작은 전체 빌드에서만 검색될 수 있습니다.
`schedule` 이벤트 중에만 실행
분석이 push 또는 pull_request 이벤트 중 느려질 수 있습니다. 그렇다면 schedule 이벤트에서만 트리거되도록 분석을 설정할 수 있습니다. CodeQL을 code scanning 분석에 사용하는 경우 고급 설치 워크플로를 사용하여 구성할 수 있지만 기본 설정에서는 구성할 수 없습니다. 자세한 내용은 GitHub Actions 이해을(를) 참조하세요.
워크플로가 실행되는 쿼리 또는 규칙 확인
분석 시간을 줄이는 또 다른 옵션은 끌어오기 요청에서 실행되는 워크플로에서 중요하다고 생각되는 쿼리 또는 규칙만 실행하는 것입니다. code scanning에 타사 도구를 사용하는 경우 해당 도구에 대한 설명서를 참조해야 합니다.
CodeQL에는 각 언어에 사용할 수 있는 두 개의 기본 쿼리 도구 모음이 있습니다. CodeQL 데이터베이스 빌드를 최적화했는데 처리 시간이 여전히 너무 오래 걸리는 경우 실행하는 쿼리 수를 줄일 수 있습니다. 기본 쿼리 도구 모음은 자동으로 실행되며 품질과 속도 사이에서 가능한 최상의 절충안을 제공합니다.
고급 설정으로 CodeQL을 사용하는 경우 기본 쿼리 외에도 추가 쿼리 또는 쿼리 도구 모음을 실행할 수 있습니다. 워크플로가 queries 요소를 사용하여 실행할 추가 쿼리 도구 모음 또는 추가 쿼리를 정의하는지 확인합니다. 추가 쿼리 도구 모음 또는 쿼리를 사용하지 않도록 설정하여 실험할 수 있습니다. 자세한 내용은 코드 검색을 위한 고급 설정 사용자 지정을(를) 참조하세요.