Sobre code scanning com uma compilação de contêiner
Se você estiver configurando a code scanning para uma linguagem compilada e estiver criando o código em um ambiente de contêiner, a análise pode falhar e apresentar a mensagem de erro "Nenhum código fonte foi visto durante a compilação." Isso indica que CodeQL não conseguiu monitorar seu código da forma como foi compilado.
Você deve executar CodeQL dentro do contêiner no qual você constrói seu código. Isso será aplicado se você estiver usando o CodeQL CLI ou o GitHub Actions. Para saber mais sobre CodeQL CLI, confira "Instalando CodeQL CLI no seu sistema de CI". Se 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
Você pode ter dificuldade para executar code scanning se o contêiner que você está usando estiver com certas dependências ausentes (por exemplo, o Git deve ser instalado e adicionado à variável PATH). Se você encontrar problemas de dependência, revise a lista de software geralmente incluída nas imagens do executor de GitHub. 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/linux
- macOS - https://github.com/actions/runner-images/tree/main/images/macos
- Windows: https://github.com/actions/runner-images/tree/main/images/win
Fluxo de trabalho de exemplo
Observação: este artigo descreve os recursos disponíveis na versão da ação do CodeQL e o pacote da CodeQL CLI associado incluído na versão inicial desta versão do GitHub Enterprise Server. Se sua empresa usa uma versão mais recente da ação CodeQL, confira a versão GitHub Enterprise Cloud deste artigo para obter informações sobre os recursos mais recentes. Para obter mais informações sobre como usar a versão mais atual, confira "Configurar a varredura de código para o seu aparelho".
Este fluxo de trabalho de amostra usa GitHub Actions para executar a análise de CodeQL em um ambiente de contêiner. 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, confira "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]
# Specify the container in which actions will run
container:
image: codeql-container:f0f91db
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Initialize CodeQL
uses: github/codeql-action/init@v2
with:
languages: ${{ matrix.language }}
- name: Build
run: |
./configure
make
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v2