컨테이너화된 빌드를 사용하는 code scanning 정보
컴파일된 언어에 대해 code scanning을(를) 구성하고 컨테이너화된 환경에서 코드를 빌드하는 경우. “빌드 중 소스 코드가 표시되지 않았습니다”라는 오류 메시지가 뜨면서 분석이 실패할 수 있습니다. 이는 CodeQL이 컴파일될 때 코드를 모니터링할 수 없음을 나타냅니다.
코드를 빌드하는 컨테이너 내에서 CodeQL을 실행해야 합니다. 이는 CodeQL CLI 또는 GitHub Actions 사용 여부와 관계없이 발생할 수 있습니다. CodeQL CLI에 대한 자세한 정보는 "기존 CI 시스템에서 코드 검색 사용하기"을(를) 참조하세요. GitHub Actions를 사용하는 경우 동일한 컨테이너에서 모든 작업을 실행하도록 워크플로를 구성합니다. 자세한 내용은 "예시 워크플로"를 참조하세요.
참고: 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 Enterprise Server 버전의 초기 릴리스에 포함된 CodeQL 작업 및 관련 CodeQL CLI 번들의 버전에서 사용할 수 있는 기능을 설명합니다. 엔터프라이즈에서 더 최신 버전의 CodeQL 작업을 사용하는 경우, 최신 기능에 대한 자세한 내용은 이 문서의GitHub Enterprise Cloud 버전을 참조하세요. 최신 버전 사용에 대한 자세한 내용은 "어플라이언스에 대한 코드 검사 구성" 항목을 참조하세요.
이 샘플 워크플로는 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