Skip to main content

오류: “빌드하는 동안 소스 코드가 표시되지 않음”

CodeQL이(가) 소스 코드를 찾지 못한 경우 이 문제를 해결하여 code scanning 분석을 차단 해제해야 합니다.

워크플로가 Error: "No source code was seen during the build" 또는 The process '/opt/hostedtoolcache/CodeQL/0.0.0-20200630/x64/codeql/codeql' failed with exit code 32(으)로 인해 실패하는 경우 이는 CodeQL이(가) 코드를 모니터링할 수 없음을 나타냅니다. 이에 대해 가능한 6가지 이유는 다음과 같습니다.

  1. 지원되는 언어 없음: 리포지토리에는 CodeQL에서 지원하는 언어로 작성된 소스 코드가 포함되어 있지 않을 수 있습니다. 지원되는 언어 목록을 확인하고 이 경우 CodeQL 워크플로를 제거합니다. 자세한 내용은 "CodeQL을 사용하는 코드 검사 안내"을(를) 참조하세요.

  2. 검색된 언어의 분석 가능한 코드 없음: 자동 언어 검색은 지원되는 언어를 식별했지만 리포지토리에는 해당 언어의 분석 가능한 코드가 없습니다. 일반적인 예는 언어 검색 서비스에서 특정 프로그래밍 언어(예: .h 또는 .gyp 파일)와 연결된 파일을 찾지만 리포지토리에 해당 실행 코드가 없는 경우입니다. 이 문제를 해결하기 위해 language 행렬의 언어 목록을 업데이트하여 분석하려는 언어를 수동으로 정의할 수 있습니다. 예를 들어 다음 구성은 Go 및 JavaScript만 분석합니다.

    strategy:
      fail-fast: false
      matrix:
        # Override automatic language detection by changing the list below.
        # Supported options are listed in a comment in the default workflow.
        language: ['go', 'javascript-typescript']
    

    자세한 내용은 "일부 언어는 CodeQL 고급 설정으로 분석되지 않았습니다."의 워크플로 추출을 참조하십시오.

  3. 컴파일된 언어의 컴파일 실패: code scanning 워크플로가 컴파일된 언어(C, C++, C#, Go, 또는 Java)를 컴파일하려고 하지만 코드가 컴파일되지 않은 경우입니다. 워크플로우가 언어에 build-mode: autobuild을 지정하거나 autobuild 단계를 포함하는 경우 CodeQL는 적합한 빌드 방법을 감지하고 코드를 빌드하기 위해 최선의 노력을 다합니다. autobuild 프로세스는 특정 빌드 환경에 따라 코드를 빌드하는 데 성공하지 못할 수 있습니다. autobuild 단계를 제거하고 빌드 단계를 수동으로 포함하지 않은 경우에도 컴파일이 실패할 수 있습니다. 빌드 단계를 정의하는 방법에 대한 자세한 내용은 "컴파일된 언어에 대한 CodeQL 코드 검사하기"을(를) 참조하세요.

  4. 캐시된 구성 요소가 검색되지 않음: 워크플로에서는 컴파일된 언어(C, C++, C#, Go, 또는 Java)를 빌드하여 분석을 위한 CodeQL 데이터베이스가 생성되지만 성능 향상을 위해 빌드의 일부가 캐시됩니다(Gradle 또는 Bazel과 같은 빌드 시스템에서 발생할 가능성이 가장 높음). CodeQL은(는) 리포지토리의 데이터 흐름을 이해하기 위해 컴파일러의 활동을 관찰하므로 CodeQL은(는) 분석을 수행하기 위해 완전한 빌드가 필요합니다.

  5. initanalyze 단계 이외의 컴파일: 워크플로는 컴파일된 언어(C, C++, C#, Go, 또는 Java)를 분석하고 있지만 워크플로의 initanalyze 단계 간에 컴파일이 실행되지 않습니다. CodeQL을(를) 수행하려면 컴파일러의 활동을 관찰하고 분석을 수행하기 위해 이 두 단계 사이에 빌드가 수행되어야 합니다.

  6. CodeQL에서 컴파일이 감지되지 않음: 컴파일된 코드(C, C++, C# 이동, 또는 Java 사용)가 성공적으로 컴파일되었지만 CodeQL에서 컴파일러 호출을 검색할 수 없었습니다. 가장 일반적인 원인은 다음과 같습니다.

    • CodeQL에 대한 별도의 컨테이너에서 빌드 프로세스를 실행합니다. 자세한 내용은 "컨테이너에서 CodeQL 코드 검사 실행"을(를) 참조하십시오.
    • 디먼 프로세스를 사용하여 GitHub Actions 외부의 분산 빌드 시스템을 통해 빌드합니다.
    • CodeQL은(는) 사용 중인 특정 컴파일러를 인식하지 못합니다.

특정 컴파일러 또는 구성에 다른 문제가 발생하면 GitHub 지원 포털 사용에 문의하세요.

빌드 단계 지정에 대한 자세한 내용은 "컴파일된 언어에 대한 CodeQL 코드 검사하기"을(를) 참조하십시오.