컨테이너화된 빌드를 사용하는 code scanning 정보
컴파일된 언어에 대해 code scanning을(를) 구성하고 컨테이너화된 환경에서 코드를 빌드하는 경우. “빌드 중 소스 코드가 표시되지 않았습니다”라는 오류 메시지가 뜨면서 분석이 실패할 수 있습니다. 이는 CodeQL이 컴파일될 때 코드를 모니터링할 수 없음을 나타냅니다.
코드를 빌드하는 컨테이너 내에서 CodeQL을 실행해야 합니다. 이는 CodeQL CLI 또는 GitHub Actions 사용 여부와 관계없이 발생할 수 있습니다. CodeQL CLI에 대한 자세한 정보는 "기존 CI 시스템에서 코드 검색 사용하기"을(를) 참조하세요. GitHub Actions를 사용하는 경우 동일한 컨테이너에서 모든 작업을 실행하도록 워크플로를 구성합니다. 자세한 내용은 "예시 워크플로"를 참조하세요.
Note
CodeQL CLI는 (musl 기반) Alpine Linux와 같은 비 glibc Linux 배포판과 현재 호환되지 않습니다.
CodeQL code scanning에 대한 종속성
사용 중인 컨테이너에 특정 종속성이 누락된 경우 code scanning를 실행하는 데 어려움이 있을 수 있습니다(예: Git을 설치하고 PATH 변수에 추가해야 함). 종속성 문제가 발생하는 경우 일반적으로 GitHub의 실행기 이미지에 포함된 소프트웨어 목록을 검토합니다. 자세한 내용은 다음 위치에 있는 버전별 readme
파일을 참조하세요.
- Linux: https://github.com/actions/runner-images/tree/main/images/ubuntu
- macOS: https://github.com/actions/runner-images/tree/main/images/macos
- Windows: 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@v4
- name: Initialize CodeQL
uses: github/codeql-action/init@v3
with:
languages: ${{ matrix.language }}
- name: Build
run: |
./configure
make
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v3