Acerca de code scanning con una compilación en contenedor
Si está configurando code scanning para un lenguaje compilado y va a compilar el código en un entorno contenedorizado, el análisis puede producir un error con el mensaje de error "No se ha visto ningún código fuente durante la compilación". Esto indica que CodeQL no pudo supervisar el código a medida que se compiló.
Debes ejecutar CodeQL dentro del contenedor en el que compilas tu código. Esto se aplica tanto si usa CodeQL CLI como GitHub Actions. Para obtener más información sobre CodeQL CLI, consulte Utilizar el análisis de código de CodeQL con tu sistema de IC existente. Si usa GitHub Actions, configure el flujo de trabajo para ejecutar todas las acciones del mismo contenedor. Para obtener más información, consulte Flujo de trabajo de ejemplo.
Nota:
La CodeQL CLI no es compatible actualmente con distribuciones de Linux que no sean glibc, como Alpine Linux (basado en musl).
Dependencias para CodeQLcode scanning
Puede que tenga dificultades para ejecutar code scanning si al contenedor que está usando le faltan determinadas dependencias (por ejemplo, Git debe estar instalado y agregado a la variable PATH). Si encuentra problemas de dependencia, revise la lista del software que suele incluirse en las imágenes de ejecutor de GitHub. Para obtener más información, vea los archivos readme específicos de la versión en estas ubicaciones:
- 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
Flujo de trabajo de ejemplo
Este flujo de trabajo de ejemplo usa GitHub Actions para ejecutar CodeQL análisis en un entorno en contenedor. El valor de container.image identifica el contenedor que se va a usar. En este ejemplo, la imagen se denomina codeql-container, con una etiqueta de f0f91db. Para obtener más información, vea Sintaxis del flujo de trabajo para Acciones de GitHub.
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