Sobre code scanning uma compilação conteinerizada
Se você estiver configurando code scanning para um idioma compilado e estiver criando o código em um ambiente em contêineres, a análise poderá falhar com a mensagem de erro "Nenhum código-fonte foi visto durante o build". Isso indica que CodeQL não foi possível monitorar seu código como ele foi compilado.
Você deve executar CodeQL dentro do contêiner no qual compila o seu código. Isso se aplica se você estiver usando o CodeQL CLI ou GitHub Actions. Para o(a) CodeQL CLI, consulte Usando a varredura de código com seu sistema de CI existente para obter mais informações. Se você estiver usando GitHub Actions, configure seu fluxo de trabalho para executar todas as ações no mesmo contêiner. Para obter mais informações, confira Exemplo de fluxo de trabalho.
Observação
Atualmente, o CodeQL CLI não é compatível com distribuições Linux não glibc, como o Alpine Linux (baseado em musl).
Dependências para CodeQLcode scanning
Talvez você tenha dificuldade para executar code scanning se o contêiner que você está usando estiver faltando determinadas dependências (por exemplo, o Git deve ser instalado e adicionado à variável PATH). Se você encontrar problemas de dependência, examine a lista de softwares normalmente incluídos nas GitHubimagens do executor. Para obter mais informações, confira os arquivos readme específicos da versão nestes locais:
- 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
Fluxo de trabalho de exemplo
Este fluxo de trabalho de exemplo usa GitHub Actions para executar CodeQL a análise em um ambiente em contêineres. O valor de container.image identifica o contêiner a ser usado. Neste exemplo, a imagem é nomeada codeql-container, com uma tag de f0f91db. Para obter mais informações, consulte Sintaxe de fluxo de trabalho para o 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