컨테이너화된 빌드를 사용하는 code scanning 소개
컴파일된 언어를 구성 code scanning 하고 컨테이너화된 환경에서 코드를 빌드하는 경우 "빌드하는 동안 소스 코드가 표시되지 않았습니다."라는 오류 메시지와 함께 분석이 실패할 수 있습니다. 이는 코드가 컴파일되는 동안 CodeQL이(가) 코드를 모니터링할 수 없었음을 나타냅니다.
코드를 빌드하는 컨테이너 내에서 실행 CodeQL 해야 합니다. 이 값은 사용 CodeQL CLIGitHub Actions여부에 관계없이 적용됩니다. CodeQL CLI자세한 내용은 사용자의 기존 CI 시스템으로 코드 검색 사용하기을 참조하세요. 사용하는 GitHub Actions경우 동일한 컨테이너에서 모든 작업을 실행하도록 워크플로를 구성합니다. 자세한 내용은 예제 워크플로에서 확인할 수 있습니다.
참고
CodeQL CLI는 (musl 기반) Alpine Linux와 같은 비 glibc Linux 배포판과 현재 호환되지 않습니다.
에 대한 종속성 CodeQLcode scanning
사용 중인 컨테이너에 특정 종속성이 누락된 경우 실행 code scanning 이 어려울 수 있습니다(예: Git을 설치하고 PATH 변수에 추가해야 합니다). 종속성 문제가 발생하면 GitHub의 러너 이미지에 일반적으로 포함되는 소프트웨어 목록을 검토하세요. 자세한 내용은 다음 위치에 있는 버전별 readme 파일을 참조하세요.
- 리눅스: https://github.com/actions/runner-images/tree/main/images/ubuntu
- macOS: https://github.com/actions/runner-images/tree/main/images/macos
- 윈도우: https://github.com/actions/runner-images/tree/main/images/windows
예시 워크플로
이 샘플 워크플로는 컨테이너화된 환경에서 분석을 실행하는 GitHub Actions 데 사용합니다CodeQL.
container.image 값은 사용할 컨테이너를 식별합니다. 이 예에서 이미지 이름은 codeql-container이고 태그는 f0f91db입니다. 자세한 내용은 GitHub Actions에 대한 워크플로 구문을(를) 참조하세요.
name: "CodeQL"
on:
push:
branches: [main]
pull_request:
branches: [main]
schedule:
- cron: '15 5 * * 3'
jobs:
analyze:
name: Analyze
runs-on: ubuntu-latest
permissions:
security-events: write
actions: read
strategy:
fail-fast: false
matrix:
language: [java-kotlin]
# Specify the container in which actions will run
container:
image: codeql-container:f0f91db
steps:
- name: Checkout repository
uses: actions/checkout@v6
- name: Initialize CodeQL
uses: github/codeql-action/init@v4
with:
languages: ${{ matrix.language }}
- name: Build
run: |
./configure
make
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v4