Sobre o Fluxo de trabalho de análise do CodeQL e as linguagens compiladas
O Code scanning funciona executando consultas em um ou mais bancos de dados do CodeQL. Cada banco de dados contém uma representação do código em uma linguagem única no seu repositório. Para as linguagens compiladas de C/C++, C#, Go, Java, Kotlin, Rust (versão prévia pública), e Swift, o processo de preenchimento deste banco de dados geralmente envolve a construção do código e extração de dados.
Quando você habilita code scanning, a configuração padrão e avançada gera um banco de dados CodeQL para análise usando o método mais simples disponível. Para C# e Java, o banco de dados CodeQL é gerado diretamente da base de código sem exigir uma compilação (modo de compilaçãonone ). Para outras linguagens compiladas, CodeQL cria a base de código usando o modo de compilação autobuild. Como alternativa, é possível usar o manual modo de compilação para especificar comandos de compilação explícitos para analisar apenas os arquivos criados por esses comandos personalizados.
Você pode usar o cache de dependências com CodeQL para armazenar dependências como um cache de GitHub Actions em vez de baixá-las dos registros. Consulte Sobre o cache de dependências para CodeQL mais adiante neste artigo.
Modos de compilação CodeQL
A ação CodeQL oferece suporte a três modos de compilação diferentes para linguagens compiladas:
-
`none` - o banco de dados CodeQL é criado diretamente a partir do código-fonte, sem a necessidade de recompilá-lo (compatível com todas as linguagens interpretadas e também com C# e Java). -
`autobuild` - CodeQL detecta o método de build mais provável e o utiliza para tentar compilar a base de código e criar um banco de dados para análise (compatível com C/C++, C#, Go, Java, Kotlin e Swift). -
`manual` - você define as etapas de compilação a serem usadas para a base de código no fluxo de trabalho (compatível com C/C++, C#, Go, Java, Kotlin e Swift).
Para obter informações sobre o comportamento específico de autobuild, requisitos do executor e orientações para builds manuais, consulte Opções e etapas de build do CodeQL para idiomas compilados.
Sobre o cache de dependências para CodeQL
Você pode usar o cache de dependências com CodeQL para armazenar dependências como um cache de GitHub Actions em vez de baixá-las dos registros. Isso reduz o risco de perda de alertas quando registros de terceiros não funcionam bem e pode resultar em uma melhoria de desempenho para projetos que possuem um grande número de dependências ou que trabalham com registros lentos. Para saber mais sobre como o armazenamento em cache de dependências pode acelerar os fluxos de trabalho, consulte Referência do cache de dependência.
O cache de dependências funciona com todos os modos de compilação e é compatível com .
Observação
O uso do cache de dependências armazenará caches específicos de CodeQL que estarão sujeitos às cotas de cache de um repositório. Confira Referência do cache de dependência.