Nota: El Escaneo de código se encuentra en beta dentro de GitHub Enterprise Server 2.22. Para encontrar un lanzamiento de disponibilidad general del escaneo de código, mejora al último lanzamiento de GitHub Enterprise Server.
Acerca del escaneo de código con una compilación en contenedor
Si estás configurando el escaneo de código para un lenguaje compilado, y estás compilando el código en un ambiente contenido, el análisis podría fallar con el mensaje de error "No source code was seen during the build". Esto indica que CodeQL no fue capaz de monitorear tu código mientras se compilaba.
Debes ejecutar CodeQL en el mismo contenedor en donde compilaste tu código. Esto aplica ya sea que estés utilizando el Ejecutor de CodeQL o GitHub Actions. Si estás utilizando el Ejecutor de CodeQL, ejecútalo en el contenedor en donde se compila tu código. Para obtener más información acerca del Ejecutor de CodeQL, consulta la sección "Ejecutar el escaneo de código de CodeQL en tu sistema de IC". Si estás utilizando GitHub Actions, configura tu flujo de trabajo para ejecutar todas las acciones en el mismo contenedor. Para obtener más información, consulta la sección "Ejemplo de flujo de trabajo".
Dependencias
Es posible que tengas alguna dificultad para ejecutar el escaneo de código si el contenedor que estás utilizando carece de ciertas dependencias (Por ejemplo, Git debe instalarse y agregarse a la variable PATH). Si te encuentras con algún problema en las dependencias, revisa la lista de software que habitualmente se incluye en los ambientes virtuales de GitHub. Para obtener más información, consulta los archivos readme
específicos de la versión en estas ubicaciones:
- 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
Ejemplo de flujo de trabajo
Este flujo de trabajo de muestra utiliza GitHub Actions para ejecutar un análisis de CodeQL en un ambiente contenido. El valor de container.image
identifica el contenedor que se debe utilizar. En este ejemplo, se le llama a la imagen codeql-container
, con una etiqueta de f0f91db
. Para obtener más información, consulta la sección "Sintaxis de flujo de trabajo para GitHub Actions".
name: "CodeQL"
on:
push:
branches: [main]
pull_request:
branches: [main]
schedule:
- cron: '45 15 * * 2'
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