Sobre Varredura de código com uma compilação de contêiner
Se você estiver configurando Varredura de código para um idioma compilado e estiver criando o código em um ambiente de contêiner, a análise pode falhar com 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 se aplica se você estiver usando o CodeQL CLI, o Executor do CodeQL, ou GitHub Actions. Para o CodeQL CLI ou o Executor do CodeQL, consulte "Instalando CodeQL CLI no seu sistema de CI" or "Executando Executor do CodeQL no seu sistema de CI" para obter mais informações. 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, consulte "Exemplo de fluxo de trabalho".
Dependências
Você pode ter dificuldade para executar Varredura de código 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 nos ambientes virtuais de GitHub. Para obter mais informações, consulte os arquivos de readme
específicos da versão nesses locais:
- Linux: https://github.com/actions/virtual-environments/tree/main/images/linux
- macOS: https://github.com/actions/virtual-environments/tree/main/images/macos
- Windows: https://github.com/actions/virtual-environments/tree/main/images/win
Exemplo de fluxo de trabalho
Observação: Este artigo descreve as funcionalidades disponíveis com a versão da ação CodeQL e o pacote da CLI do CodeQL associado incluído na versão inicial desta versão de GitHub Enterprise Server. Se a sua empresa usar uma versão mais recente da ação do CodeQL, consulte o artigo de GitHub Enterprise Cloudpara obter informações sobre as últimas funcionalidades. Para obter informações sobre como usar a última versão, consulte "Configurando a digitalização de código para o seu dispositivo."
Este fluxo de trabalho de amostra usa GitHub Actions para executar a análise de CodeQL em um ambiente de contêiner. O valor do container.image
identifica o contêiner a ser usado. Neste exemplo, a imagem é denominada 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
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@v2
- name: Initialize CodeQL
uses: github/codeql-action/init@v1
with:
languages: ${{ matrix.language }}
- name: Build
run: |
./configure
make
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v1